Hoe kan ik er ervoor zorgen dat de validatie fouten op het formulier worden weergegeven ipv op een volgende pagina?

Deze website maakt hier ook gebruik van op de registratie pagina.
Validatie fouten? Leg de vraag eens duidelijk uit
Als men zich registreerd worden de velden op eventuele foute invoer gecontroleerd met if statements enz. Indien er een fout wordt geconstateerd wordt dit bij mijn registratie weergegeven op een volgende pagina.

Maar ik wil juist dat die fouten op dezelfde pagina worden weergegeven waarop de gebruiker de gegevens invoerd.
ja precies dat bedoel ik
Jaja. Dit heb ik uit mijn eigen script gehaald:
<?php
function show_form($naam = '', $email = '', $titel = '', $bericht = '', $error = false) {
///////////////////////////////////////////////
/// Laat formulier zien. Error als opgegeven
/// voeg $HTTP_SERVER_VARS toe aan het global
/// stukje als je geen superglobals kan of
/// wil gebruiken
////////////////////////////////////////////////
/// void show_form( [string naam, [string email, [string titel, [string bericht, [string error]]]]] );
global $SETTINGS;
if ($error == false) {
$header = $SETTINGS['bericht_top'];
} else {
$header = '<span style="color:#FF0000;font-weight:bold;">'.$error.'</span>';
}
print '<form name="contact" action="'.$_SERVER['PHP_SELF'].'" method="post">';
print '<input type="hidden" name="ip" value="'.$_SERVER['REMOTE_ADDR'].'" />';
print '<table>'; //hier kun je eventueel nog style info aan toevoegen
print '<tr><td colspan="2" align="center">'.$header.'</td></tr>';
print '<tr><td align="left" valign="top">Je naam:</td><td align="left"><input type="text" name="naam" value="'.htmlentities($naam).'" size="75" maxlength="'.$SETTINGS['naam_max'].'" /></td></tr>';
print '<tr><td align="left" valign="top">Je email:</td><td align="left"><input type="text" name="email" value="'.htmlentities($email).'" size="75" maxlength="'.$SETTINGS['email_max'].'" /></td></tr>';
print '<tr><td align="left" valign="top">Titel:</td><td align="left"><input type="text" name="titel" value="'.htmlentities($titel).'" size="75" maxlength="'.$SETTINGS['titel_max'].'" /></td></tr>';
print '<tr><td align="left" valign="top">Je bericht:</td><td align="left"><textarea name="bericht" cols="75" rows="7" wrap="soft">'.htmlentities($bericht).'</textarea></td>';
print '<tr><td align="center" colspan="2"><input type="submit" name="submit" value="Verzend email" /></td></tr>';
print '</table></form>';
}
?>
Oftewel. Maak een functie zoals dit: Een functie die een formulier echoot(hoe schrijf je dat), kijk maar naar het script 'Uitgebreid Contact Formulier'
Nowy schreef op 01.11.2005 12:17
ja precies dat bedoel ik


Ik plak ff de code van die pagina:

<?php
function lege_velden () {
foreach ($_POST as $key => $value) {
if (!isset ($key) || strlen ($value) < 3) {
$tmp[$key] = "Geen $key ingevuld";
}
}
return $tmp;
}
?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">;


<html lang="nl">

<head>
<title>BACHHH - Popcollectief</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script language="javascript" type="text/javascript" src="../script/microapi.js"></script>

<link href="../css/reunie.css" rel="stylesheet" type="text/css" media="screen">
</head>

<body>

<div id="container">

<?php
if (isset ($_POST['aanmelden']) && !($err = lege_velden ())) {
?>

<h3>Aanmelding verzonden!</h3>
<p>formulier verwerken</p>

<?php
foreach ($_POST as $key => $value) {
echo "<p>$key: $value</p>";
}

}
else {
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

<h3><span class="label"></span>Aanmeldingsformulier</h3>

<p>
<span class="label"><label for="naam">naam:</label></span>
<input id="naam" name="naam" type="text" class="medium" value="<?php echo $naam; ?>">
<span class="error"><?php echo $err['naam']; ?></span>
</p>

<p>
<span class="label"><label for="adres">adres:</label></span>
<input id="adres" name="adres" type="text" class="medium" value="<?php echo $adres; ?>">
<span class="error"><?php echo $err['adres']; ?></span>
</p>

<p>
<span class="label"><label for="postcode">postcode:</label></span>
<input id="postcode" name="postcode" type="text" class="medium" value="<?php echo $postcode; ?>">
<span class="error"><?php echo $err['postcode']; ?></span>
</p>

<p>
<span class="label"><label for="woonplaats">woonplaats:</label></span>
<input id="woonplaats" name="woonplaats" type="text" class="medium" value="<?php echo $woonplaats; ?>">
<span class="error"><?php echo $err['woonplaats']; ?></span>
</p>

<p>
<span class="label"></span>
<input id="aanmelden" name="aanmelden" type="submit" value="aanmelden">
</p>

</form>

<?php
}
?>

</div>

</body>

</html>
thnx zo moet ik er wel uitkomen
@Jan: Jouw functie is wel wat oppervlakkig:
Ik gebruik hele korte naampjes voor sommige velden, en ik heb ook velden die je niet hoeft in te vullen!
En die worden dan foutgekeurt

eN wat als we met checkboxes werken, wat dan?
geef je checkbox een naam

<?

if(empty($naam_van_de_checkbox)){
$error = "hier je error melding";
}

?>
een checkbox is meestal een box die niet perse verplicht hoeft te worden.... gechecked dus het gaat niet werken

Reageren