login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Feedback bij foute invoer formulier niet correct (Opgelost)

Offline ruben1992 - 07/05/2009 21:00 (laatste wijziging 07/05/2009 21:05)
Avatar van ruben1992Nieuw lid Hallo,

bij het opzetten van een formulier waarmee het mogelijk is een nieuwe gebruiker toe te voegen aan een database ben ik helaas tegen een probleem aangelopen. Ik zal de functie van het script en het probleem nader toelichten.

Er zijn drie verplichte velden die ingevuld moeten worden, namelijk:
- gebruikersnaam
- wachtwoord
- bevestiging wachtwoord

Zodra er verkeerde invoer verstuurd wordt, moet er in het invulformulier feedback komen te staan.

Wat het PHP-script dus moet gaan doen is controleren of de gebruikersnaam nog vrij is en controleren of het wachtwoord overeenkomt met de bevestiging.

Als dit niet het geval is, moeten er de volgende feedback komen te staan:
- De door u gekozen gebruikersnaam is niet meer beschikbaar.
en/of
- Dit wachtwoord komt niet overeen met de bevestiging.

Het probleem is nu dat de tweede feedbackregel, dus het wachtwoord, altijd weergegeven wordt, dus ook wanneer het wachtwoord gelijk is aan de bevestiging.

Ik ben flink aan het zoeken geweest naar de fout in het script, maar ik kan de fout echt niet vinden.

Weten jullie misschien wat er niet klopt aan het script?

Hieronder staat de code:
  1. function invoer_schoonmaken($tekst)
  2. {
  3. $tekst = strip_tags($tekst);
  4. $tekst = htmlspecialchars($tekst);
  5. return $tekst;
  6. }
  7. if ($_SESSION["ingelogd"] == "1" && empty($_POST["verzenden"]))
  8. {
  9. print("<h2>Een nieuwe gebruiker toevoegen</h2>");
  10. print("<form action='toevoegen.php' method='post'>");
  11. if ($_SESSION["fout_user"] == 1)
  12. {
  13. print("<i>De door u gekozen gebruikersnaam is niet meer beschikbaar.</i><br />");
  14. unset($_SESSION["fout_user"]);
  15. }
  16. print("Gebruikersnaam: <input type='text' maxlength='15' name='username' />*<br />");
  17. if ($_SESSION["fout_pw"] == 1)
  18. {
  19. print("<br /><i>Dit wachtwoord komt niet overeen met de bevestiging.</i><br />");
  20. unset($_SESSION["fout_pw"]);
  21. }
  22. print("Wachtwoord: <input type='password' name='password' />*<br />");
  23. print("Bevestig wachtwoord: <input type='password' name='password1' />*<br /><br />");
  24. print("Velden met een * zijn vereist<br />");
  25. print("<input name='verzenden' type='submit' value='Voeg toe' />");
  26. print("</form>");
  27. print("<br /><br />");
  28. print("<a href='uitloggen.php'>Uitloggen</a>");
  29. }
  30. elseif ($_SESSION["ingelogd"] != "1")
  31. {
  32. print("<h1>403 Forbidden</h1><p>You do not have permission to access this document.</p>");
  33. }
  34. elseif(isset($_POST["verzenden"]))
  35. {
  36. $username = invoer_schoonmaken($_POST["username"]);
  37. $password = invoer_schoonmaken($_POST["password"]);
  38. $password1 = invoer_schoonmaken($POST["password1"]);
  39.  
  40. $mysql = mysql_connect("localhost","username","password") or die("Fout: Er is geen verbinding met de MySQL-server tot stand gebracht!");
  41. mysql_select_db("naam_database",$mysql) or die("Fout: Het openen van de database is mislukt!");
  42. $resultaat1 = mysql_query("SELECT * FROM beheer WHERE username = '$username'",$mysql) or die("De query op de database is mislukt!");
  43. mysql_close($mysql) or die("Het verbreken van de verbinding met de MySQL-server is mislukt!");
  44.  
  45. if (mysql_num_rows ($resultaat1) == 1 && $password != $password1)
  46. {
  47. $_SESSION["fout_user"] = 1;
  48. $_SESSION["fout_pw"] = 1;
  49. }
  50. elseif (mysql_num_rows ($resultaat1) == 1 && $password == $password1)
  51. {
  52. $_SESSION["fout_user"] = 1;
  53. }
  54. elseif (mysql_num_rows ($resultaat1) == 0 && $password == $password1)
  55. {
  56. $password = md5($password);
  57.  
  58. $mysql = mysql_connect("localhost","username","password") or die("Fout: Er is geen verbinding met de MySQL-server tot stand gebracht!");
  59. mysql_select_db("naam_database",$mysql) or die("Fout: Het openen van de database is mislukt!");
  60. mysql_query("INSERT INTO beheer (username,password) VALUES ('$username','$password')",$mysql) or die("De toevoegquery op de database is mislukt!");
  61. $resultaat2 = mysql_query("SELECT username FROM beheer WHERE username = '$username' AND password = '$password' ",$mysql) or die("De query op de database is mislukt!");
  62. mysql_close($mysql) or die("Het verbreken van de verbinding met de MySQL-server is mislukt!");
  63.  
  64. $gebruikersnaam = mysql_result($resultaat2,0,0);
  65.  
  66. if (!empty($gebruikersnaam))
  67. {
  68. print("Gebruiker <i>$gebruikersnaam</i> is succesvol toegevoegd aan de database!");
  69. print("<br /><a href='toevoegen.php'>Nog een gebruiker toevoegen</a>");
  70. print("<br /><br /><a href='uitloggen.php'>Uitloggen</a>");
  71. }
  72. else
  73. {
  74. print("Er is een fout opgetreden bij het toevoegen van de gebruiker, <br />waardoor de gebruiker niet is toegevoegd!<br/>");
  75. print("<a href='toevoegen.php'>Klik hier om opnieuw te beginnen</a>");
  76. print("<br /><br /><a href='uitloggen.php'>Uitloggen</a>");
  77. }
  78. }
  79. else
  80. {
  81. $_SESSION["fout_pw"] = 1;
  82. }
  83. if (empty($username) || empty($password) || empty($password2) || $_SESSION["fout_user"] == 1 || $_SESSION["fout_pw"] == 1)
  84. {
  85. print("<script language='javascript'>location.href='toevoegen.php';</script>");
  86. }
  87. }


Alvast vriendelijk bedankt,

Ruben

2 antwoorden

Gesponsorde links
Offline Bart - 07/05/2009 21:04
Avatar van Bart PHP expert $password en $password1 zullen nooit hetzelfde zijn, gezien het feit dat je $password door md5 heen haalt en $password1 niet.
Offline ruben1992 - 07/05/2009 21:16
Avatar van ruben1992 Nieuw lid Hé Quicky,

bedankt voor je reactie.

Echter, $password wordt pas door md5 heen gehaald als $password en $password1 vergeleken zijn en overeenkomen.

Volgens mij ligt de fout dus niet daar.

Tenminste we het allebei over regel 57 hebben...
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.211s