Mombu the Php Forum

Go Back   Mombu the Php Forum > Php > variables in e-mail 2nd
User Name
Password
REGISTER NOW! Mark Forums Read




Reply
1 3rd July 16:35
christian
External User
 
Posts: 1
Default variables in e-mail 2nd



I would like to use a form in a html page to pass the variables to a php
page, which sends an mail including these variables.

All I get in the mail though is a 1 rather than the string that I put into
the form???

Can anyone help please!

Some code I use....
..
..
..
$messagepart1 = '
<html> <head> <title>Free Subscription</title> </head> <body>
<p>Somebody would like to have a free subscription!!!</p> ';
$messagepart2 = (echo $salutation);
$messagepart3 = ' </body> </html> ';
$message = $messagepart1.$messagepart2.$messagepart3;
..
..
..
mail(me@me.com, "Free Subscription Application", $message, $headers);
..
..
..

The $salutation comes from the form and is handed over correctly, but the
syntax for to display the value of the variable in the html e-mail seems to
be the problem...
  Reply With Quote


 


2 3rd July 16:35
phpmail
External User
 
Posts: 1
Default variables in e-mail 2nd



Missing quotes around the email address.

Echo the $message string as you send it, to make sure it contains what you
think it contains.

$messagepart2 = (echo $salutation);

is probably not what you meant. Try

$messagepart2 = $salutation;

instead.

What additional headers are you sending?

BTW, if the email address is coming from the outside world (your text
implies that), then your form can be used as part of a DoS attack.
  Reply With Quote
3 3rd July 16:35
kilimajer
External User
 
Posts: 1
Default variables in e-mail 2nd


$messagepart2 = $salutation;
  Reply With Quote


 


4 4th July 00:05
daevid
External User
 
Posts: 1
Default variables in e-mail 2nd


What I do is make a PHP page/template with php variables in place.

Then do something like this...

$report = "path/to/mytemp.php";

$today = date();

ob_start();
include($report);
$message = ob_get_contents();
ob_end_clean();
//echo $message;

$to = "Daevid Vincent <daevid@daevid.com>";
//$to .= ", "."Daevid Vincent <daevid@daevid.com>"; // note the
comma

$headers = "MIME-Version: 1.0\r\n";
//$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: CRiMson <".WEBMASTER.">\r\n";
//$headers .= "Cc: sales@example.com\r\n";
//$headers .= "Bcc: president@example.com\r\n";
//$headers .= "Reply-To: ".$myname." <".$myreplyemail.">\r\n";
//$headers .= "X-Priority: 1\r\n";
//$headers .= "X-MSMail-Priority: High\r\n";
$headers .= "X-Mailer: CRiMson Server";

$subject = "my report";

// echo $message;

mail($to, $subject, $message, $headers);

That's the slick as shit solution. Then PHP will pull in your 'template'
page and any variables or whatever are executed in the template $report,
plus any that you have in your program (such as $today) are passed in to
$message as well...

Daevid Vincent
http://daevid.com
  Reply With Quote
5 4th July 00:07
daevid
External User
 
Posts: 1
Default variables in e-mail 2nd


Oh, one more thing that's worthy of note. This method "renders" a page so
you don't have to worry about htaccess protected content and authentication.

What do I mean by that? Well, for example, my CRiMson project uses
mod_auth_mysql to validate a user and let them in. It protects the entire
/crimson/ tree at the apache level. Using the method below, I can use
graphics, includes, .css, .js, etc all found in that dir tree in my template
email. Then when I send it, the user does NOT have to authenticate/login
just to read the email :-)

Daevid Vincent
http://daevid.com
  Reply With Quote
Reply


Thread Tools
Display Modes




666