wat doe ik hier fout? als alles vol is behalve wachtwoord dan stuurt die hem door.


<?php

	$id = '';
	$email = mysql_real_escape_string($_POST['email']);
	$gebruikersnaam = mysql_real_escape_string($_POST['gebruikersnaam']);
	$wachtwoord = mysql_real_escape_string(addslashes(sha1($_POST['wachtwoord'])));
	$hwachtwoord = mysql_real_escape_string(addslashes(sha1($_POST['hwachtwoord'])));
	$recht = '2';

if(empty($gebruikersnaam) || empty($wachtwoord) || empty($email)|| empty($hwachtwoord)){
				echo 'U bent iets vergeten in te vullen';
				
					} elseif($wachtwoord  != $hwachtwoord){
						echo'De wachtwoorden komen niet overeen!';
					}else
?>
Waar komt $gebruikersnaam, $wachtwoord, $email vandaan?

empty() is trouwens geen goede manier om te kijken of iets een waarde heeft.
Ik kan hier zo geen fout in ontdekken.
Mogelijk dat het eerder al fout gaat, met het vullen van de variabelen?
- Aar - op 07/12/2011 11:24:25

Waar komt $gebruikersnaam, $wachtwoord, $email vandaan?

empty() is trouwens geen goede manier om te kijken of iets een waarde heeft.


heb ook me post even toegevoegd. volgorde maakte ook niet uit.
sha1 over een lege string geeft alsnog een string terug, en zal dus nooit leeg zijn.
Sowieso moet je geen zaken als addslashes en escape_string niet gebruiken zolang je met de variabelen werkt, maar pas toepassen bij database gebruik.

Daarnaast is escape_string en addslashes dubbelop.
oke, maar hiermee is niet het probleem opgelost.
Wat heb je nu dan?
Je handelt PHP af in de verkeerde volgorde.

Je doet eerst dingen met de variabelen en kijkt dan pas of ze bestaan. Alsof je je eerst van 50 meter hoog laat vallen en dan pas kijkt of er een vangnet klaar ligt...

Dus kijk eerst of de $_POST variabelen allemaal geset zijn. Dit doe je niet met empty, maar met [php]isset[/php] (en dan natuurlijk gebruikmaken van de not operator).
Mocht alles oké zijn, ga dan verder met je script en doe wat leuks met de variabelen. Mocht het niet oké zijn geef dan de error en voer de rest niet uit.
Opgelost isset werkte

Reageren