probleme mit sessionklasse

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
sunreise
Mitglied
Beiträge: 49
Registriert: 22.01.2003 12:15
Wohnort: Grillenberg

probleme mit sessionklasse

Beitrag von sunreise »

hallo an alle coder

habe folgendes problem!!

will meine page komplett auf oop mit php umstellen

nutze dabei vier klassen ( dateiklasse, dbklasse, sessionklasse und projektklasse)

dabei sind dateiklasse sbklasse und projektklasse selber entwickelt worden

die sessionklasse habe ich aus dem netz

klappt alles wunderbar,
links zu anderen seiten sehen so aus

http://meinserver/menu.php?page=home&PH ... 958ba309ca

der auf ruf der einzelnen seiten funktioniert!!!

variablen werden über die folgende methode in die session gespeichert

function set_var( String $varname, mixed $varvalue )

und ausgelesen werden sie folgendermaßen

function get_var( String $varname )

aber wenn ich variablen in der session speichern klappt das nicht wieso???

eingesetzt habe ich die session folgenermaßen

Code: Alles auswählen

function zeige_Home_Seite ()
	{
		$this -> oParsezeit -> start ();
		$this -> oVorlage -> lesen ( SEITENDIR . "home.html" );
		// einsetzen der sessionid als link
		$this -> oVorlage -> ersetzen ( "%sessionstring%", $this -> oSess -> get_sid_string() );
		$this -> oVorlage -> ersetzen ( "%seitentitel%", $this -> sSeitentitel );
		$this -> oVorlage -> ersetzen ( "%seitenname%", "Startseite" );
		//$this -> oVorlage -> ersetzen ( "%banner%", $this -> banner_rotation () );
		$this -> oVorlage -> ersetzen ( "%datum%", $this -> datum_copyright () );
		$this -> oSess -> set_var ( "Variable1", "Wert1" );
		$this -> oVorlage -> ersetzen ( "%parsezeit%", $this -> oParsezeit -> stop () );
		$this -> oVorlage -> anzeigen ();
	}
aufgerufen wird die function zeige_Home_Seite () in der menu.php folgendermaßen

Code: Alles auswählen

switch ( $aVars ['page']  )
{
	// Hauptseiten des Projektes
	case 'home' :
		$oItsystem -> zeige_Home_Seite ();
		break;
	.
	//und noch mehr seite
	.
	
	default :
		// die ( "Page nicht angegeben" );
		die ( $oItsystem -> zeige_Fehler_Seite () );
		break;
}
habe im anhang den code der sessionklasse

Code: Alles auswählen

<?php

    class Session
    {
        // constructor
        function Session()
        {
            session_start();
        }
        
        
        // sets a session-variable
        function set_var( $varname, $varvalue )
        {
            if( !isset($varname) || !isset($varvalue) )
                die("Function setvar( String \$varname, mixed \$value ) expects two parameters!");
            
            if( phpversion() >= "4.1.0" )
                $_SESSION[$varname] = $varvalue;
                if( !isset($GLOBALS[$varname]) )
                    $GLOBALS[$varname] = $varvalue;
            else
            {
                global $HTTP_SESSION_VARS;
                session_register($varname);
                $GLOBALS['HTTP_SESSION_VARS'][$varname] = $varvalue;
                if( !isset($GLOBALS[$varname]) )
                    $GLOBALS[$varname] = $varvalue;
                
            }
        }

        
        // returns the value of a certain session-variable
        function get_var( $varname )
        {
            if( !isset($varname) )
                die("Function getvar( String \$varname ) expects a parameter!");
            
            if( phpversion() >= "4.1.0" )
            {
                if (isset($GLOBALS[$varname])) 
                    return $GLOBALS[$varname];
                elseif (isset($GLOBALS['_SESSION'][$varname])) 
                {
                    $GLOBALS[$varname] = $GLOBALS['_SESSION'][$varname];
                    return $GLOBALS['_SESSION'][$varname];
                }
            }
            else
            {
                if (isset($GLOBALS[$varname])) 
                    return $GLOBALS[$varname];
                elseif (isset($GLOBALS['HTTP_SESSION_VARS'][$varname])) 
                {
                    $GLOBALS[$varname] = $GLOBALS['HTTP_SESSION_VARS'][$varname];
                    return $GLOBALS['HTTP_SESSION_VARS'][$varname];
                }
            }
        }
        
        
        // returns a string like "PHPSESSID=b188e8c9c45b347cdded2..."
        function get_sid_string()
        {
            return session_name() . "=" . session_id();
        }
        
        
        // returns the session-id
        function get_sid()
        {
            return session_id();
        }
        
        
        // unsets a certain session-variable
        function var_unset( $varname )
        {
            if( !isset($varname) )
                die("Function var_unset( String \$varname ) expects a parameter!");
            
            if( phpversion() >= "4.1.0" )
            {
                if (isset($GLOBALS[$varname])) 
                    unset( $GLOBALS[$varname] );
                if (isset($GLOBALS['_SESSION'][$varname])) 
                    unset( $GLOBALS['_SESSION'][$varname] );
            }
            else
            {
                if (isset($GLOBALS[$varname])) 
                    unset( $GLOBALS[$varname] );
                if (isset($GLOBALS['HTTP_SESSION_VARS'][$varname])) 
                    unset( $GLOBALS['HTTP_SESSION_VARS'][$varname] );
            }
        }
        
        
        // unsets the value of every session-variable
        function ses_unset()
        {
            if( phpversion() >= "4.1.0" )
            {
                if( isset($GLOBALS['_SESSION']) ) $a = $GLOBALS['_SESSION'];
                while( list($key,) = each($a) )
                    $this->var_unset($key);
            }      
            else
            {
                if( isset($GLOBALS['HTTP_SESSION_VARS']) ) $a = $GLOBALS['HTTP_SESSION_VARS'];
                while( list($key,) = each($a) )
                    $this->var_unset($key);
            }
        }
        
        
        //deletes every session-variable and destroys the Session
        function destroy()
        {
            $this->ses_unset();
            session_destroy();
        }
        
        
        // shows the variables currently set in the session 
        function show()
        {
            echo "Variables set in current session:<br />\n";
            if( phpversion() >= "4.1.0" )
            {
                if( isset($GLOBALS['_SESSION']) ) $a = $GLOBALS['_SESSION'];
                while( list($key,$value) = each($a) )
                    echo "Variable: $key - Value: $value<br />\n";
                    
            }    
            else
            {
                if( isset($GLOBALS['HTTP_SESSION_VARS']) ) $a = $GLOBALS['HTTP_SESSION_VARS'];
                while( list($key,$value) = each($a) )
                    echo "Variable: $key - Value: $value<br />\n";
            }
        }
    }
?>
Benutzeravatar
sunreise
Mitglied
Beiträge: 49
Registriert: 22.01.2003 12:15
Wohnort: Grillenberg

Beitrag von sunreise »

problem hat sich schon geklärt

liegt an meiner php version

arbeite noch mit 4.0.6

habe es auf einen rechner mit 4.1.1 getestet da hat alles wunderbar geklappt :oops: :oops: :oops:
Antworten

Zurück zu „Coding & Technik“