login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Login afwerkings probleem

Offline maxcy - 13/07/2005 20:01 (laatste wijziging 13/07/2005 20:02)
Avatar van maxcyNieuw lid Hoi,
Ik ben bezig met een login script. en ik heb het al op meerdere manier geprobeerd. is met behulp van een script wat hier gepost staat ergens.

Ik zal het even proberen uit te leggen, wanneer ik probeer in te loggen met een juiste username / password geeft het geen probleem. Log ik in met juist username / verkeerd password geeft het een error verkeerd password.
Echter. Wanneer ik een niet bestaande gebruiker invul blijft het scherm nutteloos wit.

Er hebben al 2 andere mensen naar gekeken en die konden de fout niet zien. Misschien dat jullie mij iets verder kunnen helpen?

  1. <?
  2. //session_start();
  3. if ($_POST["login"])
  4. {
  5. include("config.php");
  6. mysql_connect("127.0.0.1","$dbuser","$dbpass");
  7. mysql_select_db($dbname);
  8.  
  9. $query = "select * from leden where username = '" . $_POST["login_username"] . "'";
  10.  
  11. $result = mysql_query($query) or die(mysql_error());
  12.  
  13. while (list($id,$username,$password,$email,$naam)=mysql_fetch_row($result))
  14. {
  15. if (($_POST["login_username"])!=$username)
  16. {
  17. echo "<table style='height:100%; width:100%'>
  18. <tr><td valign='middle' align='center'>
  19. <span style='color:red'>Verkeerd username! <a href='login.php'>Probeer nogmaals</a></span>
  20. </td></tr></table>";
  21. }
  22. else
  23. {
  24. if ($username == ($_POST["login_username"]))
  25. {
  26. if ($password == md5($_POST["login_password"]))
  27. {
  28. $_SESSION["ingelogd"]= TRUE;
  29. $_SESSION["username"]="$username";
  30. $_SESSION["naam"]="$naam";
  31. $_SESSION["id"]="$id";
  32. echo "<table style='height:100%; width:100%'>";
  33. echo "<tr><td valign='middle' align='center'>";
  34. echo "<span style='color:green'>Succesvol</span> ingelogd $username! <a href='ingelogd.php'>Klik hier om verder te gaan</a>.";
  35. echo "</td></tr></table>";
  36. }
  37. else
  38. {
  39. echo "<table style='height:100%; width:100%'>
  40. <tr><td valign='middle' align='center'>
  41. <span style='color:red'>Verkeerd password! <a href='login.php'>Probeer nogmaals</a></span>
  42. </td></tr></table>";
  43. }
  44. }
  45. }
  46. }
  47. }
  48. else
  49. {
  50. ?>



Alvast bedankt

5 antwoorden

Gesponsorde links
Offline haytjes - 13/07/2005 20:11 (laatste wijziging 13/07/2005 20:14)
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
  1. $query = "select * from leden where username = '" . $_POST["login_username"] . "'";
  2.  
  3. $result = mysql_query($query) or die(mysql_error());
  4.  
  5. while (list($id,$username,$password,$email,$naam)=mysql_fetch_row($result))
  6. {
  7. }


die while wordt toch nooit uitgevoerd omdat er geen resultaten zijn???
Offline Thomas - 14/07/2005 07:41 (laatste wijziging 14/07/2005 07:42)
Avatar van Thomas Moderator Waarschijnlijk wel - het is echter niet nodig om hiervoor een while-lus te gebruiken, omdat er maximaal maar één user met de naam Pietje in de database mag staan, lijkt mij.

Er van uitgaande dat de namen van de formuliervelden allemaal kloppen denk ik dat je probleem te maken heeft met de volgorde van de kolomnamen in je database, en het gebruik van list().

Als je zo'n SELECT * / list() constructie gebruikt moet je er goed op letten dat de eerste variabele in je list overeen dient te komen met de eerste kolom van je ledentabel, de tweede variabele in je list met de tweede kolom van je ledentabel et cetera.

Je zegt dat met een juiste username en password je de "verkeerd wachtwoord"-boodschap krijgt.

Controleer de volgende zaken:
- Staat het wachtwoord ook ge-MD5'd in je database ? Is dit ook echt de MD5-hash van dat wachtwoord ?
- Druk $password af - heb je met de list()-functie de goede kolom geselecteerd, of had je toch de verkeerde kolom te pakken zodat het matchen van je password fout gaat ?

EDIT: Als je variabelen in een sessie wilt stoppen ($_SESSION['bla'] = ...) dan zul je eerst je sessie moeten starten met session_start().
Offline maxcy - 14/07/2005 09:01
Avatar van maxcy Nieuw lid De kolommen komen wel overheen met dat wat in de list() staat.
dus daar zie ik geen probleem, dan zou het misschien aan de while kunnen liggen

goede username/goed wachtwoord:
logt in.

goede username/verkeerd wachtwoord:
melding verkeerd wachtwoord.

verkeerde username/wachtwoord zou dan al niet meer van belang moeten zijn:
Krijg ik een wit scherm.

Ik zal het vandaag nog beetje proberen te debuggen
Offline ikkedikke - 14/07/2005 11:48
Avatar van ikkedikke PHP expert kijk nou is naar wat haytjes zei, want volgens mij heeft hij gelijk
Offline Thomas - 14/07/2005 12:22
Avatar van Thomas Moderator Ow... De rest ging al goed, maar je wilt gewoon een optie voor wanneer de gebruiker niet bestaat. Je zou kunnen overwegen om uit veiligheidsmotieven zo min mogelijk (duidelijke) mededelingen te doen over welke gegevens fout zijn, om zo een inbraak(poging) te voorkomen / moeilijker te maken.

Maar om antwoord te geven op je vraag:
Je zou kunnen controleren of de query iets oplevert:

  1. $query = " ... je query waarbij je gegevens bij een username opvraagt ... ";
  2. $result = mysql_query($query);
  3.  
  4. if(mysql_num_rows($query) > 0) {
  5. // controleer hier het password - gebruik de code uit bovenstaand fragment
  6. ...
  7. } else {
  8. // geen resultaat, dus de user bestond niet
  9. ...
  10. }
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.221s