Formulier posten na validatie

Status
Niet open voor verdere reacties.

benbottelier

Gebruiker
Lid geworden
19 jan 2015
Berichten
10
Beste,

1st of all. Ik weet niet veel van PHP. Ik heb een formulier bewerkt via voorbeelden van internet en so far so good werkt het. Ik snap ook redelijk wat ik aan het doen ben.

ECHTER. Ik heb een formulier gemaakt waarbij een scriptje checkt of de velden wel ingevuld zijn. Zo niet, dan plaatst hij een tekst achter het veld. Dat werkt perfect. Nu wil ik de uitkomst van het formulier laten mailen. Maar dat wil ik pas nadat alle velden zijn ingevuld. Kan ik die validatie laten doen op de 1e pagina, nog voordat hij zijn output naar het 2e bestand met het emailadres stuurt?

Document Aanvraag-h.php
PHP:
<html>
<body>
<?php

// define variables and set to empty values
$naamErr = $adresErr = $postcodeErr = $plaatsErr =  "";
$naam = $adres = $postcode = $plaats = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
   if (empty($_POST["naam"])) {
     $nameErr = "Naam is een verplicht veld";
   } else {
     $name = test_input($_POST["naam"]);
   }
  
   if (empty($_POST["adres"])) {
     $adresErr = "Adres is een verplicht veld";
   } else {
     $adres = test_input($_POST["adres"]);
   }
  
   if (empty($_POST["plaats"])) {
     $plaatsErr = "Woonplaats is een verplicht veld";
   } else {
     $plaats = test_input($_POST["plaats"]);
   }
  
}

function test_input($data) {
   $data = trim($data);
   $data = stripslashes($data);
   $data = htmlspecialchars($data);
   return $data;
}
?>
<form enctype="multipart/form-data" method="post" action="formmailh.php" accept-charset="UTF-8">
<table>
<tr>
	<td width=220><B>Naam:</B></td>
	<td><input type="text" name="naam" value="<?php echo $naam;?>"><span class="error">  * <?php echo $naamErr;?></span></td>
</tr>
<tr>
	<td width=220><B>Adres:</B></td>
	<td><input type="text" name="adres" value="<?php echo $adres;?>"><span class="error">  * <?php echo $adresErr;?></span></td>
</tr>
<tr>
	<td width=220><B>Woonplaats:</B></td>
	<td><input type="text" name="plaats" value="<?php echo $plaats;?>"><span class="error">  * <?php echo $plaatsErr;?></span></td>
</tr>

</table>

   <input type="submit" name="submit">
</form>

<?php

mail($to, $subject, $message, "From: $from"); 

header("Location: $url");  
?>
</body>
</html>
Er zit een verwijzing in naar formmailh.php:
PHP:
<?php

$to      = "emailadres";			  // De e-mail zal naar dit adres worden verstuurd
$subject = 'Onderwerp';			      // Het onderwerp van de e-mail
$from    = 'afzender';				  // De afzender van de e-mail
$url     = 'bedanktpagina';           // Na het versturen van het formulier wordt de
                                      // bezoeker naar deze URL doorgestuurd
				
foreach ($_POST as $key => $val)
{         
	$message .= "$key = $val\n"; 
}  

mail($to, $subject, $message, "From: $from"); 

header("Location: $url");  

?>

Ik heb geen idee hoe dit te fixen. Alvast bedankt voor de hulp.
 
Wanneer je de invoer wilt controleren voordat deze naar de server wordt verzonden dan kom je er niet onderuit om dit via JavaScript te doen.
 
Ah, op die manier. Dan ga ik wel even googlen hoe ik dat moet oplossen. Thanx.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan