Page 1 of 2
[Solved] mail ()
Posted: Tue Mar 20, 2007 6:03 pm
by abeterosso
feyd | Please use Code: Select all
and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read: [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]
Hi,
I am sending an order confirmation by following code:
Code: Select all
<?php
@mail("my_email@gmail.com ", "ORDER CONFIRMATION",
"
ORDER INSERTED FROM $_SESSION[textfield] $_SESSION[textfield2] \r\n
ADRESS $_SESSION[textfield3] NUMBER $_SESSION[textfield4] \r\n
CITY $_SESSION[textfield7] \r\n
TELEPHONE $_SESSION[textfield5] \r\n
EMAIL $_SESSION[textfield6] \r\n
CODE\t Q\t UNIT PRICE\t Total\r\n
P001\t $_SESSION[select]\t (EUR) $c_p001\t (EUR) $_SESSION[tot1]\r\n
P002\t $_SESSION[select2]\t (EUR) $c_p002\t (EUR) $_SESSION[tot2]\r\n
P003\t $_SESSION[select3]\t (EUR) $c_p003\t (EUR) $_SESSION[tot3]\r\n
P004\t $_SESSION[select4]\t (EUR) $c_p004\t (EUR) $_SESSION[tot4]\r\n
P005\t $_SESSION[select5]\t (EUR) $c_p005\t (EUR) $_SESSION[tot5]\r\n
TOTAL ORDER (EUR) $_SESSION[totale_ordine]"
,"From: MY_SYTE");
?>
When I receive the email, the values corresponding to $_SESSION[tot2], $_SESSION[tot3], $_SESSION[tot4] and $_SESSION[tot5] are not displayed..... all the other values are displayed without problem... what is it wrong? thanks
feyd | Please use Code: Select all
and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read: [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]
Posted: Tue Mar 20, 2007 6:04 pm
by Chris Corbyn
session_start() hasn't been called?
Posted: Tue Mar 20, 2007 6:13 pm
by abeterosso
session_start() hasn't been called?
yes!
Posted: Thu Mar 22, 2007 2:10 am
by abeterosso
...any advices?
Posted: Thu Mar 22, 2007 2:12 am
by dude81
use session_start(); on the top of the file like this
Code: Select all
<?php
session_start();
@mail("my_email@gmail.com ", "ORDER CONFIRMATION",
"
ORDER INSERTED FROM $_SESSION[textfield] $_SESSION[textfield2] \r\n
ADRESS $_SESSION[textfield3] NUMBER $_SESSION[textfield4] \r\n
CITY $_SESSION[textfield7] \r\n
TELEPHONE $_SESSION[textfield5] \r\n
EMAIL $_SESSION[textfield6] \r\n
CODE\t Q\t UNIT PRICE\t Total\r\n
P001\t $_SESSION[select]\t (EUR) $c_p001\t (EUR) $_SESSION[tot1]\r\n
P002\t $_SESSION[select2]\t (EUR) $c_p002\t (EUR) $_SESSION[tot2]\r\n
P003\t $_SESSION[select3]\t (EUR) $c_p003\t (EUR) $_SESSION[tot3]\r\n
P004\t $_SESSION[select4]\t (EUR) $c_p004\t (EUR) $_SESSION[tot4]\r\n
P005\t $_SESSION[select5]\t (EUR) $c_p005\t (EUR) $_SESSION[tot5]\r\n
TOTAL ORDER (EUR) $_SESSION[totale_ordine]"
,"From: MY_SYTE");
?>
Posted: Thu Mar 22, 2007 3:19 am
by abeterosso
use session_start(); on the top of the file like this
session_start() has been called properly on the top of my page.... I do not post all the code on my page....
Posted: Thu Mar 22, 2007 3:34 am
by dude81
Ok, I see your problem now
Code: Select all
<?php
session_start();
@mail("my_email@gmail.com ", "ORDER CONFIRMATION",
"
ORDER INSERTED FROM ' ".$_SESSION['textfield']." ' '".$_SESSION['textfield2']." '. ' \r\n '
?>
something of this sort. Add the php variables to the strings with dot(.) . Also use quotes for the session indices or keys.
Posted: Thu Mar 22, 2007 3:41 am
by volka
try
Code: Select all
error_reporting(E_ALL);
ini_set('display_errors', true);
echo '<pre>Session: '; var_export($_SESSION); echo "</pre>\n";
$fields = array(
'textfield','textfield2','textfield3','textfield4','textfield7','textfield5','textfield6',
'select','tot1','select2','tot2','select3','tot3','select4',
'tot4','select5','tot5','totale_ordine'
);
foreach($fields as $f) {
if (!isset($_SESSION[$f])) {
echo 'not set: ', $f, "<br />\n";
}
}
$ordertext =
"ORDER INSERTED FROM $_SESSION[textfield] $_SESSION[textfield2] \r\n" .
"ADRESS $_SESSION[textfield3] NUMBER $_SESSION[textfield4] \r\n" .
"CITY $_SESSION[textfield7] \r\n" .
"TELEPHONE $_SESSION[textfield5] \r\n" .
"EMAIL $_SESSION[textfield6] \r\n" .
"CODE\t Q\t UNIT PRICE\t Total\r\n" .
"P001\t $_SESSION[select]\t (EUR) $c_p001\t (EUR) $_SESSION[tot1]\r\n" .
"P002\t $_SESSION[select2]\t (EUR) $c_p002\t (EUR) $_SESSION[tot2]\r\n" .
"P003\t $_SESSION[select3]\t (EUR) $c_p003\t (EUR) $_SESSION[tot3]\r\n" .
"P004\t $_SESSION[select4]\t (EUR) $c_p004\t (EUR) $_SESSION[tot4]\r\n" .
"P005\t $_SESSION[select5]\t (EUR) $c_p005\t (EUR) $_SESSION[tot5]\r\n" .
"TOTAL ORDER (EUR) $_SESSION[totale_ordine]";
mail("my_email@gmail.com ", "ORDER CONFIRMATION", $ordertext, "From: MY_SYTE");
and post the relevant output.
Posted: Thu Mar 22, 2007 5:41 pm
by abeterosso
...problem is still present
this is the body of the email I receive:
ORDER INSERTED FROM ' Tina ' ' Turner '
ADRESS ' Square Plaza ' NUMBER ' 3333 '
CITY ' Honolulu '
TELEPHONE ' 34343434343434 '
- Hide quoted text -
EMAIL '
emailaddress@email.com '
Code Q Price Total
P001 ' 4 ' (EUR) 1000 (EUR) ' 4000 '
P002 ' 5 ' (EUR) 2000 (EUR) ' '
P003 ' 3 ' (EUR) 3000 (EUR) ' '
P004 ' 2 ' (EUR) 4000 (EUR) ' '
P005 ' 1 ' (EUR) 5000 (EUR) ' '
TOTAL ORDER (EUR) ' 36000 '
Posted: Thu Mar 22, 2007 5:52 pm
by volka
...and what does my script version print?
Posted: Thu Mar 22, 2007 5:59 pm
by feyd
The data is there because those single quotes aren't in the original string.
Posted: Thu Mar 22, 2007 6:03 pm
by abeterosso
...and what does my script version print?
...my previous reply shows you the result of your scritp....
Posted: Thu Mar 22, 2007 6:28 pm
by abeterosso
I tried many times this evening to send email by my original script....
since 15 minutes my original script works well and the problem is not more present!!!
can a web server go crazy sometimes?
THANK YOU very much for your assistance..
Posted: Thu Mar 22, 2007 6:32 pm
by feyd
sounds like a caching problem, maybe.
Posted: Thu Mar 22, 2007 6:44 pm
by RobertGonzalez
Just for cleanliness sake, you could do something like...
Code: Select all
<?php
$sendto = 'my_email@gmail.com';
$sendsubject = 'ORDER CONFIRMATION';
$sendmessage = '';
$sendmessage .= "ORDER INSERTED FROM {$_SESSION['textfield']} {$_SESSION['textfield2']}\n";
$sendmessage .= "ADRESS {$_SESSION['textfield3']} NUMBER {$_SESSION[textfield4]}\n";
$sendmessage .= "CITY {$_SESSION['textfield7']}\n";
$sendmessage .= "TELEPHONE {$_SESSION['textfield5']}\n";
$sendmessage .= "EMAIL {$_SESSION['textfield6']}\n";
$sendmessage .= "CODE\t Q\t UNIT PRICE\t Total\n";
$sendmessage .= "P001\t {$_SESSION['select']}\t (EUR) $c_p001\t (EUR) {$_SESSION['tot1']}\n";
$sendmessage .= "P002\t {$_SESSION['select2']}\t (EUR) $c_p002\t (EUR) {$_SESSION['tot2']}\n";
$sendmessage .= "P003\t {$_SESSION['select3']}\t (EUR) $c_p003\t (EUR) {$_SESSION['tot3']}\n";
$sendmessage .= "P004\t {$_SESSION['select4']}\t (EUR) $c_p004\t (EUR) {$_SESSION['tot4']}\n";
$sendmessage .= "P005\t {$_SESSION['select5']}\t (EUR) $c_p005\t (EUR) {$_SESSION['tot5']}\n";
$sendmessage .= "TOTAL ORDER (EUR) {$_SESSION['totale_ordine']}";
$sendheaders = "From: me@mymail.com";
if (!mail($sendto, $sendsubject, $sendmessage, $sendheaders))
{
echo 'There was a problem sending the message.';
}
else
{
echo 'Everything seems ok.';
}
?>