[PHP] Beginner Questions regarding Mail and Forms
Hi there, I've got two bloody beginner questions: I've created a form with various text input fields. One is to hold a numeric value (age). Upon submission, I try to retrieve the value of this field like this: $age = $_POST['_txtAge']; later, I use the $age variable to create a message... $message = "Name: " . $name . "\n"; $message .= "Email: " .$email . "\n"; $message .= "Age: " . $age . "\n"; $message .= "Gender: " . $gender . "\n"; $message .= "Info: " . $info; then I send the message: mail("[EMAIL PROTECTED]", "A Request", $message, _getMailHeaders($name, §email)); Now on to my questions: $message contains the values of all fields correctly except the age field (input of all others are alphabetic, only age has numeric content). Why is this? Secondly, mail sends my message correctly. But the return adresse set in _getMailHeaders is not used. Instead, some identification from the server is used. Why is that? Here the function _getMailHeaders: function _getMailHeaders($senderName, $senderAddress) { ini_set(sendmail_from, $senderAddress); $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Reply-To: ' . $senderName .'<'. $senderAddress. '>' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= 'To: PostOffice <[EMAIL PROTECTED]>' . "\r\n"; $headers .= 'From: ' . $senderName . '<' . $senderAddress . '>' . "\r\n"; ini_restore(sendmail_from); return $headers; } Any help is greatly appreceated. Matthias -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Beginner Questions regarding Mail and Forms
hi zoltan, thanks for your reply. i've tried the -f switch but the only effect it has is an error message ;) Warning: mail() [function.mail]: SAFE MODE Restriction in effect. The fifth parameter is disabled in SAFE MODE. as for the age value: it is simply incorrect because it is always empty... input might be for example 25, but the var $age contains always an empty string. Can you help? I'm a programmer (C++), but have never used PHP before. The concepts are clear to me, but I must be missing here something essential. Thanks again, Matthias "Németh Zoltán" <[EMAIL PROTECTED]> schrieb im Newsbeitrag news:[EMAIL PROTECTED] > On h, 2007-02-12 at 11:13 +0100, Matthias S. wrote: > > Hi there, > > > > I've got two bloody beginner questions: I've created a form with various > > text input fields. One is to hold a numeric value (age). Upon submission, I > > try to retrieve the value of this field like this: > > > > $age = $_POST['_txtAge']; > > > > later, I use the $age variable to create a message... > > > > $message = "Name: " . $name . "\n"; > > $message .= "Email: " .$email . "\n"; > > $message .= "Age: " . $age . "\n"; > > $message .= "Gender: " . $gender . "\n"; > > $message .= "Info: " . $info; > > > > then I send the message: > > > > mail("[EMAIL PROTECTED]", "A Request", $message, _getMailHeaders($name, email)); > > > > Now on to my questions: > > $message contains the values of all fields correctly except the age field > > (input of all others are alphabetic, only age has numeric content). Why is > > this? > > what do you mean by incorrect? what is the test input you give and what > result do you get? > > > > > Secondly, mail sends my message correctly. But the return adresse set in > > _getMailHeaders is not used. Instead, some identification from the server is > > used. Why is that? > > it is (if you use sendmail on the server) because sendmail sets reply-to > to the user running it by default. so it gets set to the user the script > runs as (usually www-data or something like that). it can be overridden > by the "-f" switch I think. like this: > > mail($to, $subject, $message, $headers, "-f".$frommail); > > > hope that helps > Zoltán Németh > > > > > Here the function _getMailHeaders: > > > > function _getMailHeaders($senderName, $senderAddress) { > > > > ini_set(sendmail_from, $senderAddress); > > > > $headers = 'MIME-Version: 1.0' . "\r\n"; > > $headers .= 'Reply-To: ' . $senderName .'<'. $senderAddress. '>' . "\r\n"; > > $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; > > $headers .= 'To: PostOffice <[EMAIL PROTECTED]>' . "\r\n"; > > $headers .= 'From: ' . $senderName . '<' . $senderAddress . '>' . "\r\n"; > > > > ini_restore(sendmail_from); > > return $headers; > > } > > > > Any help is greatly appreceated. > > > > Matthias > > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Beginner Questions regarding Mail and Forms
hi jochem, thanks. i've tripplechecked on the names, but just in case I miss something obvious, I'll post the entire snippets. +++ HTML form +++ Name Name: Email-Address E-Mail Adresse: Age Alter: Gender Geschlecht: female | weiblich male | mÃnnlich Anything more to say? Noch ein Kommentar? +++ +++ PHP file +++ $name = $_POST['_txtName']; $email = $_POST['_txtEmail']; $age = $_POST['txtAge']; $gender = $_POST['_optGender']; $info = $_POST['_txtInfo']; $message = "Name: " . $name . "\n"; $message .= "Email: " .$email . "\n"; $message .= "Age: " . $age . "\n"; $message .= "Gender: " . $gender . "\n"; $message .= "Info: " . $info; try { mail("[EMAIL PROTECTED]", "Request", $message, _getMailHeaders($name, §email)); } catch(Exception $e) { ... } +++ "Jochem Maas" <[EMAIL PROTECTED]> schrieb im Newsbeitrag news:[EMAIL PROTECTED] > Matthias S. wrote: > > hi zoltan, > > > > thanks for your reply. i've tried the -f switch but the only effect it has > > is an error message ;) > > > > Warning: mail() [function.mail]: SAFE MODE Restriction in effect. The fifth > > parameter is disabled in SAFE MODE. > > which another way of saying 'my hosting env sucks' - but that's besides the point. > (short story: 'safe mode' isn't) > > > > > as for the age value: > > it is simply incorrect because it is always empty... input might be for > > example 25, but the var $age contains always an empty string. > > > > Can you help? I'm a programmer (C++) > > so the concept of debugging code should not be new to you. > so hello to print_r(), var_dump() and echo - they are your friends. > > e.g. stick the following at the top of your script (to start with): > > var_dump( > $_POST['_txtAge'], > $_POST > ); > > my guess is your form element name and post array key are not identical. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php