Login Script Session_id()

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

  • Login Script Session_id()

    HAllo,

    Ich habe ein Login Script von hier verwendet.

    So sieht das ganze aus: login

    Wenn ihr euch einloggt (Username:Admin Passwort:Admin), dann wird eine die UserSession_id() in die Spalte UserSession gespeichert, um rauszubekommen ,wer eingeloggt ist. Nun soll aber auf der mainpage nach dem login der nickname stehen. nur ledier steht dort das PAssswort, dass in der Session_id() id steht.

    Hier Code meiner index.php.php
    PHP-Code:
    <html>
      <head>
        <title>King Aleks & Queen Zaras B-Day Vol. 2</title>
        <link rel="stylesheet" type="text/css" href="http://bday06.funpic.de/css/simpleblack.css">   
      </head>
      <body>

    <?php
    session_start
    ();
    include 
    'src/sessionhelpers.inc.php';

           
    $heute=date('d.m.Y H:i:s');
           
    $neu="22.12.2006 22:30:00";

           
    $bla split("\.",$neu-$heute);
           
    $erg=$bla[1]*30+$bla[0];
    ?>

    <?php
          
    echo '<table border="0" cellspacing="1" cellpadding="2" width="100%" class="content">';

    if (
    logged_in())
    {
          
    //$nickname = mysql_query ("SELECT nickname FROM tbl_user WHERE P_ID_user = '".$userid."');
          //$ergebnis = mysql_fetch_array($nickname);
          //echo $ergebnis["nickname"];
          
    echo session_id();
         
          echo 
    'Eingeloggt';
    }
    else
    {
       echo 
    '<tr><td><a href="login.php">Login</a></td></tr>';   
    }

    ?>
    Und nun der Code worin die USerSession gespeichert wird:
    PHP-Code:
    <?
    function connect()
    {
        $con= mysql_connect('localhost','bday06','sqlalexander') or die(mysql_error());
         mysql_select_db('bday06',$con) or die(mysql_error());
    }

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

    function login($userid)
    {
        $sql="UPDATE tbl_user
        SET UserSession='".session_ID()."'
        WHERE P_ID_user=".$userid;
         mysql_query($sql);
    }

    function logged_in()
    {
        $sql="SELECT P_ID_user
        FROM tbl_user
        WHERE UserSession='".session_id()."'
        LIMIT 1";
        $result= mysql_query($sql);
          return ( mysql_num_rows($result)==1);
    }


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

    connect();
    ?>

    In meiner index.php soll der nickname zu sheen sein, mit dem man eingeloggt ist.

    Ich hoffe ich konnte euch mei nProblem näher bringen udn ihr habt Tips zur Lösung.

    Wenn es noc hfragen gibt, postet sie doch bitte!!!!
    Zuletzt geändert von dakingno1; 23.11.2006, 07:59.

  • #2
    PHP Tags benutzen.. bitte.. das geht sonst echt auf die augen
    PHP Forum
    Sessions in PHP
    Loginsystem mit PHP erstellen

    Kommentar


    • #3
      Original geschrieben von Hirnhamster
      PHP Tags benutzen.. bitte.. das geht sonst echt auf die augen

      Hab´s geändert. Sorry, bin ja neu hier!^^

      Kommentar


      • #4
        Also zuerst mal solltest du selber wissen ob die Fkt nun session_id() oder session_ID() heisst. Auch wenn es für dich dasselbe sein mag, wird php das garantiert anders sehen.
        Du machst doch den Login (check_user()) des Users und wenn der gut ist gibt dir die Fkt die ID des Userdatensatzes zurück, richtig ?
        Dann speichere diesen Wert doch in eine Session Var
        PHP-Code:
        session_start();
        $temp check_user('pw','user');
        if(
        $temp !== false){
            
        $_SESSION['userID'] = $temp;
        }

        //index.php
        $sql "SELECT nickname FROM tabl_user WHERE P_ID_user = ".$_SESSION['userID']; 
        Gruss
        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Original geschrieben von jahlives
          [Also zuerst mal solltest du selber wissen ob die Fkt nun session_id() oder session_ID() heisst. Auch wenn es für dich dasselbe sein mag, wird php das garantiert anders sehen.
          ausnahmsweise ist die groß-/kleinschreibung bei funktionsnamen egal (im gegensatz zu variablen). wobei, unsauber ist es trotzdem.


          Du machst doch den Login (check_user()) des Users und wenn der gut ist gibt dir die Fkt die ID des Userdatensatzes zurück, richtig ?
          Dann speichere diesen Wert doch in eine Session Var
          warum diesen umweg? er kann in der index.php gleich nach der sessionid selecten:
          PHP-Code:
          $sql="SELECT nickname FROM tbl_user WHERE UserSession='".session_id()."' LIMIT 1"
          und da die funktion logged_in() sowieso jedesmal aufgerufen wird, würde ich sie gleich so umschreiben, dass sie mir den nickname oder false liefert. dann spart man sich eine db-abfrage.

          Kommentar


          • #6
            ausnahmsweise ist die groß-/kleinschreibung bei funktionsnamen egal (im gegensatz zu variablen). wobei, unsauber ist es trotzdem.
            Dann ist für php also session_ID() == session_id() ? Dat wusste ich nicht...

            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              Original geschrieben von 3DMax
              ausnahmsweise ist die groß-/kleinschreibung bei funktionsnamen egal (im gegensatz zu variablen). wobei, unsauber ist es trotzdem.



              warum diesen umweg? er kann in der index.php gleich nach der sessionid selecten:
              PHP-Code:
              $sql="SELECT nickname FROM tbl_user WHERE UserSession='".session_id()."' LIMIT 1"
              und da die funktion logged_in() sowieso jedesmal aufgerufen wird, würde ich sie gleich so umschreiben, dass sie mir den nickname oder false liefert. dann spart man sich eine db-abfrage.

              in der session_id steht fälschlicherweise das Passwort anstatt der Nickname. Das war mei nProblem und deshalb brauchte ich eineneanderen weg.

              Nun habe ich den Nickname über $_SESSION ausgegeben und es funzt soweit. Der rest ist mir erstmal egal.

              DANKE!!!!

              Kommentar

              Lädt...
              X