tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
370
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    mrtest mrtest ist offline Mitglied Bronze
    Registriert seit
    Nov 2004
    Beiträge
    41
    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 :
    1
    
    [b]Parse error[/b]:  parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in [b]mySession.php[/b] on line [b]4[/b]

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

    PHP-Code:
    <?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();
      
    ?>
     

  2. #2
    Registriert seit
    Sep 2003
    Ort
    Fürth(Franken)
    Beiträge
    1.060
    Blog-Einträge
    3
    Hmm...also bei mir funktioniert das ganze(bis auf MySQL-Verbindung natürlich). Kann mir das echt nicht erklären.

    greetz
    daddz
     
    be inspired...simplify...

  3. #3
    mrtest mrtest ist offline Mitglied Bronze
    Registriert seit
    Nov 2004
    Beiträge
    41
    Kann es am Server konfiguration des Providers liegen.
    hast du auf deinem Webserver getestet?
     

  4. #4
    Registriert seit
    Sep 2003
    Ort
    Fürth(Franken)
    Beiträge
    1.060
    Blog-Einträge
    3
    Ich habe es auf meinem lokalen Webserver getestet (Xampp) mit PHP 5.0.4.
    Hmm...ich kann den Fehler echt nicht nachvollziehen.

    greetz
    daddz
     
    be inspired...simplify...

  5. #5
    Registriert seit
    Sep 2003
    Ort
    Fürth(Franken)
    Beiträge
    1.060
    Blog-Einträge
    3
    Welche PHP-Version läuft denn auf deinem Webserver?

    greetz
    daddz
     
    be inspired...simplify...

  6. #6
    mrtest mrtest ist offline Mitglied Bronze
    Registriert seit
    Nov 2004
    Beiträge
    41
    Auf dem Webserver des Providers PHP 4.
    Hab mittlerweile die Fehlermeldungen unterdrucken können.
    Ich glaube, dass
    PHP-Code:
    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.
     

  7. #7
    mrtest mrtest ist offline Mitglied Bronze
    Registriert seit
    Nov 2004
    Beiträge
    41
    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.
     

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 21.10.10, 12:09
  2. Antworten: 24
    Letzter Beitrag: 16.04.09, 23:07
  3. Antworten: 2
    Letzter Beitrag: 24.08.06, 14:50
  4. sichere Sessionverwaltung
    Von x0x im Forum PHP
    Antworten: 3
    Letzter Beitrag: 13.05.05, 23:25
  5. Eigene Template Klasse funktioniert nicht.
    Von xamunrax im Forum PHP
    Antworten: 2
    Letzter Beitrag: 18.11.04, 14:56