Ankündigung

Einklappen
Keine Ankündigung bisher.

ein login-system, basierend auf MySQL und sessions

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

  • #61
    Verzweiflung!!!

    Hallo Leute!

    Habe versucht einen geschützten Bereich mit Hilfe von Sessions und MySQL zu programmieren, aber leider funktionert es nicht.

    Finde den Fehler einfach nicht.

    Kann mir vielleicht jemand helfen?

    Hier der code:

    db:

    CREATE TABLE user (
    Id Int(11) NOT NULL auto_increment,
    Nickname VarChar(50) NOT NULL default '',
    Kennwort VarChar(50) NOT NULL default '', PRIMARY KEY (Id)
    )
    ------------------------------
    1 User: Nickname : test, Kennwort: test


    login.php
    PHP-Code:
    <?php  
    // Session starten 
    session_start (); 

    // DBverbindung aufbauen  
    $connectionid mysql_connect ("lokalhost""db-user""dbpw");  
    if (!
    mysql_select_db ("db"$connectionid))  
    {  
      die (
    "Keine Verbindung zur Datenbank");  
    }  

    $sql "SELECT ".  
        
    "Id, Nickname".  
      
    "FROM ".  
        
    "user".  
      
    "WHERE ".  
        
    "(Nickname like '".$_REQUEST["name"]."') AND ".  
        
    "(Kennwort = '".md5 ($_REQUEST["pwd"])."')";  
    $result mysql_query ($sql);  

    if (
    mysql_num_rows ($result) > 0)  
    {  
      
    // Benutzerdaten in ein Array auslesen.  
      
    $data mysql_fetch_array ($result);  

      
    // Sessionvariablen erstellen und registrieren  
      
    $_SESSION["user_id"] = $data["Id"];  
      
    $_SESSION["user_nickname"] = $data["Nickname"];  
      

      
    header ("Location: intern.php");  
    }  
    else  
    {  
      
    header ("Location: formular.php?fehler=1");  
    }  
    ?>
    formular.php
    PHP-Code:
    <?php session_start (); ?> 
    <html>  
    <head>  
      <title>Login</title>  
    </head>  

    <body>  
    <?php  
    if (isset ($_REQUEST["fehler"]))  
    {  
      echo 
    "Die Zugangsdaten sind ungültig.";  
    }  
    ?>  
    <form action="login.php" method="post">  
      Name: <input type="text" name="name" size="20"><br>  
      Kennwort: <input type="password" name="pwd" size="20"><br>  
      <input type="submit" value="Login">  
    </form>  
    </body>  
    </html>
    checkuser.php
    PHP-Code:
    <?php  
    session_start 
    ();  
    if (!isset (
    $_SESSION["user_id"]))  
    {  
      
    header ("Location: medien.php");  
    }  
    // Datei wird nicht direkt aufgerufen, sondern per include() am Anfang jeder internen Seite eingefügt.
    ?>
    intern.php
    PHP-Code:

    <?php  
    include ("checkuser.php");  
    ?>  
    <html>  
    <head>  
      <title>Interne Seite</title>  
    </head>  
    <body>  
      BenutzerId: <?php echo $_SESSION["user_id"]; ?><br>  
      Nickname: <?php echo $_SESSION["user_nickname"]; ?>
      <hr>  
      <a href="logout.php">Ausloggen</a>  
    </body>  
    </html>
    logout.php
    PHP-Code:
    <?php  
    // Wird ausgeführt um mit der Ausgabe des Headers zu warten.  
    ob_start ();  

    session_start ();  
    session_unset ();  
    session_destroy ();  

    header ("Location: formular.php");  
    ob_end_flush ();  
    ?>
    Also ich gebe, Nickname und Kennwort test ein, aber...

    es kommt immer
    Die Zugangsdaten sind ungültig.

    Warum?

    HILFE!!!!

    Kommentar


    • #62
      Das Passwort in der Datenbank muss md5 verschlüsselt sein, für test wäre das 098f6bcd4621d373cade4e832627b4f6

      Kommentar


      • #63
        Habs in der Datenbank selber versucht, richtig?
        Nimmt der wieder nicht an.
        Hab md5 dann weggenommen, mit admin, admin versucht,
        nimmt der auch nicht.

        Was ist denn los?

        Kommentar


        • #64
          wenn du den code den ich dir geschrieben hab in die DB schreibst anstelle des passworts gehts nicht?

          Kommentar


          • #65
            no

            Ne, tut sich leider nichts,
            wieder die selbe Meldung.

            Kommentar


            • #66
              Kann das Problem von der config.inc.php stammen?

              Kommentar


              • #67
                Liegt es an dem?
                "SELECT ".
                "Id, Nickname".
                "FROM ".
                "user".
                "WHERE ".
                Ausgeschrieben steht da doch .. "SELECT ID, NicknameFROM userWHERE ..." Also ich meine dass keine Leerzeichen dazwischen sind.

                Mal mit error_reporting(E_ALL); versucht?

                Kommentar


                • #68
                  Debugging sollte helfen:

                  PHP-Code:
                  <?php
                  $result 
                  mysql_query($sql) or die(mysql_error());
                  ?>

                  Kommentar

                  Lädt...
                  X