jan23778 Posted March 27, 2009 Share Posted March 27, 2009 Hi everyone, I have only just started to follow some php tutorials and seem to have hit a brick wall. I am writing some basic php form processing code for a friends website (well actually following a tutorial and adjusting it slightly to fit my needs) and it just doesn't seem to work properly. Here is the html I am using: <form action="form.php" method="post" class="contact"> <fieldset> <div> <label for="contactname" class="fixedwidth">Nombre y Apellido</label> <input type="text" name="contactname" id="contactname"/> </div> <div> <label for="telephone" class="fixedwidth">Numero de Telefono</label> <input type="text" name="telephone" id="telephone"/> </div> <div> <label for="email" class="fixedwidth">Correo Electronico</label> <input type="text" name="email" id="email"/> </div> <div> <label for="tipo" class="fixedwidth">Tipo de Seguro</label> <select name="tipo" id="tipo"> <option>Rodaje de spots</option> <option>Sesiones de Fotografía</option> <option>Cortometrajes</option> <option>Otros suguros</option> </select> </div> <div> <p>Texto</p> <div class="textarea"> <textarea name="detalles" id="details" cols="30" rows="7"></textarea> </div> <div class="buttonarea"> <input type="submit" value="Envianos la informacion"/> </div> and the php: <?php//import form information $detalles = $_POST['detalles']; $tipo = $_POST['tipo']; $telephone = $_POST['telephone']; $email = $_POST['email']; $contactname = $_POST['contactname']; $message=stripslashes($message); /* Simple form validation check to see if an email and message were entered */ //if no message entered and no email entered print an error if (empty($message) && empty($email)){ print "No email address and no message was entered. <br>Please include an email and a message"; } //if no message entered send print an error elseif (empty($message)){ print "No message was entered.<br>Please include a message.<br>"; } //if no email entered send print an error elseif (empty($email)){ print "No email address was entered.<br>Please include your email. <br>"; } //if the form has both an email and a message else { //Thank the user by name if they entered a name if (!empty($name)) { print "<b>Thank you $name.</b><br>"; } print "<p><b>The following message has been sent</b>: <br>$message<br></p><p><b>Comment type(s):</b><br>$screen_ctypes</p>"; $body= $message . ' Comment type(s)' . $ctypes; //mail the form contents mail( "[email protected]", "Web site comments", $body, "From: $email\r\n" ); $page = "http://www.elisegur.es/contact.html"; if (!ereg($page, $_SERVER['HTTP_REFERER'])){ echo "Invalid referer"; die; } } ?> It does send the info to my email address but has the following problems (by the way I am sorry to make it more difficult as it is half in Spanish but please be patient I have only been doing this a few days): The information is not always sent at all. On sending the information it shows "the following information has been sent: ...then the message in the box" have I done the following code wrong? if (!empty($name)) { print "<b>Thank you $name.</b><br>"; either way the message in the box never arrives at my email address. In fact the only info that does arrive is the name and email address. I hope someone can help as I am really desperate to get the hang of php and to help my friend with his website but am just finding it so frustrating. I am sorry if this is very basic for you guys but would really appreciate and suggestion and help you can give. Thanks Link to comment https://forums.phpfreaks.com/topic/151381-very-new-to-php-and-having-problems-i-need-help/ Share on other sites More sharing options...
revraz Posted March 27, 2009 Share Posted March 27, 2009 I don't see where you set $message initially. Use a valid email address on your webhost as your FROM header in your mail() parameter, and not one from the form. Link to comment https://forums.phpfreaks.com/topic/151381-very-new-to-php-and-having-problems-i-need-help/#findComment-795095 Share on other sites More sharing options...
jan23778 Posted March 27, 2009 Author Share Posted March 27, 2009 Hi Revraz, That was a really quick reply. Thank you. Do you mean to change the "mail the form contents" section to this: //mail the form contents mail( "[email protected]", "Web site comments", $body, "From: [email protected]\r\n" ) Link to comment https://forums.phpfreaks.com/topic/151381-very-new-to-php-and-having-problems-i-need-help/#findComment-795105 Share on other sites More sharing options...
revraz Posted March 27, 2009 Share Posted March 27, 2009 For that part, yes. But you still need to set the $message variable. Link to comment https://forums.phpfreaks.com/topic/151381-very-new-to-php-and-having-problems-i-need-help/#findComment-795114 Share on other sites More sharing options...
jan23778 Posted March 27, 2009 Author Share Posted March 27, 2009 Hi revraz, thank you again for your reply. I am not 100% sure where the message variable would go, I am still very new and finding it difficult. My best guess would be the following: $detalles = $_POST['detalles']; $tipo = $_POST['tipo']; $telephone = $_POST['telephone']; $email = $_POST['email']; $contactname = $_POST['contactname']; $message = $_POST['message']; $message=stripslashes($message); However I thought the text area was covered by the $detalles = $_POST['detalles']; array as that is what i have named it in the sheet? Link to comment https://forums.phpfreaks.com/topic/151381-very-new-to-php-and-having-problems-i-need-help/#findComment-795145 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.