problem mit user-verwaltung (sessions)



  • Hallo.
    ich hab nen problem und zwar.
    brauche ich eine userverwaltung.
    code habe ich von nem tutorial
    http://www.tutorials.de/
    hab ihn dann noch umgebaut.
    aber örgendwie habe ich das gefühl
    das da nichts mit
    sessions ist.?
    könnt ihr mal bitte kucken.
    auf der index.php
    habe ich ganz am anfang
    session_start();
    aufgerufen. je nach dem was in section= drinne steht
    wird das auch angezeigt.
    hier die enzelnen codes.
    login.php

    <?php
    echo "<form action=\"index.php?section=login_do\" method=\"post\">\n"; ?>
      Name: <input type="text" name="name" size="20"><br>
      Kennwort: <input type="password" name="pwd" size="20"><br>
      <input type="submit" value="Login">
    </form>
    

    login_do.php

    <?php
    
    $sql = "SELECT ".
        "Id, Nickname, Nachname, Vorname ".
      "FROM ".
        "benutzerdaten ".
      "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"];
      $_SESSION["user_nachname"] = $data["Nachname"];
      $_SESSION["user_vorname"] = $data["Vorname"];
    
    	echo "Hallo ".$_SESSION["user_vorname"]." schöhn das sie wieder hier sind!<br>\n";
    	echo "was möchten sie tun?<br><hr>\n";
    	echo "<a href=\"index.php?section=logout\">Ausloggen</a><br>\n";
    }
    else
    {
    	echo "Ihre angaben waren falsch\n";
    	echo "<a href=\"index.php?section=login\">noma</a>\n";
    }
    ?>
    

    logout.php

    <?php
    session_unset ();
    session_destroy ();
    echo "Sie haben sich ausgelogt!\n";
    ?>
    

    Vielen Vielen Dank
    MFG



  • Hi,
    mach mal über deinen Sessionvariablen ein Sessionstart, damit die
    Variablen auch regstriert werden.

    // Sessionvariablen erstellen und registrieren 
      session_start();
    
      $_SESSION["user_id"] = $data["Id"]; 
      $_SESSION["user_nickname"] = $data["Nickname"]; 
      $_SESSION["user_nachname"] = $data["Nachname"]; 
      $_SESSION["user_vorname"] = $data["Vorname"];
    

    Dann weiß ich nicht, wie dein Server eingestellt ist und ob er die Session-ID
    automatisch an deine Links hängt. Falls nicht, musst du deine Links
    noch wie folgt ändern, damit die Session-ID mit übergeben wird.

    echo "<a href=\"logout.php?".session_name()."=".session_id()."&section=logout\">Ausloggen</a><br>\n";
    

    Dann ist mir aufgefallen, das du den Nickname in deiner SQL Query mit LIKE
    abfragst. Änder dies mal in eine Istabfrage, da Like auf mehrere User
    zutreffen kann.

    "WHERE ". 
           "(Nickname = '".$_REQUEST["name"]."') AND ". 
           "(Kennwort = '".md5 ($_REQUEST["pwd"])."')";
    

    In deinem Logout-Script musst du auch session_start() einbauen, damit
    der Server erstmal weiß, was er killen soll.

    <?php 
    session_start();
    session_unset (); 
    session_destroy (); 
    echo "Sie haben sich ausgelogt!\n"; 
    ?>
    


  • danke.
    eine frage habe ich aber noch.
    wenn ich jetzt auf eine seite gehe.
    dann erhalte ich ja eine SID.
    wenn ich am nägsten tag wieder auf
    die seite gehe
    habe ich dann wieder genau die
    selbe SID?
    Vielen Dank
    MFG



  • hallo.
    es funzt
    habe es nochmal neu geschrieben.
    Mfg



  • FrauBolaIstDumm schrieb:

    wenn ich jetzt auf eine seite gehe.
    dann erhalte ich ja eine SID.
    wenn ich am nägsten tag wieder auf
    die seite gehe
    habe ich dann wieder genau die
    selbe SID?

    Nein! Die SID ändert sich jedes mal, wenn du den browser neu öffnest.

    Liebe grüsse 😉

    P.S.: Wenn du nen billigen server suchst, meld dich mal bei mir 😉


Anmelden zum Antworten