Help - Search - Members - Calendar
Full Version: Mail form problem
HTMLHelp Forums > Programming > Server-side Scripting
ApoMarn
Can anyone tell me what I'm doing wrong here?

$email_message = .......
$email_message = "Medium: ".$medium."\r\n";
$email_message = .....

<FORM action="inspection_copies.php" method="post">
...
<p><input type="radio" name="medium" value="CD-ROM" checked> CD-ROM
<br><input type="radio" name="medium" value="USB drive"> USB drive
...
</FORM></b>

The rest of the form works perfectly but the radio button line sends only the title (Medium) without any value.
Christian J
The example doesn't show how you create the $medium variable, e.g. by using $_POST['medium'] or similar.
CharlesEF
In this section, each line over writes the previous value.
QUOTE
$email_message = .......
$email_message = "Medium: ".$medium."\r\n";
$email_message = .....
ApoMarn
QUOTE(Christian J @ Feb 5 2018, 09:13 PM) *

The example doesn't show how you create the $medium variable, e.g. by using $_POST['medium'] or similar.


Below is the complete text of the mailform input. I have added the radio buttons to an existing form by following an example from an HTML handbook. According to the handbook this is all that's needed, but it doesn't work.

<FORM action="inspection_copies.php" method="post">
<P>Your name:&nbsp; &nbsp; &nbsp; <INPUT size=40 name="name" value="<?php echo getValue('name'); ?>" />
<P>Name and address of school: <br>
<Textarea name="school" rows=6 cols=47><?php echo getValue('school'); ?></TEXTAREA>
<P>Telephone:&nbsp; &nbsp; &nbsp; &nbsp;<INPUT size=40 name="phone" value="<?php echo getValue('phone'); ?>" />
<P>Your e-mail:&nbsp; &nbsp; &nbsp;<INPUT size=40 name="email" value="<?php echo getValue('email'); ?>" />
<P>Title(s) required: <br>
<textarea name="titles" rows=6 cols=47><?php echo getValue('titles'); ?></TEXTAREA>
<p><input type="radio" name="medium" value="CD-ROM" checked> CD-ROM
<br><input type="radio" name="medium" value="USB drive"> USB drive
<P>Comments (e.g. USB drive):<br>
<Textarea name="comments" rows=3 cols=47><?php echo getValue('comments'); ?></TEXTAREA>
<P><input type="submit" value="Send" name="submit">
</FORM>
CharlesEF
We need to see the PHP code. How do you assign $medium? As Christian J pointed to you must be using '$medium = $_POST['medium']' or similar somewhere.
ApoMarn
QUOTE(CharlesEF @ Feb 9 2018, 10:04 AM) *

We need to see the PHP code. How do you assign $medium? As Christian J pointed to you must be using '$medium = $_POST['medium']' or similar somewhere.


if (count($errors) == 0) {
$email_message .= "Name: ".clean_string($full_name)."\r\n";
$email_message .= "School: ".clean_string($school)."\r\n";
$email_message .= "Email: ".clean_string($email_from)."\r\n";
$email_message .= "Telephone: ".clean_string($phone)."\r\n";
$email_message .= "Titles requested: ".clean_string($titles)."\r\n";
$email_message .= "Medium: ".$medium."\r\n";
$email_message .= "Comments: ".clean_string($comments)."\r\n";
$headers = 'From: ' . $email_from . "\r\n".'Reply-To: ' . $email_from."\r\n" . 'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
header("Location: $thankyou_page");

I have also tried:
$email_message .= "Medium: ".clean_string($medium)."\r\n";
Do I still need '$medium = $_POST['medium']'?
If so, where does it go?
ApoMarn
That shouldread:

I have also tried:
$email_message .= "Medium: ".clean_string($medium)."\r\n";
CharlesEF
QUOTE(ApoMarn @ Feb 13 2018, 11:17 AM) *

I have also tried:
$email_message .= "Medium: ".clean_string($medium)."\r\n";
Do I still need '$medium = $_POST['medium']'?
If so, where does it go?

Of course you need it. When you submit a form all the field values contained in that form are sent to the server in the $_POST array. To use those values in a PHP script you need to grab the values from the $_POST array. Since your code uses a '$medium' variable then the '$medium' variable MUST be set somewhere in your code (where? before you use the variable), '$medium = ????'. So, if you want the value sent from the form then you MUST have '$medium = $_POST['medium']' somewhere. In fact, every form value you use should have the same type of assignment.
ApoMarn
Cracked it
Thanks
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2018 Invision Power Services, Inc.