[Solved] mail ()

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

User avatar
abeterosso
Forum Newbie
Posts: 11
Joined: Fri Mar 16, 2007 8:50 am
Location: Italy

[Solved] mail ()

Post by abeterosso »

feyd | Please use

Code: Select all

,

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

,

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]
Last edited by abeterosso on Thu Mar 22, 2007 6:26 pm, edited 3 times in total.
User avatar
Chris Corbyn
Breakbeat Nuttzer
Posts: 13098
Joined: Wed Mar 24, 2004 7:57 am
Location: Melbourne, Australia

Post by Chris Corbyn »

session_start() hasn't been called?
User avatar
abeterosso
Forum Newbie
Posts: 11
Joined: Fri Mar 16, 2007 8:50 am
Location: Italy

Post by abeterosso »

session_start() hasn't been called?

yes!
User avatar
abeterosso
Forum Newbie
Posts: 11
Joined: Fri Mar 16, 2007 8:50 am
Location: Italy

Post by abeterosso »

...any advices?
User avatar
dude81
Forum Regular
Posts: 509
Joined: Mon Aug 29, 2005 6:26 am
Location: Pearls City

Post 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"); 
?>
User avatar
abeterosso
Forum Newbie
Posts: 11
Joined: Fri Mar 16, 2007 8:50 am
Location: Italy

Post 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....
User avatar
dude81
Forum Regular
Posts: 509
Joined: Mon Aug 29, 2005 6:26 am
Location: Pearls City

Post 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.
User avatar
volka
DevNet Evangelist
Posts: 8391
Joined: Tue May 07, 2002 9:48 am
Location: Berlin, ger

Post 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.
User avatar
abeterosso
Forum Newbie
Posts: 11
Joined: Fri Mar 16, 2007 8:50 am
Location: Italy

Post 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 '
User avatar
volka
DevNet Evangelist
Posts: 8391
Joined: Tue May 07, 2002 9:48 am
Location: Berlin, ger

Post by volka »

...and what does my script version print?
User avatar
feyd
Neighborhood Spidermoddy
Posts: 31559
Joined: Mon Mar 29, 2004 3:24 pm
Location: Bothell, Washington, USA

Post by feyd »

The data is there because those single quotes aren't in the original string.
User avatar
abeterosso
Forum Newbie
Posts: 11
Joined: Fri Mar 16, 2007 8:50 am
Location: Italy

Post by abeterosso »

...and what does my script version print?
...my previous reply shows you the result of your scritp....
User avatar
abeterosso
Forum Newbie
Posts: 11
Joined: Fri Mar 16, 2007 8:50 am
Location: Italy

Post 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..
User avatar
feyd
Neighborhood Spidermoddy
Posts: 31559
Joined: Mon Mar 29, 2004 3:24 pm
Location: Bothell, Washington, USA

Post by feyd »

sounds like a caching problem, maybe.
User avatar
RobertGonzalez
Site Administrator
Posts: 14293
Joined: Tue Sep 09, 2003 6:04 pm
Location: Fremont, CA, USA

Post 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.';
}
?>
Post Reply