[PHP] Session Cookie erstellen und nach bestimmte Zeit ungültig

digiTALE

Lt. Junior Grade
Registriert
Juli 2004
Beiträge
270
Hi,

wollte für mein Gästebuch eine Art 5 min IP-Sperre einrichten, nach Eintrag in mein Gästebuch. Jetzt hab ich mir überlegt das könnte man auch über eine Session machen, die 5min gültig ist.

PHP:
session_start();
session_set_cookie_params(300); // Soll Gültigkeit der Session festlegen, also 5min

Ja soweit geht das auch nur wird die Session nicht nach 5min gelöscht. Der jenige der ein Eintrag gemacht hat kann dann kein Eintrag mehr machen solange die Session noch existiert!

Das wäre eigentlich ne gute Lösung gewesen ohne grossen Codeaufwand wenn das funktioniert hätte!

Warum geht das nicht mit dem Parameter siehe oben!?

mfg digiTALE
 
Moin,

ich glaub du musst den Wert in der PHP_INI_ALL bei session.cookie_lifetime einstellen.

MFG

tewes
 
Ja das habe ich schon gemacht, nur ändert sich der wert in der php.ini nicht und die SESSION wird trotzdem nicht nach 5min ungültig.


SESSION im Header positioniert
PHP:
// SESSION starten
	session_start();


Abfrage der SESSION als Sperre
PHP:
// 5min Sperre wenn IP in der SESSION vorhanden
if (@$_SESSION["sessid"] == $_SERVER['REMOTE_ADDR']) {
	print "Du kannst erst in <font color=\"#EE0000\"><b>5 min</b></font> wieder einen Eintrag verfassen! <span class=\"klick\"><a href=\"?show=gaestebuch\">Zur&uuml;ck</a></span><br /><br />\n";
} else {
...
}


SESSION wird erstellt wenn GBeintrag erfolgreich
PHP:
...
// SESSION COOKIE erstellen
	$_SESSION["sessid"] = $_SERVER['REMOTE_ADDR'];
	ini_set("session.cookie_lifetime","300");
...

Habe ich noch was vergessen oder noch was falsch gemacht!?

mfg digiTALE
 
mhh :-/ so viel habe ich noch nicht mit Session gearbeitet, sieht aber eigentlich ganz richtig aus.
 
Hab das ganze noch ein bissl erweitert!

Bei erfolgreichen GBeintrag
PHP:
// SESSION COOKIE erstellen
	$_SESSION["sessid"]   = $_SERVER['REMOTE_ADDR'];
	$_SESSION["sesstime"] = time();


Danach fragt er die SESSION ab ob die 5min rum sind, dann löscht er die
PHP:
$zeit = time();
$min  = "300";
$now = ($zeit + $min);
if ($_SESSION["sesstime"] > $now) {

} else {
	session_unset ($_SESSION["sessid"]); 
	session_unset ($_SESSION["sesstime"]); 
}


Aber irgendwie verhagt sich das mit dem Captcha das in der selben SESSION ist!
So sollte es ja gehen oder ist da noch ein Fehler drin!?

mfg digiTALE
 

Ähnliche Themen

Zurück
Oben