Hi! 🙂
I've created a form with an integrated php validationscript called contact.php. When I try to render the page, it shows the faults before I've been able to write anything in the textfields. It seems like the validationscript validates an empty form, and then gives the result.
How can I make the errors appear after I've clicked the submit button...
I'm no good in php-language syntax, so maybe you could give me a start...?
I'd appreciate all help 🙂
Here's my html and phpcode:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" >
<span class="heading" ><img src="images/webbilder/kontaktimage.gif" /></span><br /><br /><span class="felter">Felter merket * må fylles ut</span><br /><br />
<span class="skjema">Firstname*</span><br />
<input name="navn" type="text" class="textfelt" size="40" maxlength="40" /><br /><br />
<span class="skjema">Lastname*</span><br />
<input name="etternavn" type="text" class="textfelt" size="40" maxlength="40" /><br /><br />
<span class="skjema">Telephonenumber</span><br />
<input name="mobil" type="text" class="textfelt" size="20" maxlength="8" /><br /><br />
<span class="skjema">e-mailaddress*</span><br />
<input name="email" type="text" class="textfelt" size="40" maxlength="40" /><br /><br />
<span class="skjema">Subject</span><br />
<input name="emne" type="text" class="textfelt" size="40" maxlength="40" /><br /><br />
<span class="skjema">Your message*</span><br />
<textarea name="melding" cols="70" rows="10" class="textfelt"></textarea>
<br /><br />
<input name="submit" type="submit" value="send" /><input name="reset" type="reset" value="slett" />
</form>
<?php
if($_POST['submit']) {
$errcount = 0;
$error = '';
}
{ //check if someone has filled out a form
//validate name
if(preg_match('/^[a-zæøåÆØÅ_-]{2,}$/i', $_POST['navn'])){
$navn = $_POST['navn'];
} else {
$error .= "You didn't write a name!<br />";
$errcount++;
}
{ //check lastname
//validate lastname
if(preg_match('/^[a-zæøåÆØÅ_-]{2,}$/i', $_POST['etternavn'])){
$etternavn = $_POST['etternavn'];
} else {
$error .= "You didn't write your lastname!<br />";
$errcount++;
}
//validate telephonenumber
if(preg_match('/^[0-9_-]{8,}$/i', $_POST['mobil'])){
$mobil = $_POST['mobil'];
} else {
$error .= "You didn't write a correct telephonenumber!<br />";
$errcount++;
}
//check correct email
if(preg_match('/^[\w]+[-\w._]*@[\w]+[-\w]+(\.[\w]+[-\w]+)*\.[\w]{2,6}$/ ', $_POST['email'])){
$epost = $_POST['email'];
} else {
$error .= "You didn't write a valid e-mail!<br />";
$errcount++;
}
if (isset($_POST['melding'])) {
$melding = $_POST['melding'];
} else {
$error .= "You didn't write a message!<br />";
$errcount++;
}
//Check for faults
//if there's a fault, stop the script and preview the following
if ($errcount !=0) {
die("<p>Sorry, there is $errcount faults in your form. Please correct these:</p>" . $error );
}
else {
$emne = $_POST['emne'];
$mailheaders = "From: " .$navn ." " .$etternavn ." <". $epost . ">\n";
$mailheaders .= "Reply-To: <". $epost . ">\n";
$to = 'my@domain.no';
$melding = $_POST['melding'];
$melding = "Fra: $navn $etternavn\nTelefon: $mobil\n\nMelding:\n$melding";
mail( $to, $emne, $melding, $mailheaders, '-fmail@domain.no'); //Send Mail
{
header ("Location: http://www.domain.no/thankyou.htm" );
}
}
}
}
?>