Login Skript

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Login Skript

    Hallo!

    Ich bin gerade voll durcheinander...ich vesuche ein Login Skript zum laufen zu bekommen...mit folgender Passage habe ich ein Problem:

    $password = md5($password);
    $query = @mysql_query("SELECT user, pass FROM users WHERE user = '".$_POST['username']."'") or die('Select ist fehlgeschlagen!');
    $result = @mysql_fetch_array($query) or die('<p align="center">Sorry, aber dieser Benutzername existiert nicht!<br><a href="index.php">Zur&uuml;ck</a></p>');
    if($password != $result['pass']){
    echo '<form action="index.php" method="post">';
    echo '<p align="center">Sorry, aber dieses Passwort ist falsch!<br><br>';
    echo '<input type="hidden" name="username" value="'.$_POST['username'].'">';
    echo '<input type="submit" name="zurueck" value="Zur&uuml;ck"></p>';
    echo '</form>';
    die;
    }else{
    $user = $result['user'];
    session_register('user');
    echo '<p align="center">LogIn erfolgreich!!!!!!<br><br><a href="sichere_seite.php">Weiter</a></p>';
    ?>



    Wenn das $passwort (wie oben verfasst) != $result ist....kann ich mich gar nicht einloggen....dann bekomme ich eine Fehlermeldung, das Passwort sei falsch!

    Und wenn ich $passwort == $result schreibe....komme ich mit jedem Passwort durch.....

    Ich verstehe nicht warum???Hat jemand ne Idee???


    Gruß,
    Laila

  • #2
    Foren-Regeln beachten!
    Die @s weg machen
    echo mysql_error(); verwenden
    Test-Ausgaben machen (echo $password; echo $result['pass']);

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      hmm du wandelst da oben dein passwort in einen md5-hash um...
      ist das passwort in deiner DB auch als Hash gespeichert? =)

      zb:
      dein pw: 1234
      hash: 1b2h34f

      bei != klar geht nich
      bei == wird ja immer das else{} aufgerufen und du loggst dich immer ein

      Kommentar


      • #4
        Ja es wird auch in meiner DB als Hash gespeichert!

        Kommentar


        • #5
          Servus,
          falls du noch keine Lösung hast, die $_POST innerhalt der Query zu verwenden könnte sein, dass net geht.
          mach zuerst:
          PHP-Code:
          $username=$_POST['username']; 
          und nimm die $username in deiner Query.

          Gruß
          Michael

          Kommentar


          • #6
            Hallo Michael!

            Wenn ich das so nach deinem Vorschlag mache...kriege ich ne Fehlermeldung, nämlch "Sorry, der Benutzername existiert nicht!"

            Du meinstest es doch so oder? :


            $password = md5($password);
            $username=$_POST['username'];
            $query = @mysql_query("SELECT user, pass FROM users WHERE user = '".$_POST['$username']."'") or die('Select ist fehlgeschlagen!');
            $result = @mysql_fetch_array($query) or die('<p align="center">Sorry, aber dieser Benutzername existiert nicht!<br><a href="index.php">Zur&uuml;ck</a></p>');

            Kommentar


            • #7
              Original geschrieben von ghostgambler
              Foren-Regeln beachten!
              Die @s weg machen
              echo mysql_error(); verwenden
              Test-Ausgaben machen (echo $password; echo $result['pass']);

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar


              • #8
                warum sollte $_POST in ner query net funktionieren??
                und $_POST['$username'] ist natürlich völliger schwachsinn.

                weißt du was "die" bewirkt??
                ansonsten inhalt der variablen testen und siehe post von ghostgambler
                Die Milch bleibt ranzig!

                Kommentar


                • #9
                  Ja das ich bei den Testausgaben

                  echo $password;
                  echo $result['pass'];

                  jeweils verschieden Werte bekomme ist mir schon vorher klar gewesen......

                  ich weiss halt nicht warum???

                  und wie ich das beheben soll???

                  Kommentar


                  • #10
                    Original geschrieben von Laila
                    und wie ich das beheben soll???
                    das richtige Passwort mit dem gleichen Algorithmus sowohl in der Datenbank speichern, wie auch im Formular hinterher angeben?!

                    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                    Wie man Fragen richtig stellt

                    Kommentar

                    Lädt...
                    X