Login Funktioniert nicht

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

  • Login Funktioniert nicht

    Hallo,

    ich habe folgendes Problem. Ich habe ein Login Script, dass nicht funktioniert. ICh werde versuchen den Code so ausführlich wie möglich zu posten, damit ihr mir helfen könnt.

    Also ich habe in der index.php folgenden Code, der überprüft ob der User angemeldet ist. Wenn er nicht angemeldet ist, wird er auf die login.php weitergeleitet:

    PHP-Code:
    <?php
      session_start
    ();
      if(!
    session_is_registered('user') || $_SESSION['user'] == "") {
        
    header("location:login.php");
        die;
      }
    ?>
    Das funktioniert soweit auch ganz gut.

    Dann habe ich die login.php mit folgendem Code:

    PHP-Code:
    <!-- wird noch in die header geschrieben -->
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
      <?php
          
    include ('config/connect.inc.php');
      
    ?>
      <?php if(!isset($_POST['submit'])) { ?>
      <form action="<?php $PHP_SELF ?>" method="post">
      <table width="400" bgcolor="#000000" border="0" cellpadding="5" cellspacing="1" align="center">
        <tr>
          <td bgcolor="#e7e7e7" align="center" colspan="2">
          <b>Bitte erst anmelden</b>
          </td>
        </tr>
        <tr>
          <td width="170" bgcolor="#e7e7e7">Benutzername</td>
          <td width="230" bgcolor="#ffffff"><input type="text" name="username" size="20" class="input"<?php if($_POST['username'] != "" ) {echo ' value="'.$_POST['username'].'"';} ?>></td>
        </tr>
        <tr>
          <td width="170" bgcolor="#e7e7e7">Passwort</td>
          <td width="230" bgcolor="#ffffff"><input type="password" name="password" size="20" class="input"></td>
        </tr>
        <tr>
          <td bgcolor="#e7e7e7" align="center" colspan="2">
          <input type="submit" name="submit" value="Anmelden" class="button">
          </td>
        </tr>
      </table>
      </form>
      <?php
      
    }elseif(!$_POST['username'] || $_POST['username'] == "") {
        echo 
    '<p align="center">Bitte geben Sie einen Benutzernamen an:<br><br><a href="login.php">Zurück</a></p>';
      }elseif(!
    $_POST['password'] || $_POST['password'] == "") {
        echo 
    '<form action="login.php" method="post">';
        echo 
    '<p align="center">Bitte geben Sie ein Passwort ein:<br><br>';
        echo 
    '<input type="hidden" name="username" value="'.$_POST['username'].'">';
        echo 
    '<input type="submit" name="zurueck" value="Zurück">';
        echo 
    '</p>';
        echo 
    '</form>';
      }else{
        
    $password md5($password);
        
    $query = @mysql_query("SELECT user, pass FROM user WHERE user = '".$_POST['username']."'") or die('Select ist fehlgeschlagen!');
        
    $result = @mysql_fetch_array($query) or die('<p align="center">Der Benutzername existiert nicht<br><a href="login.php">Zurück</a></p>');
        if(
    $password != $result['pass']){
          echo 
    '<form action="login.php" method="post">';
          echo 
    '<p align="center">Falsches Passwort!<br><br>';
          echo 
    '<input type="hidden" name="username" value="'.$_POST['username'].'">';
          echo 
    '<input type="submit" name="zurueck" value="Zurück"></p>';
          echo 
    '</form>';
          die;
        }else{
          
    $user $result['user'];
          
    session_register('user');
          
    header("location:index.php");
        }
    }
    ?>
    und da taucht mein Problem auf. Ich verschlüssele das Passwort mit md5 und entschlüssle das Passwort auch mit
    PHP-Code:
    $password md5($password); 
    Nun habe ich das Problem, dass ich wenn ich mich anmelden will ich immer die Meldung bekomme "Falsches Passwort".

    Die Verbindung zur Datenbank besteht und ich habe auch in der Tabelle das Passwort als md5 abgespeichert. Ich denke ich habe eine kleinen im dem Code. Kann mir einer helfen?

    mfg
    Freetz

  • #2
    Zitat von Freetz Beitrag anzeigen
    Ich verschlüssele das Passwort mit md5 und entschlüssle das Passwort auch mit
    PHP-Code:
    $password md5($password); 
    Das ist Unfug, in doppelter Hinsicht.
    MD5 ist keine Verschlüsselung, sondern eine Hash-Funktion. Und bei einer solchen gibt es auch nichts zu „entschlüsseln”, schlicht nicht möglich.


    Bei der Datenbankabfrage solltest du gleich Nutzername und Passwort vergleichen - und dann aus der Anzahl der Ergebnisdatensätze den logischen Schluss ziehen.

    Wenn es dann immer noch nicht klappt - dann betreibe mal sinnvolle Fehlersuche. Also mach Kontrollausgaben, etc.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      entschuldigung wenn ich mich falsch ausgedrückt habe. Türlich kann man mit md5 nicht verschlüsseln.

      Aber es muss doch was am Code falsch sein. Ich vergleiche das eingegeben Passwort mit dem hinterlegten Passwort in der Datenbank und obwohl es übereinstimmt geht es nicht.

      Kann sich jemand mal den Code anschauen?

      mfg
      Freetz

      Kommentar


      • #4
        Hallo,

        dein $password wird nie initialisiert. Du meinst sicherlich
        PHP-Code:
        $password md5($_POST["password"]); 
        Übrigens kann man sich sehr leicht auch ohne Passwort einloggen, weil du nichts gegen SQL Injections unternimmst.

        Gruß,

        Amica
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Zitat von AmicaNoctis Beitrag anzeigen
          Hallo,

          dein $password wird nie initialisiert. Du meinst sicherlich
          PHP-Code:
          $password md5($_POST["password"]); 
          Übrigens kann man sich sehr leicht auch ohne Passwort einloggen, weil du nichts gegen SQL Injections unternimmst.

          Gruß,

          Amica
          oh mann du hast recht. Jetzt funktioniert es auch. Was meinst du mit SQL Injections??

          mfg
          Freetz

          Kommentar


          • #6
            Zitat von Freetz Beitrag anzeigen
            Was meinst du mit SQL Injections?
            Schlechte Frage. Das kannst du selber googlen oder wiki'n
            Zuletzt geändert von AmicaNoctis; 01.12.2009, 07:42.
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar

            Lädt...
            X