Controle

Status
Niet open voor verdere reacties.

Hulsen4

Gebruiker
Lid geworden
29 dec 2008
Berichten
68
Ik heb een formulier gemaakt om in te vullen, nu wilt ik deze laten controleren, maar ik zou niet weten hoe, ik heb wel iets gemaakt maar weet niet of het goed is/hoe ik het kan linken, zou iemand me verder kunnen helpen?


Formulier:
PHP:
<html><link href="stylesheet.css" rel="stylesheet" type="text/css">
<head><title> Registratie Pagina</title>
</head>
<?php
if (!empty($_POST)){
$server ="localhost";
$user ="root";
$wachtwoord ="";
$database = "dvmtestdatabase";
$query = "";


$db = mysql_connect($server, $user, $wachtwoord);
mysql_select_db($database);



$query ="Insert klanten (ID, Voornaam, tv, Achternaam, Telefoon, Woonplaats, Straatnaam, Postcode, Email, Geboortedatum, Nickname, Password)";
$query .="values ('', '";
$query .= $_POST["Voornaam"] . "', '";
$query .= $_POST["Tussenvoegsels"] . "', '";
$query .= $_POST["Achternaam"] . "', '";
$query .= $_POST["Telefoon"] . "', '";
$query .= $_POST["Woonplaats"] . "', '";
$query .= $_POST["Straatnaam"] . "', '";
$query .= $_POST["Postcode"] . "', '";
$query .= $_POST["Email"] . "', '";
$query .= $_POST["Geboortedatum"] . "', '";
$query .= $_POST["Nickname"] . "', '";
$query .= $_POST["Password"] . "')";

if(!mysql_query($query)){
echo "er is een fout opgetreden met foutnummer " . mysql_errno() . " : " . mysql_error();
mysql_close($db);
exit;
}
}

else{
?>


<body>
<h2>Registreren</h2>


<form name="Registreren" method="POST" action="<?php echo $_SERVER['PHP_SELF'] ?>">
<table>
<tr><td>	Inlognaam *: 	</td><td>	<input type="text" name="Nickname"><br>	</td></tr>
<tr><td>	Wachtwoord *: 	</td><td>	<input type="password" name="Password"> (minimaal 6 tekens)<br>		</td></tr>
<tr><td>	Voornaam *:	</td><td>	<input type="text" name="Voornaam"><br>					</td></tr>
<tr><td>	Tussenvoegsels:	</td><td>	<input type="text" name="Tussenvoegsels"><br>				</td></tr>
<tr><td>	Achternaam *:	</td><td>	<input type="text" name="Achternaam"><br>				</td></tr>
<tr><td>	Telefoon *:	</td><td>	<input type="text" name="Telefoon" size ="11" maxlength="10"><br>	</td></tr>
<tr><td>	Woonplaats *:	</td><td>	<input type="text" name="Woonplaats"><br>				</td></tr>
<tr><td>	Straatnaam *:	</td><td>	<input type="text" name="Straatnaam"><br>				</td></tr>
<tr><td>	Postcode *:	</td><td>	<input type="text" name="Postcode" size="7" maxlength="6"><br>		</td></tr>
<tr><td>	Email *:	</td><td>	<input type="text" name="Email"><br>					</td></tr>
<tr><td>	Geboortedatum *:</td><td>	<input type="text" name="Geboortedatum" size="11" maxlength="10">(dd/mm/jjjj)<br>	</td></tr>
<tr><td><input type="submit" value="Registreren"></td><td></td></tr>
<tr><td>*verplichte velden</td><td></td></tr>
</form>
</table>
<?php } ?>
</body>
</html>


Controle:
PHP:
if (empty($_POST['Nickname'])) {    
echo 'Inlognaam niet ingevuld!';

if (empty($_POST['Password'])) {    
echo 'Wachtwoord niet ingevuld!';

if (empty($_POST['Voornaam'])) {    
echo 'Voornaam niet ingevuld!';

if (empty($_POST['Achternaam'])) {    
echo 'Achternaam niet ingevuld!';

if (empty($_POST['Telefoon'])) {    
echo 'Telefoon niet ingevuld!!';

if (empty($_POST['Woonplaats'])) {    
echo 'Woonplaats niet ingevuld!';

if (empty($_POST['Straatnaam'])) {    
echo 'Straatnaam niet ingevuld!';

if (empty($_POST['Woonplaats'])) {    
echo 'Woonplaats niet ingevuld!';

if (empty($_POST['Email'])) {    
echo 'Email niet ingevuld!';

if (empty($_POST['Postcode'])) {    
echo 'Postcode niet ingevuld!';

if (empty($_POST['Geboortedatum '])) {    
echo 'Geboortedatum  niet ingevuld!';
 
Laatst bewerkt door een moderator:
1. bij de head heb je de connectie met je db. wat je kan doen is deze in een aparte file zetten en dan includen in deze. mocht je wat moeten aanpassen dan hoef je dit maar in 1 bestand te doen namelijk de connectie bestand.

2. je wilt valideren. hier kan je javascript voor gebruiken. dit is clientside.
Tutorials :
Site 1
Site 2
Let wel op dat dit clientside is en dat de gebruiker de javascript kan aanpassen waardoor je misschien lege data (null) in je db krijgt.
Tip : plaats labels met id (en naam) tags achter de velden met lege text zodat als je een melding geeft je de label kan aanpassen met *Vul straatnaam in ofzo ;). Maybe dat de tutorial sites iets anders aanbieden maar meot je maar ff kijken.

3. via php kan dit ook alleen is het nieuw heel gebruiksvriendelijk. het is wel veiliger.
ik heb vroeger ook met php gewerkt en ik weet dat je met de form action = php self je kan laten verwijzen naar je eigen pagina maar ik weet niet meer precies hoe dit werkt.

ik zal je uitleggen hoe je dit doet via meerdere pagina's zodat je het zelf kan toepassen met jouw kennis van php self.

Pagina 1 (form)
Formulier > ingevuld > klik (action = pagina 2)

Pagina 2 (validate)
is een functie in php die check of alle velden een waarde bevatten.
bovenaan maak je variablen bijvoorbeeld booleans. (bool straatnaam)
vervolgens doe je met if statement bijvoorbeeld.
if (empty($_POST['Straatnaam'])) { straatnaam = false } (<<Rode tekst van jouw gekopieerd dus weet niet of het goed is)
boolean wordt gezet op false en deze stuur je mee naar volgende
als alles true is dan verwijzing naar pagina 4

pagina 3 (error)
weer het invulformulier met de dataingevuld die al was ingevuld(hoeft de gebruiker het neit weer opnieuw in te voeren) + een melding ofzo dat de overige velden ingevuld moeten worden.

pagina 4 (succes)
melding dat gegevens zijn ingevoerd met link naar een homepage ofzo.

Let wel op dat dit niet de ideale situatie is omdat je zo 4 pagina's nodig hebt maar zoals ik al zei : combineer zoiets met je eigen kennis (php self enz..)

Het is beter om beiden te gebruiken. js en php zo doe je check op clientside en mocht de gebruiker deze aangepast hebben dan wordt deze ook nog server sided gechecked die de gebruiker niet kan aanpassen. tenminste voor zover ik weet :P.

Veel succes and lemme know ;)
Byee VRC

P.S. gebruik volgende keer als je code gaat plaats de code of php tag. dat is wat duidelijk ;)
 
Laatst bewerkt:
De 4 onderste stappen, lijken me erg toepasselijk:)
Maar de eerste pagina heb ik dus eigenlijk al gemaakt wat onder Formulier staat?
Hoe zit het dan met 2, 3 en 4?:P
 
pagina 2 lijkt me duidelijk toch?? een check functie ;)
pagina 3 is eigenlijk kopie van pagina 1 maar met een extra tekst erbij die aangeeft bijv.
Code:
Vul alle velden in :
(velden die ingevuld moeten worden. deze krijgt ie van pagina 2)
en pagina 4 spreekt ook voor zich toch? gwn een pagina met de tekst : Invoer gelukt!

Byee VRC
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan