Vraag & Antwoord

Webprogrammeren & scripting

foutje in een php-Mailform

3 antwoorden
  • Hallo, Ik zou graag onderstaand php-script (van xentrik.net) willen gebruiken binnen mijn eigen website voor een mailform. Mijn gegevens invullen en op de site zetten gaat probleemloos. Het probleem is dat waneer ik alle velden op de juiste manier invul er toch telkens in het scherm komt te staan: "Error" en missing en daaronder de tekst "Try agian" terwijl er niets fout is ingevuld. Ik zag op het forum van de xentrik-site dat er al meer gebruikers dezelfde fout hebben maar daar wordt niet op gereageerd. Wie kan mij helpen om aan te geven waar de fout in dit script zit? <!-- Copyright © 2002 Kali (http://www.xentrik.net) --> <html> <head> <title>Kali's PHP Contact Form</title> <?php // COPYRIGHT/LIABILITY NOTICE // Copyright © 2002 Kali (http://www.xentrik.net) // Last modified 04/05/2004 // Kali's Contact Form may be used and modified free of charge as long as this // copyright notice and the comments above remain intact. By using this code // you agree to indemnify Kali from any liability that might arise from its use. // Selling the code for this program without prior written consent is not permitted. // Permission must be obtained before redistributing this software. In all cases the // copyright and header information must remain intact. // MODIFY THE FOLLOWING SECTION // your name $recipientname = "YOUR NAME"; // your email $recipientemail = "YOU@YOURDOMAIN.COM"; // subject of the email sent to you $subject = "Online-Form Response for $recipientname"; // send an autoresponse to the user? $autoresponse = "yes"; // subject of autoresponse $autosubject = "Thank you for your mail!"; // autoresponse message $automessage = "This is an auto response to let you know that we've successfully received your email sent through our email form. Thanks! We'll get back to you shortly."; // thankyou displayed after the user clicks "submit" $thanks = "Thank you for contacting us.<br>We will get back to you as soon as possible.<br>"; // END OF NECESSARY MODIFICATIONS ?> <style type="text/css"><!-- td,body,input,textarea { font-size:12px; font-family:Verdana,Arial,Helvetica,sans-serif; color:#000000} --></style> </head> <body> <table width="100%" height="100%"><tr> <td valign="top"><font face="Verdana,Arial,Helvetica" size="2"> <?php if($_POST['submitform']) { $Name = $HTTP_POST_VARS['Name']; $Email = $HTTP_POST_VARS['Email']; $Comments = $HTTP_POST_VARS['Comments']; // check required fields $dcheck = explode(",",$require); while(list($check) = each($dcheck)) { if(!$$dcheck[$check]) { $error .= "Missing $dcheck[$check]<br>"; } } // check email address if ((!ereg(".+\@.+\..+", $Email)) || (!ereg("^[a-zA-Z0-9_@.-]+$", $Email))){ $error .= "Invalid email address<br>";} // display errors if($error) { ?> <b>Error</b><br> <?php echo $error; ?><br> <a href="#" onClick="history.go(-1)">try again</a> <?php } else { $browser = $HTTP_USER_AGENT; $ip = $REMOTE_ADDR; // format message $message = "Online-Form Response for $recipientname: Name: $Name Email: $Email Comments: $Comments ----------------------------- Browser: $browser User IP: $ip"; // send mail and print success message mail($recipientemail,"$subject","$message","From: $Name <$Email>"); if($autoresponse == "yes") { $autosubject = stripslashes($autosubject); $automessage = stripslashes($automessage); mail($Email,"$autosubject","$automessage","From: $recipientname <$recipientemail>"); } echo "$thanks"; } } else { ?> <form name="contactform" action="<?php echo $PHP_SELF; ?>" method="post"> <input type="hidden" name="require" value="Name,Email,Comments"> <table><tr> <td colspan="2" align="center"><b>Contact Me!</b><p></td> </tr><tr> <td valign="top" align="right">Name:</td> <td valign="top"><input name="Name" size="25"></td> </tr><tr> <td valign="top" align="right">E-mail:</td> <td valign="top"><input name="Email" size="25"></td> </tr><tr> <td valign="top" align="right">Comments:</td> <td valign="top"><textarea name="Comments" rows="5" cols="35"></textarea></td> </tr><tr> <td colspan="2" align="center"><input type="submit" value="Submit" name="submitform"> <input type="reset" value="Reset" name="reset"></td> </tr></table> <br> </form> <?php } ?> </font><p></td> </tr><tr> <td valign="bottom"><font face="Verdana" size="1">Mailform Copyright © 2002 <a href="http://www.xentrik.net/">Kali's Web Shoppe</a>.</font></td> </tr></table> </body> </html>
  • Wat zo maar zou kunnen is dat jouw server de ouderwetse variabelen (zoals $HTTP_POST_VARS en $HTTP_USER_AGENT) niet meer ondersteunt en alleen de huidige $_POST en $_SERVER gebruikt. Een tweede mogelijkheid is dat de instellingen voor de mailserver niet juist zijn ingesteld in php.ini --------------------------------------------------------------------- herstel: Die missing foutmelding komt alleen maar terug in dit stuk code: [code:1:9dddd438c8] // check required fields $dcheck = explode(",",$require); while(list($check) = each($dcheck)) { if(!$$dcheck[$check]) { $error .= "Missing $dcheck[$check]<br>"; } } [/code:1:9dddd438c8] Een afschuwelijk onduidelijk stukje code, maar er wordt hier gecontroleerd op vereiste variabelen die moeten worden meegestuurd door het formulier. Weet je zeker dat je alle verplichte velden (meestal als hidden variabelen) meestuurt met het formulier?
  • Hallo, Ik hoef alleen maar deze 3 waarden in te voeren: - Name - Email - Comments Ik voer overal wat in en uiteraard een geldig email-adres en dan op de knop "Verzend" Ik heb het programma hier: http://www.timloto.org/mailform.php als test neergezet.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.