Anzeige

Warum funktioniert mein Login Script nicht?

Warum funktioniert mein Login Script nicht? | PSD-Tutorials.de

Erstellt von aydesign, 22.09.2011.

  1. aydesign

    aydesign Guest

    Warum funktioniert mein Login Script nicht?
    Hallo zusammen,

    könnte mir vielleicht jemand bei meinem Login Script helfen? :uhm:

    Ich habe ein Login Formular mit Benutzername und Passwort das dann an meine login.php gesendet wird:

    login.php
    PHP:
    1. <?php
    2.  
    3. include "config.php";
    4.  
    5. $q="SELECT * FROM `admin` WHERE ((username='$username') AND (pw='$pw')) LIMIT 1";
    6. $result= mysql_query($q, $connection) or die
    7. ("Konnte folgende Abfrage nicht ausführen: $q." . mysql_error());
    8.  
    9. if (mysql_num_rows($result) == 0)
    10. {
    11.  
    12. echo "<meta http-equiv='refresh' content='3;URL=loginform.php' /><div align=center><strong><u>Ihr Benutzername oder Passwort sind falsch!</u></strong></div>";
    13.  
    14. }
    15. else
    16. {
    17. $r=mysql_fetch_array($result);
    18. $login_username=$r["username"];
    19. session_register("login_username");
    20. Header("Location: protected.php");
    21. }
    22. ?>
    den Code füge ich auf meiner geschützten Seite ein:


    PHP:
    1. <?php
    2. if (!isset($_SESSION["login_username"])) {
    3. Header("Location: loginform.php");
    4. } else {
    5. }
    6. ?>
    So, wenn ich mich nun einloggen will, kommt immer meine Fehlermeldung dass mein Benutzername und Passwort falsch sind. Aber warum?

    In der Datenbank hab ich die Werte folgendermaßen gesetzt:

    Code (Text):
    1. CREATE TABLE `admin` (
    2.   `id` bigint(255) NOT NULL auto_increment,
    3.   `username` longtext NOT NULL,
    4.   `pw` longtext NOT NULL,
    5.   PRIMARY KEY  (`id`)
    6. ) ENGINE=MyISAM;
    und dann:

    Code (Text):
    1. INSERT INTO `admin` VALUES (2, 'admin', 'test');
    Komisch nicht :schmoll: Er zeigt mir auch keinerlei Fehlermeldungen an, er loggt sich einfach nur nicht ein.

    Hoffe auf eine gute Antwort :D


    Bye Andy
     
    #1      
  2. Duddle

    Duddle Posting-Frequenz: 14µHz

    Dabei seit:
    03.02.2006
    Beiträge:
    3.864
    Geschlecht:
    männlich
    Ort:
    Dresden
    Warum funktioniert mein Login Script nicht?
    AW: Warum funktioniert mein Login Script nicht?

    Lass dir $q und $result ausgeben, bevor du sie weiter benutzt. Die Query kannst du dann manuell in phpMyAdmin ausführen und sehen was er macht.


    Duddle
     
    #2      
  3. Chriss1987

    Chriss1987 me.drinkCoffee();

    Dabei seit:
    26.03.2006
    Beiträge:
    378
    Geschlecht:
    männlich
    Ort:
    Kirchhundem
    Kameratyp:
    Canon EOS 400D
    Warum funktioniert mein Login Script nicht?
    AW: Warum funktioniert mein Login Script nicht?

    Hi,

    wo deklarierst du denn die beiden Variablen $username und $pw?
    Wenn du die Daten per POST oder GET sendest, musst du diese aus den Arrays $_POST oder $_GET auslesen...

    Weiterhin beinhaltet dein Script eine riesige Sicherheitslücke! Niemals Benutzereingaben ungeprüft für SQL-Abfragen nutzen!

    Schöne Grüße aus dem Sauerland!
    Chriss

    Edit: außerdem speicherst du Passworte in der DB im Klartext, nimm lieber die MySQL-Funktion PASSWORD() oder aber greife auf MD5 zurück...
     
    #3      
  4. DonL

    DonL Noch nicht viel geschrieben

    Dabei seit:
    04.05.2005
    Beiträge:
    36
    Ort:
    Hamburg
    Warum funktioniert mein Login Script nicht?
    AW: Warum funktioniert mein Login Script nicht?

    Um ehrlich zu sein, habe ich noch nie gesehen, dass man die abfragen mit () unterteilt, wie du es gemacht hast.
    PHP:
    1. $q="SELECT * FROM `admin` WHERE ((username='$username') AND (pw='$pw')) LIMIT 1";
    Probier es doch mal folgendermaßen:

    PHP:
    1. $q="SELECT * FROM `admin` WHERE username='$username' AND pw='$pw' LIMIT 1";
    Ansonsten wüsste ich nicht woran das liegen könnte.
     
    #4      
  5. Doitsu

    Doitsu Aktives Mitglied

    Dabei seit:
    15.04.2009
    Beiträge:
    482
    Warum funktioniert mein Login Script nicht?
    AW: Warum funktioniert mein Login Script nicht?

    Hm, 2 Zitate von php.net

    @ DonL - Die klammern sind richtig, man kann sie machen, muss es aber nicht .. Ist halt wie in einer If-Bedingung, da kann ich ja auch if(($i<$c) && ($i>0)) schreiben - oder halt ohne den Klammern.

    Kleines Offtopic:
    id = bigint(255) gibt es nicht - bigint nimmt max. 8 Bytes auf - das reicht aber auch. 8 Bytes = eine Zahlenspanne von ca. -9,2 Trillionen bis +9,2 Trillionen. Jetzt ist die Frage, brauchst du wirklich 9 Trillionen User?
    Weiter gehts: longtext = max. Laenge von 4.2 Milliarden - noetig (das wird ein recht langes PW/Username ..)?
    Du musst das so sehen: MySQL legt ein Cache an, dieser Cache ist so groess wie die max. Laenge des Eintrages - wenn du also nur ein int 1 in eine Spalte schreibst wo 9 Trillion rein passen, ist das ein wenig Verschwendung.

    Ist auch irgendwo auf mysql.com nachzulesen.
     
    #5      
x
×
×