Bram
Legacy Member
Zoals het in de titel staat:
Ik heb een formuliertje om een gebruiker aan de database toe te voegen. Hieraan gaat natuurlijk wat validatie vooraf:
-alle velden moeten ingevuld zijn (naam, email, rank en paswoord 2*maal)
-de twee paswoorden moeten aan elkaar gelijk zijn
-de sql query moet succesvol uitgevoerd worden.
Als deze allen geslaagd zijn, krijgt de gebruiker een veldje bovenaan de pagina te zien "geslaagd etc". Gaat er iets fout bij vorige, dan moet er een waarschuwing komen te staan.
Momenteel doe ik dit zo:
het probleem is nu echter dat, wanneer de veldjes niet allemaal zijn ingevuld, de pagina natuurlijk ververst (door de submit knop), en de velden dus weer leeg komen te staan. Niet echt gebruiksvriendelijk wanneer er bv een veld werd opengelaten, of enkel een paswoord verkeerd getypt werd.
Hoe zou ik dit het beste aanpakken zodat de reeds ingevulde waarden toch in het veld blijven staan? Eenmaal geslaagd mag/moet de pagina natuurlijk verversen, aangezien er bovenaan het formulier een tabel staat met de reeds geregistreerde gebruikers, anders komt deze er niet bij te staan...
Ik heb een formuliertje om een gebruiker aan de database toe te voegen. Hieraan gaat natuurlijk wat validatie vooraf:
-alle velden moeten ingevuld zijn (naam, email, rank en paswoord 2*maal)
-de twee paswoorden moeten aan elkaar gelijk zijn
-de sql query moet succesvol uitgevoerd worden.
Als deze allen geslaagd zijn, krijgt de gebruiker een veldje bovenaan de pagina te zien "geslaagd etc". Gaat er iets fout bij vorige, dan moet er een waarschuwing komen te staan.
Momenteel doe ik dit zo:
PHP:
<?php
if(isset($_POST['submNewUser'])) {
$username = !empty($_POST['username']) ? $_POST['username'] : '';
$email = !empty($_POST['email']) ? $_POST['email'] : '';
$password = !empty($_POST['password']) ? $_POST['password'] : '';
$passwordCheck = !empty($_POST['passwordCheck']) ? $_POST['passwordCheck'] : '';
$perm_id = $_POST['permId'];
if(empty($username) || empty($email) || empty($password) || empty($passwordCheck)) {
$core->assign('returnInfo', "<p class=\"alert\">Field empty!</p>");
} else {
if($password == $passwordCheck) {
$pw = md5($password);
$qry = $core->sql->doQry("INSERT INTO users SET username = '$username', email = '$email', password = '$pw', perm_id = $perm_id");
if($qry['bool']) {
$core->assign('returnInfo', "<p class=\"success\">User successfully added!</p>");
} else {
$core->assign('returnInfo', "<p class=\"alert\">Query not executed correctly</p>");
}
} else {
$core->assign('returnInfo', "<p class=\"alert\">Passwords didn't match!</p>");
}
}
}
?>
Hoe zou ik dit het beste aanpakken zodat de reeds ingevulde waarden toch in het veld blijven staan? Eenmaal geslaagd mag/moet de pagina natuurlijk verversen, aangezien er bovenaan het formulier een tabel staat met de reeds geregistreerde gebruikers, anders komt deze er niet bij te staan...