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( "jan_colombini@hotmail.com", "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 Quote Link to comment 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. Quote Link to comment 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( "jan_colombini@hotmail.com", "Web site comments", $body, "From: $jan_colombini@hotmail.com\r\n" ) Quote Link to comment 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. Quote Link to comment 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? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.