[PHP] Beginner Questions regarding Mail and Forms

2007-02-12 Thread Matthias S.
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

2007-02-12 Thread Matthias S.
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

2007-02-12 Thread Matthias S.
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