?
Onbekende gebruiker
01-11-2005 12:12
Validatie fouten? Leg de vraag eens
duidelijk uit
Link gekopieerd
Link gekopieerd
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.
Link gekopieerd
?
Onbekende gebruiker
01-11-2005 12:17
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'
Link gekopieerd
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>
Link gekopieerd
thnx zo moet ik er wel uitkomen
Link gekopieerd
?
Onbekende gebruiker
01-11-2005 12:44
@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?
Link gekopieerd
geef je checkbox een naam
<?
if(empty($naam_van_de_checkbox)){
$error = "hier je error melding";
}
?>
Link gekopieerd
?
Onbekende gebruiker
01-11-2005 13:09
een checkbox is meestal een box die niet perse verplicht hoeft te worden.... gechecked dus het gaat niet werken
Link gekopieerd