Ihre Anmeldedaten waren nicht korrekt!

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

  • Ihre Anmeldedaten waren nicht korrekt!

    hallo

    habe gerade probiert das login-tutorial auszuprobieren. habe eigentlich vorwiegend mit copy/paste gearbeitet. meine tabelle users schaut zwar anders aus, aber ich habe den code so umgeschrieben dass eigentlich alles passen müßte. habe noch nicht sehr viel erfahrung mit sessions und ähnlichem und folglich auch noch nicht ein auge dafür entwickelt, was noch fehlt bzw. falsch ist. vielleicht könnt ihr ja mal kurz einen blick drauf werfen.

    PROBLEM:

    habe in meiner tabelle users bis jetzt erst einen benutzer(nämlich mich)
    id = 1
    vorname = xxxxxx
    nachname = xxxxxx
    nickname = waldes
    email = xxx@xxx.xx
    passwort = a (mit MD5)
    sessionID = NULL

    Wenn ich mich einlogen probier: erhalte ich immer: Ihre Anmeldedaten waren nicht korrekt!

    Außerdem würde mich interessieren, wo ich den Link nach erfolgreicher anmeldung zur nächsten Seite(folglich meine Startseite) setzten kann.

    Aber zuerst müß ja mal das Problem behoben werden, dass ich mich nicht anmelden kann.


    logged_in.php
    PHP-Code:
    <?
    session_start();
    include 'sessionhelpers.inc.php';
    echo 'Sie sind ';
    if (!logged_in())
        echo 'nicht ';
    echo 'eingeloggt.<p />';
    echo '<a href="login.php">Start</a>';
    ?>


    login.php
    PHP-Code:
    <?
    session_start();
    include 'sessionhelpers.inc.php';
    if (isset($_POST['login']))
    {
        $userid=check_user($_POST['username'], $_POST['userpass']);
        if ($userid!=false)
            login($userid);
        else
            echo 'Ihre Anmeldedaten waren nicht korrekt!';
    }
    if (!logged_in())
        echo '<form method="post" action="login.php">
            <label>nickname</label><input name="username" type="text"><br>
            <label>passwort</label><input name="userpass" type="password" id="userpass"><br>
            <input name="login" type="submit" id="login" value="Einloggen">
        </form>';
    else
        echo '<a href="login.php">Ausloggen</a>';
        echo '<p /><a href="logged_in.php">Check</a>';
    ?>
    logout.php
    PHP-Code:
    <?
    session_start();
    include 'sessionhelpers.inc.php';
    echo 'Sie sind ';
    if (!logged_in())
        echo 'nicht ';
    echo 'eingeloggt.<p />';
    logout();
    echo 'Sie sind ';
    if (!logged_in())
        echo 'nicht ';
    echo 'eingeloggt.< p/>';
    echo '<a href="login.php">Einloggen</a>';
    ?>


    sessionhelpers.inc.php
    PHP-Code:
    <?
    function connect()
    {
        $con= mysql_connect('localhost','root','') or die(mysql_error());
         mysql_select_db('wm2006',$con) or die(mysql_error());
    }

    function check_user($name, $pass)
    {
        $sql="SELECT id
        FROM users
        WHERE nickname='".$name."' AND passwort=('".$pass."')
        LIMIT 1";
        $result= mysql_query($sql) or die(mysql_error());
        if ( mysql_num_rows($result)==1)
        {
            $user=mysql_fetch_assoc($result);
            return $user['id'];
        }
        else
            return false;
    }

    function login($userid)
    {
        $sql="UPDATE users
        SET sessionID'".session_id()."'
        WHERE id=".$userid;
         mysql_query($sql);
    }

    function logged_in()
    {
        $sql="SELECT users.id
        FROM users
        WHERE sessionID='".session_id()."'
        LIMIT 1";
        $result= mysql_query($sql);
          return ( mysql_num_rows($result)==1);
    }

    function logout()
    {
        $sql="UPDATE users
        SET sessionID=NULL
        WHERE sessionID'".session_id()."'";
         mysql_query($sql);
    }

    connect();
    ?>

  • #2
    Und?

    Hast du mal ein paar testausgaben gemacht, um den Fehler zu lokalisieren? Die Logout-Datei z.B. kannst du mit sicherheit ausschließen.

    Kommentar


    • #3
      Re: Ihre Anmeldedaten waren nicht korrekt!

      Deine Funktion check_user:
      Original geschrieben von waldes
      PHP-Code:
      function check_user($name$pass)
      {
          
      $sql="SELECT id
          FROM users
          WHERE nickname='"
      .$name."' AND passwort=('".$pass."')
          LIMIT 1"
      ;
          
      $resultmysql_query($sql) or die(mysql_error());
          if ( 
      mysql_num_rows($result)==1)
          {
              
      $user=mysql_fetch_assoc($result);
              return 
      $user['id'];
          }
          else
              return 
      false;

      Meine Funktion check_user:
      PHP-Code:
      function check_user($name$pass)
      {
          
      $sql="SELECT UserId
          FROM users
          WHERE UserName='"
      .$name."' AND UserPass=MD5('".$pass."')
          LIMIT 1"
      ;
          
      $resultmysql_query($sql) or die(mysql_error());
          if ( 
      mysql_num_rows($result)==1)
          {
              
      $user=mysql_fetch_assoc($result);
              return 
      $user['UserId'];
          }
          else
              return 
      false;

      Unterschied gefunden?
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        hab deine variante probiert, jedoch wurde mir immer noch ausgegeben dass die anmeldedaten immer noch nicht korrekt waren;

        habe jetzt diese variante gefunden, welche zumindest nicht "Anmeldedaten waren nicht korrekt" zurückgibt. bin aber auch nicht eingeloggt, irgendwo muss es da noch fehler geben. vielleicht könnt ihr mir ja noch helfen;

        hier der code zur funktion welche zumindest nicht "Anmeldedaten waren nicht korrekt" zurückgibt:

        PHP-Code:
        function check_user($name$pass)
        {
            
        $sql="SELECT id
            FROM users
            WHERE nickname='"
        .$name."' AND passwort=('".md5($pass)."')
            LIMIT 1"
        ;
            
        $resultmysql_query($sql) or die(mysql_error());
            if ( 
        mysql_num_rows($result)==1)
            {
                
        $user=mysql_fetch_assoc($result);
                return 
        $user['id'];
            }
            else
                return 
        false;

        schaut schon ein bisschen besser aus, aber es funkt halt immer noch nicht. danke, waldes

        Kommentar


        • #5
          OffTopic:
          Wenn einem die Fehlermeldung nicht passt, dann entfernet man einfach die Ausgabe dieser aus dem Script - und nennt das dann eine "Verbesserung" ...
          Hurra, "programmieren" kann doch so schön einfach sein ...
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar

          Lädt...
          X