Ergebnis 1 bis 3 von 3

Thema: sessionid wird nicht gesetzt

  1. #1
    mordor
    Gast

    Standard sessionid wird nicht gesetzt

    Hallo
    Ich wollte für eine seite eine eigene Sessionverwaltung verwenden, und habe dazu auch ein skrip im netzgefunden. Jetzt habe ich nur das Problem, dass in der funktion ms_read die session_id nicht an die Variable $sessid übergeben wird. Ich spiele mich damit schon seit zwei Tagen. Gestern hat es kurzzeitig funktioniert, heute aber wieder nicht mehr. Ich bin auf jeden Fall mit meinem Latein am Ende. Wäre nett wenn jemand helfen könnte.

    Hier das Skript:
    Code:
    <?php 
    class SessionManager
    &#123;
    
        const SESSIONNAME = 'SESSION';
        const SESSIONDB = '******';
        const DBUSER = '*********';
        const DBPASS = '***********';
        const DBSERV = 'localhost';
        const DBDROP = "DROP TABLE currentsession IF EXISTS";
        const DBDEFINITION = "
        CREATE TABLE currentsession &#40;
            sessionID varchar&#40;32&#41; NOT NULL,
            usrID bigint&#40;20&#41; NOT NULL,
            variables text NOT NULL,
            laccess int&#40;14&#41;,
            PRIMARY KEY &#40;sessionID&#41;,
            KEY usrID &#40;usrID&#41;
            &#41;;";
        
        private static $DB;
    
        public function __construct&#40;&#41;
        &#123;
            $this->SetMySQL&#40;&#41;;
            // Session-Parameter setzen
      		ini_set&#40;'session.use_trans_sid', 1&#41;;
    		ini_set&#40;'session.use_cookies', 0&#41;;
    		ini_set&#40;'session.gc_probability', 1&#41;;
            session_module_name&#40;"user"&#41;;
            session_set_save_handler&#40;array&#40;'SessionManager', 'ms_open'&#41;, 
                                     array&#40;'SessionManager', 'ms_close'&#41;, 
                                     array&#40;'SessionManager', 'ms_read'&#41;,
                                     array&#40;'SessionManager', 'ms_write'&#41;, 
                                     array&#40;'SessionManager', 'ms_destroy'&#41;,
                                     array&#40;'SessionManager', 'ms_gc'&#41;&#41;;
            session_name&#40;self&#58;&#58;SESSIONNAME&#41;;                
            session_start&#40;&#41;;
        &#125;
        
        private function SetTable&#40;&#41;
        &#123;
            $tbl = mysql_list_tables&#40;self&#58;&#58;SESSIONDB, self&#58;&#58;$DB&#41;;
            while &#40;$t = mysql_fetch_assoc&#40;$tbl&#41;&#41;
            &#123;
                if &#40;$t&#91;'Tables_in_'.self&#58;&#58;SESSIONDB&#93; == 'currentsession'&#41;
                &#123;
                    return;
                &#125;
            &#125;
            mysql_query&#40;self&#58;&#58;DBDROP, self&#58;&#58;$DB&#41;;
            mysql_query&#40;self&#58;&#58;DBDEFINITION, self&#58;&#58;$DB&#41;;
        &#125;
    
        private function SetMySQL&#40;&#41;
        &#123;    
            self&#58;&#58;$DB = @mysql_connect&#40;'localhost', '*******', '********'&#41;;
            if &#40;self&#58;&#58;$DB !== FALSE&#41;
            &#123;
                $dbs = mysql_list_dbs&#40;self&#58;&#58;$DB&#41;;
                while &#40;$db = mysql_fetch_assoc&#40;$dbs&#41;&#41;
                &#123;
                    if &#40;$db&#91;'Database'&#93; == self&#58;&#58;SESSIONDB&#41;
                    &#123;
                        mysql_select_db&#40;self&#58;&#58;SESSIONDB, self&#58;&#58;$DB&#41;;
                        $this->SetTable&#40;&#41;;                    
                        return;                    
                    &#125;
                &#125;            
            &#125;
            die &#40;"Datenbank '******' existiert nicht. "&#41;;
        &#125;
    
        function ms_open&#40;$sesspath, $sessname&#41; 
        &#123;
            $time = time&#40;&#41;;
            $sessid = session_id&#40;&#41;;
            $query = "SELECT * FROM currentsession WHERE sessionID = '$sessid'";
            $RS = mysql_query&#40;$query, self&#58;&#58;$DB&#41;;        
            if &#40;mysql_num_rows&#40;$RS&#41; == 0&#41; 
            &#123;
                $query = "INSERT INTO currentsession 
                            &#40;sessionID, laccess&#41; 
                            VALUES &#40;'$sessid', '$time'&#41;";
            &#125;
            else 
            &#123;
                $query = "UPDATE currentsession 
                            SET laccess = '$time' 
                            WHERE sessionID = '$sessid'";
            &#125;
            $RS = mysql_query&#40;$query, self&#58;&#58;$DB&#41;;
            return $RS;
        &#125;
        
        function ms_write&#40;$sessid, $varis&#41; 
        &#123;
            $query = "UPDATE currentsession 
                        SET variables = '$varis' 
                        WHERE sessionID = '$sessid'";
            $RS = mysql_query&#40;$query, self&#58;&#58;$DB&#41;;
            return &#40;bool&#41; $RS;
        &#125;       
    
        function ms_read&#40;$sessid&#41; 
        &#123;
            $query = "SELECT * FROM currentsession
                        WHERE sessionID='$sessid'";
            $RS = mysql_query&#40;$query, self&#58;&#58;$DB&#41;;        
            $arrRS = mysql_fetch_assoc&#40;$RS&#41;;
            if &#40;is_array&#40;$arrRS&#41;&#41; 
            &#123;
                return $arrRS&#91;'variables'&#93;;
            &#125;
            else 
            &#123;
                return FALSE;
            &#125;
        &#125;
           
        function ms_destroy&#40;$sessid&#41; 
        &#123;
            $query = "DELETE FROM currentsession 
                        WHERE sessionID = '$sessid'";
            $RS = mysql_query&#40;$query, self&#58;&#58;$DB&#41;;
            return &#40;bool&#41; $RS;
        &#125;
        
        function ms_gc&#40;$sesslt&#41; 
        &#123;
            $tStamp = time&#40;&#41; - $sesslt;
            $query = "DELETE FROM currentsession 
                        WHERE laccess < '$tStamp'";
            $RS = mysql_query&#40;$query, self&#58;&#58;$DB&#41;;
            return &#40;bool&#41; $RS;
        &#125;
        
        function ms_close&#40;&#41; 
        &#123;
            mysql_close&#40;self&#58;&#58;$DB&#41;;
        &#125;
    &#125;
    new SessionManager&#40;&#41;;
    ?>
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    mordor
    Gast

    Standard nachtrag

    sorry, ich hab mich verschrieben. die session_id wird nicht unter ms_read sondern unter ms_open gesetzt, und das funktioniert nicht.

  3. #3
    Gast

    Standard

    setz mal
    Code:
    session_start&#40;&#41;;
    an den anfang der datei und versuch es nochmal!

Ähnliche Themen

  1. Ava wird nicht angezeigt
    Von Allegra im Forum Forum-Hilfe.de intern
    Antworten: 2
    Letzter Beitrag: 16.08.2008, 14:36
  2. [PHP] \n wird nicht erkannt
    Von DarkSyranus im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 0
    Letzter Beitrag: 12.04.2007, 15:14
  3. wird nicht verbunden
    Von im Forum Computer - Internet Forum
    Antworten: 2
    Letzter Beitrag: 11.04.2006, 18:55
  4. css wird nicht übernommen
    Von agentorange6 im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 02.02.2006, 23:13
  5. uhr wird nicht angezeigt
    Von phore im Forum Computer - Internet Forum
    Antworten: 3
    Letzter Beitrag: 04.08.2005, 11:53

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •