eigene Sessionverwaltung funktioniert nicht

mrtest

Mitglied
Hallo Leute,

hab ein grosses Problem und hoffe, dass mir jemand helfen kann.
Ich habe eine eigene Sessionverwaltung geschrieben(naja Anregungen aus einem Buch geholt). Diese Klasse deaktiviert die interne Routine der Sessionverwaltung von PHP und ersetzt sie durch meine eigne Methoden. Sie funktioniert bei mir zu Hause auf dem Webserver ganz gut nur sobald ich sie auf dem Providerserver hochlade bekomme ich folgende Meldung
Code:
Parse error:  parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in mySession.php on line 4

Ich bin mir sicher, dass es nicht am { liegt. Vielleicht kann mir jemand sagen was ich falsch mache. DANKE

PHP:
<?PHP
  class mySession
  {
  	const myServ =  'localhost';
  	const myDB =	'xx';
  	const myTable = 'currentsession';
  	const myUser =  'xx';
  	const myPass =  'xx';
  	
  	private static $dbLink;
  
  	public function __construct()
  	{
  		session_start();
  		$this->setDB();
  		$this->setTable();
  		$this->delSessions();
  		$this->setSessionID();		
  	}
  	
  	/*Baut eine Verbindung zu der angegebenen Datenbank auf*/
  	private function setDB()
  	{
  		self::$dbLink = mysql_connect(self::myServ,self::myUser,self::myPass);
  	}
  	
  	/*Selektiert die angegebene Tabelle*/
  	private function setTable()
  	{
  		mysql_select_db(self::myDB,self::$dbLink);
  	}
  	
  	/*Liefert als Ergebniswert eine neu Session ID*/
  	public function getSessionID()
  	{
  		$sid = session_id();
  		$_SESSION['sid'] = $sid;
  		return $sid;
  	}
  	
  	/*Loescht alle Sessions die aelter als 30 min sind*/
  	private function delSessions()
  	{
 		$query = "DELETE FROM currentsession WHERE laccess < '(date(\"Y-m-d H:i:s\", date(\"H:i:s\")-30))'";
 		 		mysql_query($query,self::$dbLink);
  	}
  	
 	/*Fügt eine neue Session ID in die currentsession Tabelle ein. Ist die session ID schon vorhanden wird der TIMESTAMP aktualisiert*/
  	private function setSessionID()
  	{
  		$time = date("Y-m-d H:i:s");
  		$sid = $this->getSessionID();
  		if(isset($sid))
  		{
 			$query = "SELECT sessionID FROM currentsession WHERE sessionID = '$sid'"; 
 		 		$dbResult = mysql_query($query,self::$dbLink);
  					
 					if(mysql_num_rows($dbResult))
 					{	
 		 			$query = "UPDATE currentsession SET laccess = '$time' WHERE sessionID = '$sid'";
 		 		 mysql_query($query,self::$dbLink);
  					}
  					else
  					{
 		 			$query = "INSERT INTO currentsession (sessionID,laccess) VALUES('$sid','$time')";
 		 		 mysql_query($query,self::$dbLink);
  					}
  		}
  		
  				
  	}
  	
  }
  new mySession();
  ?>
 
Hmm...also bei mir funktioniert das ganze(bis auf MySQL-Verbindung natürlich). Kann mir das echt nicht erklären.

greetz
daddz
 
Ich habe es auf meinem lokalen Webserver getestet (Xampp) mit PHP 5.0.4.
Hmm...ich kann den Fehler echt nicht nachvollziehen.

greetz
daddz
 
Auf dem Webserver des Providers PHP 4.
Hab mittlerweile die Fehlermeldungen unterdrucken können.
Ich glaube, dass
PHP:
self::$dbLink =
ist nicht PHP 4 konfirm. Jedoch hab ich jetzt das Problem, dass die session ID nicht in die DB reingeschrieben wird, oder erst gar nicht erzeugt wird.
 
Also hab den Fehler selbst gefunden. Soweit ich es beurteilen kann, darf man in PHP 4 nicht solche schlüsselwörter wie public oder private verwenden. nDanke trotzdem für die Hilfe.
 
Zurück