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
Er zit een verwijzing in naar formmailh.php:
Ik heb geen idee hoe dit te fixen. Alvast bedankt voor de hulp.
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>
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.