[php] Sessions - Lebensdauer?
-
Wie lange hält eine Session an? Wie kann ich das einstellen? Und werden nach Beendigung der Session alle gesetzten Variablen gelöscht?
MfG SideWinder
-
session.gc_maxlifetime in der php.ini
Falls Sie die standardmäßige dateibasierte Session-Prozedur verwenden, muss Ihr Dateisystem die Zugriffszeiten (atime) verfolgen. Windows FAT tut dies nicht. Sie müssen sich daher einen anderen Weg einfallen lassen, um die 'Müllentsorgung' Ihrer Session zu erledigen, wenn Sie an ein FAT-Dateisystem gebunden sind oder an irgendein anderes Dateisystem, das keine atime-Kontrolle bietet.
Hast du einen eigenen Session-Handler oder z.B. FAT musst du dich selber um das Löschen abgelaufener Sessions (die nicht explizit mit session_destroy beendet wurden) kümmern.
Wenn du eine Session beendet hast, werden auch alle Session-Variablen ungültig bzw. gelöscht
-
Hmm irgendwie kapier ich das nicht
===============================================================================
Möchte folgendes realisieren:- User kommt auf die Seite - Kenne ich den User? -NEIN: Keine Session -JA: Sieh nach in der Datenbank ob er AutoLogin erwünscht -NEIN: Keine Session -JA: Speichere die Daten aus der DB in der Session und leite ihn zu seiner gewünschten Startseite weiter - Login - Stimmen Username und Passwort mit einem User aus der DB zusammen? -NEIN: Forgot-PW-Seite anzeigen -JA: Speichere die Daten aus der DB in der Session - Gästebuch - Ist ein User eingeloggt? -NEIN: Gästebuchseite anzeigen -JA: Gästebuchseite anzeigen -> Username, E-Mail, etc. autom. einfügen in die Formularfelder - Upload - Ist ein User eingeloggt? -NEIN: Keinen Upload ermöglichen. -JA: Uploadseite anzeigen und die Uploads in der UPLOAD.LOG verzeichnen
===============================================================================
Also Datenbanktabelle ist angelegt.
Cookies müssen aktiviert sein.Nur wie prüfen ob ein Cookie bereits angelegt wurde?
MfG SideWinder
[ Dieser Beitrag wurde am 16.06.2003 um 18:55 Uhr von SideWinder editiert. ]
-
Indem du einfach einen Wert aus dem Cookie einliest
-
Du meinst so etwa:
<?php if ( $isset ( $cookie ) ) { // ID einlesen und mit DB vergleichen } ?> <!doctype ...
MfG SideWinder
-
sieht etwas komisch aus, aber vom Prinzip her schon richtig
if(isset($_COOKIE['userid'])) { ... }
Ich gehe hier davon aus, dass du die ID des Users als userid in dem Cookie hinterlegt hast
-
Okay danke.
Eine Frage noch: Die index.php wird bei mir durch interne Links ala "./index.php?action="bla"" sehr oft aufgerufen. Muss er da jedesmal den User laden? Kann man das umgehen oder ist das kein Zeitverlust?
MfG SideWinder
-
Wenn du eh Sessions verwendest kannst du auch in der Session nachschauen, was für ein User es ist. Die Cookie-Abfrage wäre nicht schlimm, aber die Prüfung der Daten mittels DB kostet halt schon etwas Performance
-
Warning: SAFE MODE Restriction in effect. The script whose uid is 703 is not allowed to access /usr/share/pear/DB.php owned by uid 0 in /var/www/web24/html/mySQL.php on line 3
Fatal error: Failed opening required 'DB.php' (include_path='.:/usr/share/pear') in /var/www/web24/html/mySQL.php on line 3
Was zur Hölle ist das? Habe ich keinen Zugriff auf eine Includedatei??
MfG SideWinder
-
Safe Mode ist der Versuch, Sicherheitsprobleme bei gemeinsam genutzten Servern zu lösen. Bezogen auf die Systemarchitektur, ist es der falsche Ansatz, diese Probleme innerhalb der PHP Schicht lösen zu wollen. Da es auf Ebene des Webservers bzw. des Betriebssystems keine praktischen Alternativen gibt, wird Safe Mode nunmehr von vielen Leuten, vor allem von Providern, eingesetzt.
Wie kann ich trotzdem dieses DB.php laden? Selbst hochladen?
MfG SideWinder
-
Im SAFE MODE ist es nicht erlaubt, Dateien aus höherliegenden Verzeichnissen (..) einzubinden
-
Was kann ich also nun tun damit ich trotzdem die DB.php zur Verfügung habe? Sonst bringen mir ja meine ganzen Datenbanken nix?!
MfG SideWinder
-
denke das sieht schlecht aus... sperrt der SafeMode eigentlich alle Dateioperationen? Dieser Blödsinn hat mich nämlich auch schon mal ganz schön zur Verzweiflung gebracht, als der meinem Provider angestellt werden musste....
MfGTobsen
-
Jo was soll das? Heißt das ich kann keine einzige Fileoperation machen? Dann bringt mir ja meine ganze Userverwaltung die ich heute geschrieben habe incl. der Provider nichts.
Kann ich nicht einfach die DB.php und die PEAR.php so raufladen?
Okay das hab ich gemacht und es funktioniert -> nur setzt er mir kein Cookie :(.
setcookie ( "Username" , "SideWinder" );
funktioniert nicht. Warum? Wollte mir einfach mit dieser Testseite probehalber ein Cookie infizieren und mich damit anmelden :(.
MfG SideWinder
-
du kannst schon fileoperationen machen, nur dabei nicht auf Verzeichnisse oberhalb des aktuellen zugreifen:
// das ist möglich include('./bla/inc.php); include('inc.php'); //aber das geht nicht include('../inc.php');
So hab ich das gerade ibn Erinnerung. Bei anderen File-Operationen wird es sich wohl genauso verhalten.
Du weiß aber, dass du auf Cookies immer erst auf der nächsten Seite zugreifen kannst (am Besten über $_COOKIE['username'])
-
Folgender Code:
<?php setcookie ( "schoenername" , "roflrofl" , time () + 3600 * 24 *14 , "" , ".sidewindershome.net" , 1 ); ?>
Setzt mir kein Cookie - hab es gar nicht verwenden wollen. Einfach nachsehen ob er das Cookie auf der Platte gespeichert hat -> nein.
MfG SideWinder
[ Dieser Beitrag wurde am 17.06.2003 um 18:29 Uhr von SideWinder editiert. ]
-
Warum setzt du eine 1 bei Secure ? Ist doch Schwachsinn, das Cookie nur zu setzten, wenn eine sichere Verbindung besteht, mach es einfach so:
setcookie ("TestCookie", $value, time()+3600);
-
Geht auch nicht.
MfG SideWinder
-
Also bei mir klappt das so!
$value muss natürlich etwas enthalten und du musst halt im Browser Cookies aktiviert haben (ist aber ja wol eigentlich logisch )