PHP - Login System

  • PHP
  • PHP - Login System

    Hi Community,
    Ich mache mir gerade eine Homepage.
    Nun gibt es aber Fehler mit dem Login System.
    Wo ist da der Fehler?

    PHP-Quellcode

    1. function log($name,$pass)
    2. {
    3. session_start();
    4. $dbhandle = mysql_connect("******","********","********") or die ("Fehler - Keine Verbindung zur Datenbank möglich!");
    5. mysql_select_db("******", $dbhandle);
    6. $result = mysql_query("SELECT * FROM users");
    7. while ($line = mysql_fetch_array($result))
    8. {
    9. if($line['name']==$name && $line['passwort']==$pass)
    10. {
    11. $_SESSION['user']=$name;
    12. return "Erfolgreich eingeloggt!";
    13. }
    14. else
    15. {
    16. return "Einloggen fehlgeschlagen!";
    17. }
    18. }
    19. }
    20. switch($_GET['is'])
    21. {
    22. case 1: $text=log($_POST['name'],$_POST['pass']); echo $text.' <a href=?site=home>Zurück</a> zur Seite'; break;
    23. }
    Alles anzeigen

    Edit: ganzer Code
    mfg: Tobi97
    8|

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Tobi97 ()

  • PHP-Quellcode

    1. if($line['name']==$name && $line['passwort']==$pass)
    2. {
    3. $_SESSION['user']=$name;
    4. return "Erfolgreich eingeloggt!";
    5. }
    6. else
    7. {
    8. return "Einloggen fehlgeschlagen!";
    9. }

    Wenn beim ersten User das Password oder der Username nicht stimmt beendest du bereits die Funktion. Weitere User werden gar nicht mehr überprüft. Ich will jetzt nicht ausschließen, dass da weitere Fehler im Code sind.
  • Was soll da überhaupt Angezeigt werden? Ein Formular gibst du nicht aus, und die log-Funktion wird auch nur aufgerufen, wenn $_GET['is'] gleich 1 ist. Und die Frage "wie soll das anders gehen?" ist keine PHP Frage, sondern eine allgemeine Frage. Das gleiche Problem hättest du in jeder anderen Sprache auch. Du must das ganze Problem halt anders angehen, z.B. indem du SQL lernst und dir nur die richtige Zeile liefern lässt.
  • ok auf wunsch von boxxar ganzer Quelltext:

    PHP-Quellcode

    1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    2. <html>
    3. <head>
    4. <meta content="text/html; charset=ISO-8859-1"
    5. http-equiv="content-type">
    6. <title></title>
    7. </head>
    8. <body>
    9. <center>
    10. <h4>Login</h4>
    11. <?php function log($name,$pass)
    12. {
    13. session_start();
    14. $dbhandle = mysql_connect("********","******","*******") or die ("Fehler - Keine Verbindung zur Datenbank möglich!");
    15. mysql_select_db("********", $dbhandle);
    16. $result = mysql_query("SELECT * FROM users");
    17. while ($line = mysql_fetch_array($result))
    18. {
    19. if($line['name']==$name && $line['passwort']==$pass)
    20. {
    21. $_SESSION['user']=$name;
    22. return "Erfolgreich eingeloggt!";
    23. }
    24. else
    25. {
    26. return "Einloggen fehlgeschlagen!";
    27. }
    28. }
    29. }
    30. switch($_GET['is'])
    31. {
    32. case 1: $text=log($_POST['name'],$_POST['pass']); echo $text.' <a href=?site=home>Zurück</a> zur Seite'; break;
    33. }
    34. ?>
    35. <form method="post" action="?site=login&amp;is=1"
    36. name="login"><input name="name"
    37. value="Benutzername..."
    38. onblur="if (value ==''){value='Benutzername...'}"
    39. onfocus="if (value =='Benutzername...'){value =''}"><br>
    40. <input name="pass" value="blahaltWasHere"
    41. onblur="if (value ==''){value='blahaltWasHere'}"
    42. onfocus="if (value =='blahaltWasHere'){value =''}"
    43. type="password"><li class="menu_news"><a
    44. href="javascript:document.login.submit()">Login</a></li>
    45. <li class="menu_news"><a
    46. href="javascript:document.login.reset()">Zurücksetzen</a></li>
    47. </form>
    48. </center>
    49. </body>
    50. </html>
    Alles anzeigen
    8|