Beste mensen,

Ik heb een script gemaakt dat er een nieuw wachtwoord wordt gemaakt.
Voor een bezoeker die zijn wachtwoord kwijt is.

Maar als hij zijn naam en e-mail verkeerd invoert moet er een error kommen.
Hoe moet ik dat doen?

Dit heb ik al:

$result = mysql_query("SELECT * FROM gebruikers WHERE email = '". $email ."' AND gebruikersnaam = '". $gebruikersnaam ."'");

while($row = mysql_fetch_array($result))
  {
	echo "Er is een e-mail verstuurd naar <i>". $row['email'] ."</i>. In deze mail vindt u uw nieuwe wachtwoord, waarmee u weer kunt inloggen op deze site.";

	mysql_query("UPDATE gebruikers SET wachtwoord='$gecodeerd' WHERE gebruikersnaam='$gebruikersnaam' AND 	mail='$email'");
    }

if(.......) {
	echo 'Uw naam en e-mail komen niet overéén.';
}


Alvast bedankt.

if( mysql_num_rows($result) == 0)
{
  ...
}

Thnks dat was hem. Stom ik was dat stukje code gewoon vergeten.
In dit stukje code wordt dus nog geen mail verstuurd (je meldt het wel aan de bezoeker).
Waarom * gebruiken in je query en niet het veld/de velden benoemen?
In je query staat $email / $gebruikersnaam; die komen (vermoed ik) uit een formulier. Kennelijk maak je nieuwe variabelen aan (ipv de $_POST waarden te gebruiken). Zorg (in de query) voor beveiliging (mysql-injection)
Ik mis foutafhandeling bij de query's.
Waarom een while-lus? Je hebt of 1 of 0 resultaten.
Waarom gebruik je $row['email']? Je hebt ook $email (en vermoedelijk ook nog $_POST waarde).
De tekst 'Uw naam en e-mail komen niet overeen' klopt niet. Het kan ook zijn dat 1 van twee niet juist was. Ik zou het woordje of er tussen zetten: "uw naam en/of emailadres".

Reageren