Page 1 of 1

lost of (session)variables in a MAIL message

Posted: Mon Sep 29, 2003 5:34 am
by Marco van Wijngaarden
Hi Folks,
I'm struggling with the following problem; i have several PHP pages which add some variables to $HTTP_SESSION_VARS (i'm working in a PHP 4.0.6 envoirment). Now as long as the session exists there's no problem, the variables remain available as they are suppossed to!
However, when i send a html-message through MAIL() which should include these variables, i receive an email with just parts of the values (i.e.: "firstname" instead of "firstname lastname" and "valu!" instead of "value") even some values are completely lost!
Also i notice some ! (exclamationmarks) in the message that shouldn't be there...

Anyway, maybe someone has an idea on my problem? i'd be glad to hear any suggestions!
(that is, other than upgrading PHP which is unfortunately no option for me!)
Thanks!

(below is my code from the page that generates the mail)

Code: Select all

<?php 
session_start();
session_register('ordernummer');

counter();

/* ***************************************** COUNTER ***************************************** */ 

function counter() &#123; 

$counter_file = "counter/count.txt"; 
$ordernummer = file($counter_file); 
$ordernummer++; 
$cf = fopen($counter_file, "w+"); 
fputs($cf, $ordernummer);     fclose($cf);
&#125;


$HTTP_SESSION_VARS&#1111;'ordernummer'] = $ordernummer;

session_register('bankrekening');

$HTTP_SESSION_VARS&#1111;'bankrekening'] = $HTTP_POST_VARS&#1111;'bankrekening'];
?>
<head>
<title>bestellen-6</title>
<meta http-equiv="Content-Type" content="text/html;">
<!-- Fireworks 4.0  Dreamweaver 4.0 target.  Created Wed Sep 24 11:50:22 GMT+0200 (West-Europa (zomertijd)) 2003-->
</head>
<body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<img name="bestellen6" src="Images/bestellen-6.gif" width="700" height="500" border="0"> 
<!-- fwtable fwsrc="BE536A~1.PNG" fwbase="bestellen-6" fwstyle="Dreamweaver" fwdocid = "742308039" fwnested="0" -->
<div id="Layer1" style="position:absolute; width:522px; height:340px; z-index:1; left: 170px; top: 152px">

<?php

$mailheaders="MIME-Version: 1.0\r\n"; 
$mailheaders.="Content-Type: text/html; charset=ISO-8859-1\r\n"; 
$mailheaders.="From: " . $HTTP_SESSION_VARS&#1111;'klantgegevens']&#1111;'email'] . "\r\n";

$subject="Internet bestelling: " . $ordernummer;

$msg="<html><head></head><body>";
$msg.="<div align=center><table width=95%><border=0><cellspacing=0><cellpadding=0><tr bgcolor=#336600><td colspan=2 height=20><bgcolor=#07700F><font face=Arial, Helvetica, sans-serif color=#FFFFFF><font size=2><face=Geneva, Arial, Helvetica, san-serif><b><font size=1>Klantgegevens: Faktuur en Afleveradres</font></b></font></font></td>
<td colspan=2><bgcolor=#07700F><font face=Arial, Helvetica, sans-serif color=#FFFFFF><font size=1><font face=Geneva, Arial, Helvetica, san-serif><b>Huisstijlgegevens: Data</b></font></font></font></td></tr>";
$msg.="<tr><td><font face=Arial, Helvetica, sans-serif size=1>Bedrijf</font></td><td><font face=Arial, Helvetica, sans-serif size=2><input type=text name=bedrijf size=40 value=" . $HTTP_SESSION_VARS&#1111;'klantgegevens']&#1111;'bedrijf'] . "></font></td><td><font face=Arial, Helvetica, sans-serif size=1>Regel 1</font></td><td><div align=right><font face=Arial, Helvetica, sans-serif size=2><input type=text name=textfield2 size=40 value=" . $HTTP_SESSION_VARS&#1111;'data']&#1111;'regel1'] . "></font></div></td></tr>";
$msg.="<tr><td><font face=Arial, Helvetica, sans-serif size=1>Naam</font></td><td><font face=Arial, Helvetica, sans-serif size=2><input type=text name=naam size=40 value=" . $HTTP_SESSION_VARS&#1111;'klantgegevens']&#1111;'naam'] . "></font></td><td><font face=Arial, Helvetica, sans-serif size=1>Regel 2</font></td><td><div align=right><font face=Arial, Helvetica, sans-serif size=2><input type=text name=regel2 size=40 value=" . $HTTP_SESSION_VARS&#1111;'data']&#1111;'regel2'] . "></font></div></td></tr>";
$msg.="<tr><td><font face=Arial, Helvetica, sans-serif size=1>Adres</font></td><td><font face=Arial, Helvetica, sans-serif size=2><input type=text name=adres size=40 value=" . $HTTP_SESSION_VARS&#1111;'klantgegevens']&#1111;'adres'] . "></font></td><td><font face=Arial, Helvetica, sans-serif size=1>Regel 3</font></td><td><div align=right><font face=Arial, Helvetica, sans-serif size=2><input type=text name=regel3 size=40 value=" . $HTTP_SESSION_VARS&#1111;'data']&#1111;'regel3'] . "></font></div></td></tr>";
$msg.="<tr><td><font face=Arial, Helvetica, sans-serif size=1>PC + Plaats</font></td><td><font face=Arial, Helvetica, sans-serif size=2><input type=text name=postcode size=7 value=" . $HTTP_SESSION_VARS&#1111;'klantgegevens']&#1111;'postcode'] . "><input type=text name=plaats size=28 value=" . $HTTP_SESSION_VARS&#1111;'klantgegevens']&#1111;'plaats'] . "></font></td><td><font face=Arial, Helvetica, sans-serif size=1>Regel 4</font></td><td><div align=right><font face=Arial, Helvetica, sans-serif size=2><input type=text name=regel4 size=40 value=" . $HTTP_SESSION_VARS&#1111;'data']&#1111;'regel4'] . "></font></div></td></tr>";
$msg.="<tr><td><font face=Arial, Helvetica, sans-serif size=1>Telefoon</font></td><td> <font face=Arial, Helvetica, sans-serif size=2><input type=text name=telefoon size=40 value=" . $HTTP_SESSION_VARS&#1111;'klantgegevens']&#1111;'telefoon'] . "></font></td><td><font face=Arial, Helvetica, sans-serif size=1>Regel 5</font></td><td><div align=right><font face=Arial, Helvetica, sans-serif size=2><input type=text name=regel5 size=40 value=" . $HTTP_SESSION_VARS&#1111;'data']&#1111;'regel5'] . "></font></div></td></tr>";
$msg.="<tr><td><font face=Arial, Helvetica, sans-serif size=1>Email</font></td><td><font face=Arial, Helvetica, sans-serif size=2><input type=text name=email size=40 value=" . $HTTP_SESSION_VARS&#1111;'klantgegevens']&#1111;'email'] . "></font></td><td><font face=Arial, Helvetica, sans-serif size=1>Regel 6</font></td><td><div align=right><font face=Arial, Helvetica, sans-serif size=2><input type=text name=regel6 size=40 value=" . $HTTP_SESSION_VARS&#1111;'data']&#1111;'regel6'] . "></font></div></td></tr>";
$msg.="<tr><td><font face=Arial, Helvetica, sans-serif size=1>Afleveren</font></td><td rowspan=3 valign=top> <font face=Arial, Helvetica, sans-serif size=2><textarea name=afleveren cols=30 value=" . $HTTP_SESSION_VARS&#1111;'klantgegevens']&#1111;'afleveren'] . " rows=3></textarea></font></td><td><font face=Arial, Helvetica, sans-serif size=1>Regel 7</font></td><td><div align=right><font face=Arial, Helvetica, sans-serif size=2><input type=text name=regel7 size=40 value=" . $HTTP_SESSION_VARS&#1111;'data']&#1111;'regel7'] . "></font></div></td></tr>";
$msg.="<tr><td><font size=1 face=Arial, Helvetica, sans-serif>(indien afwijkend)</font></td><td><font face=Arial, Helvetica, sans-serif size=1>Regel 8</font></td><td><div align=right><font face=Arial, Helvetica, sans-serif size=2><input type=text name=regel8 size=40 value=" . $HTTP_SESSION_VARS&#1111;'data']&#1111;'regel8'] . "></font></div></td></tr>";
$msg.="<tr><td></td><td><font face=Arial, Helvetica, sans-serif size=1>Regel 9</font></td><td><div align=right><font face=Arial, Helvetica, sans-serif size=2><input type=text name=regel9 size=40 value=" . $HTTP_SESSION_VARS&#1111;'data']&#1111;'regel9'] . "></font></div></td></tr>";
$msg.="</table><hr width=95% noshade align=center>";

$msg.="<table width=95% border=0 cellspacing=0 cellpadding=0><tr bgcolor=#336600><td height=20 bgcolor=#07700F><font face=Arial, Helvetica, sans-serif color=#FFFFFF><font size=1 face=Geneva, Arial, Helvetica, sans-serif><b>Aantal</b></font></font></td><td bgcolor=#07700F><font face=Arial, Helvetica, sans-serif color=#FFFFFF><font size=1 face=Geneva, Arial, Helvetica, sans-serif><b>Omschrijving</b></font></font></td><td bgcolor=#07700F><div align=right><font face=Arial, Helvetica, sans-serif color=#FFFFFF><font size=1 face=Geneva, Arial, Helvetica, sans-serif><b>Bedrag</b></font></font></div></td></tr>";
if ($HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'aantal']&#1111;'1']) &#123;
$msg.="<tr><td><font face=Arial, Helvetica, sans-serif><input type=text name=aantal1 size=10 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'aantal']&#1111;'1'] . "></font></td><td><font face=Arial, Helvetica, sans-serif><input type=text name=artikel1 size=60 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'artikel']&#1111;'1'] . "></font></td><td><div align=right><font face=Arial, Helvetica, sans-serif><input type=text name=prijs1 size=15 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'prijs']&#1111;'1'] . "></font></div></td></tr>";
&#125;
if ($HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'aantal']&#1111;'2']) &#123;
$msg.="<tr><td><font face=Arial, Helvetica, sans-serif><input type=text name=aantal2 size=10 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'aantal']&#1111;'2'] . "></font></td><td><font face=Arial, Helvetica, sans-serif><input type=text name=artikel2 size=60 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'artikel']&#1111;'2'] . "></font></td><td><div align=right><font face=Arial, Helvetica, sans-serif><input type=text name=prijs2 size=15 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'prijs']&#1111;'2'] . "></font></div></td></tr>";
&#125;
if ($HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'aantal']&#1111;'3']) &#123;
$msg.="<tr><td><font face=Arial, Helvetica, sans-serif><input type=text name=aantal3 size=10 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'aantal']&#1111;'3'] . "></font></td><td><font face=Arial, Helvetica, sans-serif><input type=text name=artikel3 size=60 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'artikel']&#1111;'3'] . "></font></td><td><div align=right><font face=Arial, Helvetica, sans-serif><input type=text name=prijs3 size=15 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'prijs']&#1111;'3'] . "></font></div></td></tr>";
&#125;
if ($HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'aantal']&#1111;'4']) &#123;
$msg.="<tr><td><font face=Arial, Helvetica, sans-serif><input type=text name=aantal4 size=10 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'aantal']&#1111;'4'] . "></font></td><td><font face=Arial, Helvetica, sans-serif><input type=text name=artikel4 size=60 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'artikel']&#1111;'4'] . "></font></td><td><div align=right><font face=Arial, Helvetica, sans-serif><input type=text name=prijs4 size=15 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'prijs']&#1111;'4'] . "></font></div></td></tr>";
&#125;
if ($HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'aantal']&#1111;'5']) &#123;
$msg.="<tr><td><font face=Arial, Helvetica, sans-serif><input type=text name=aantal5 size=10 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'aantal']&#1111;'5'] . "></font></td><td><font face=Arial, Helvetica, sans-serif><input type=text name=artikel5 size=60 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'artikel']&#1111;'5'] . "></font></td><td><div align=right><font face=Arial, Helvetica, sans-serif><input type=text name=prijs5 size=15 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'prijs']&#1111;'5'] . "></font></div></td></tr>";
&#125;
if ($HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'aantal']&#1111;'6']) &#123;
$msg.="<tr><td><font face=Arial, Helvetica, sans-serif><input type=text name=aantal6 size=10 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'aantal']&#1111;'6'] . "></font></td><td><font face=Arial, Helvetica, sans-serif><input type=text name=artikel6 size=60 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'artikel']&#1111;'6'] . "></font></td><td><div align=right><font face=Arial, Helvetica, sans-serif><input type=text name=prijs6 size=15 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'prijs']&#1111;'6'] . "></font></div></td></tr>";
&#125;
if ($HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'aantal']&#1111;'7']) &#123;
$msg.="<tr><td><font face=Arial, Helvetica, sans-serif><input type=text name=aantal7 size=10 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'aantal']&#1111;'7'] . "></font></td><td><font face=Arial, Helvetica, sans-serif><input type=text name=artikel7 size=60 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'artikel']&#1111;'7'] . "></font></td><td><div align=right><font face=Arial, Helvetica, sans-serif><input type=text name=prijs7 size=15 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'prijs']&#1111;'7'] . "></font></div></td></tr>";
&#125;
$msg.="<tr><td></td><td></td><td><div align=right></div></td></tr>";
$msg.="</table><hr noshade width=95% align=center>";
$msg.="<table width=95% border=0 cellspacing=0 cellpadding=0><tr><td width=60%></td><td width=40%></td></tr>";
$msg.="<tr><td width=60% valign=top><p><font face=Arial, Helvetica, sans-serif size=2><b>Bestellingen worden pas verwerkt NA ONTVANGST van uw betaling! Om uw betaling te kunnen herkennen verzoeken wij u hier uw rekeningnummer op te geven:</b></font></p><p align=center><font face=Arial, Helvetica, sans-serif size=3>mijn rekeningnr.: <input type=text name=bankrekening maxlength=9 size=9 value=" . $HTTP_SESSION_VARS&#1111;'bankrekening'] . "></font></p><p><font face=Arial, Helvetica, sans-serif size=2><b>Vergeet u niet om het ordernummer bij uw betaling te vermelden!</b></font></p>";
$msg.="<p><font size=1 face=Arial, Helvetica, sans-serif>Door uw bestelling te plaatsen verklaard u zich akkoord met onze leveringsvoorwaarden.</font></p></td><td width=40%><div align=center><table width=100% border=0 cellspacing=2 cellpadding=0 bordercolor=#000000>";
$msg.="<tr><td><div align=right><font face=Arial, Helvetica, sans-serif size=2>Verzendkosten</font></div></td><td><div align=right> <font face=Arial, Helvetica, sans-serif size=2><input type=text name=verzendkosten size=15 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'kosten']&#1111;'verzendkosten'] . "></font></div></td></tr>";
$msg.="<tr><td><div align=right><font face=Arial, Helvetica, sans-serif size=2>Subtotaal</font></div></td><td><div align=right><font face=Arial, Helvetica, sans-serif size=2><input type=text name=subtotaal size=15 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'kosten']&#1111;'subtotaal'] . "></font></div></td></tr>";
$msg.="<tr><td><div align=right><font face=Arial, Helvetica, sans-serif size=2><input type=text name=btwpercentage size=6 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'kosten']&#1111;'btwpercentage'] . ">BTW</font></div></td><td><div align=right> <font face=Arial, Helvetica, sans-serif size=2><input type=text name=btw size=15 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'kosten']&#1111;'btw'] . "></font></div></td></tr>";
$msg.="</table><table width=100% border=0 cellspacing=3 cellpadding=0 bgcolor=#07700F><tr valign=middle><td><div align=right><font face=Arial, Helvetica, sans-serif size=2 color=#FFFFFF><b>FAKTUURBEDRAG</b></font></div></td><td><div align=right><font face=Arial, Helvetica, sans-serif size=2 color=#FFFFFF><input type=text name=faktuurbedrag size=15 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'faktuurbedrag'] . "></font></div></td></tr>";
$msg.="<tr valign=middle><td><div align=right><font face=Arial, Helvetica, sans-serif size=2 color=#FFFFFF><b>ORDERNUMMER</b></font></div></td><td><div align=right><font face=Arial, Helvetica, sans-serif size=2 color=#FFFFFF><input type=text name=ordernummer size=15 value=" . $HTTP_SESSION_VARS&#1111;'ordernummer'] . "></font></div></td></tr>";
$msg.="<tr valign=middle><td><div align=right><font face=Arial, Helvetica, sans-serif size=2 color=#FFFFFF><b>DATUM</b></font></div></td><td><div align=right><font face=Arial, Helvetica, sans-serif size=3><input type=text name=besteldatum maxlength=9 size=9 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'besteldatum'] . "></font></div></td></tr>";
$msg.="<tr valign=middle><td><div align=right><font face=Arial, Helvetica, sans-serif size=2 color=#FFFFFF><b>IP ADRES</b></font></div></td><td><div align=right><font face=Arial, Helvetica, sans-serif size=3><input type=text name=ip-adres maxlength=9 size=9 value=" . $HTTP_SESSION_VARS&#1111;'bestelling']&#1111;'ip-adres'] . "></font></div></td></tr>";
$msg.="</table></div></td></tr><tr><td width=60%></td><td width=40%></td></tr></table>";

$msg.="</body></html>";

$email="me@mydomain.com";
mail($email,$subject,$msg,$mailheaders); 

if (mail) 
&#123; 
echo "success!"; 
&#125; 
else 
&#123; 
echo "there was an error!"; 
&#125; 
?>
</div>
</body>

Posted: Mon Sep 29, 2003 5:42 am
by twigletmac
Could we please see the code that generates the mail message?

Mac

Posted: Mon Sep 29, 2003 5:42 am
by JayBird
From the manual
If you get an unexplainable exclamation mark (!) appearing
in the mail that you send using mail(),you are probally
sending a message wich has no newline characters (\n)

Fix this in your script or use this

$msg = wordwrap($msg, 72);

This will make sure that there are no excessively long
lines in your message, and thus remove that exclamation mark from your message.
Mark

Posted: Mon Sep 29, 2003 6:00 am
by Marco van Wijngaarden
Bech... thanks! I'll try the (\n) thing.....

also i've placed my code above if you're interested!
Thanks again!

Marco

Posted: Mon Sep 29, 2003 9:11 am
by Marco van Wijngaarden
Okay folks,

I did find the solution to the exclamationmarks by placing the following code just above the mail() line:

$msg = wordwrap($msg, 72);

(i did try using \n but that gave me some other problems and this seems to work just fine afterall! So, thanks Bech100 for your input!)

BUT, the only problem I STILL HAVE:
the values from the variables seem to loose everything that follows after a space! So, in other words... when i have a variable "Name" with the Value "Firstname Lastname" only prints "Firstname" in the emailmessage! Any ideas on that?

Thanks!
Marco

Posted: Wed Oct 01, 2003 7:48 am
by Marco van Wijngaarden
This is what i submit in a textfield: "Marco van Wijngaarden"

this variable is saved in a $session variable so it's available as long as the session stay's alive.... so, when i run this script:

Code: Select all

<?php
echo "<pre>"; 
print_r ($HTTP_SESSION_VARS); 
echo "</pre>";
?>
this is printed in the browserwindow...

Array
(
[klantgegevens] => Array
(
[bedrijf] => marco van wijngaarden
......


BUT when i try to use this value as part of the $msg to be mailed, using mail() .....as i mentioned earlier on this forum.... the actual email i receive contains only the part of the value until the first space!!!?? (in this case i get "marco" instead of "marco van wijngaarden" while this seems to excist as value in the $session variables.... isn't that weird? :roll: