Re: Php variables to an email. [message #169351 is a reply to message #169348] |
Wed, 08 September 2010 00:35 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma:
|
Senior Member |
|
|
On 9/7/2010 7:52 PM, GarryJones wrote:
>> Some code for us to had a clue what it is about would be good. none of
>> us is clairvoyant here. ;)
>
> Ok, I thought maybe it would be quicker if someone could just point me
> in the right direction, it must be an everyday thing to do with php
> but I can't find a simple solution. Just websites tha confuse me with
> great complex answers involving pear,perl and mime but I am not
> interested in learning something new, I just need this to work in an
> easy way with php.
>
> After reading in the values I am trying to send the values $bokfor and
> $bokeft in the following email. I receive the php code and not the
> actual variable.
>
> <?php
> // multiple recipients
> $to = 'garry(at)vasatrampet(dot)se' . ', ';
> $to .= 'info(at)vasatrampet(dot)se';
>
> // subject
> $subject = 'Whatever';
>
> // message
> $message = "
> <html>
> <head>
> <title>Bokningsbekräftelse</title>
> </head>
> <body>
> <p>Hej<?= $bokfor ?> <?= $bokeft ?>, tack för din bokning!</p>
> </body>
> </html>
> ";
>
> // To send HTML mail, the Content-type header must be set
> $headers = 'MIME-Version: 1.0' . "\r\n";
> $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
>
> // Additional headers
> $headers .= 'To: Garry<garry(at)cykeltours(dot)se>' . "\r\n";
> $headers .= 'From: Garry<garry(at)vasatrampet(dot)se>' . "\r\n";
> $headers .= 'Bcc: garry(at)vasatrampet(dot)se' . "\r\n";
>
> // Mail it
> mail($to, $subject, $message, $headers);
> ?>
>
Garry, this line is your problem:
<p>Hej<?= $bokfor ?> <?= $bokeft ?>, tack för din bokning!</p>
You're already in PHP - the <?= does nothing for you, other than print
out those characters. However, the ?> at the end terminates PHP; then
your and the rest is output to the browser.
However, I'm very surprised you didn't get an error - this would be
invalid PHP code (no ending ';' statement delimiter). You should ensure
your development system has the following in your php.ini file:
error_reporting=E_ALL // E_ALL | E_STRICT is even better
display_errors=on
Additionally, using <?= outputs to the screen, not appends to the
string, as you wish. However, it also depends on short_open_tags=on in
your php.ini file - not a good thing to count on (among other things, it
interferes with XML delimiters).
These two statements are exactly equivalent:
<?= $bokfor ?>
and
<?php echo $bokfor; ?>
If you would have used the longer version, it might have caught your
attention, also.
The solution is to change the line to:
<p>Hej" . $bokfor . " " . $bokeft . ', tack för din bokning!</p>
Or, since you're using double quotes, which will interpret PHP variables
within the string, you could just use:
<p>Hej $bokfor $bokeft, tack för din bokning!</p>
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|