Seite 1 von 2

[PHP] Cookie der niemals abläuft

Verfasst: 23.09.2007 21:43
von Fluid Byte
Man muss mit SetCookie() eine Zeit angeben wann der Cookie abläuft / verfällt sonst wird er nach beenden der Session / schließen des Browsers automatisch wieder gelöscht. Das ist zumindest auf dem Server wo meine Seite liegt so bzw. mit meiner PHP Version / Konfiguration. Meine Frage ist ob es da sowas wie nen Flag gibt. Wie bspw. #PB_Ignore in PB anstatt eine utpoische Ablaufzeit mit time() zusammenzuschrauben.

Im Moment mache ich es folgendermaßen:

Code: Alles auswählen

setcookie("mycookie","wert",time() + 60 * 60 * 24 * 30)
Wären 30 Tage, sieht aber unschön aus bzw. is mir zu umständlich.

Verfasst: 23.09.2007 22:22
von AND51
Es gibt keine andere Möglichkeit als ein "utopisches Datum" anzugeben.
Aber eventuell, ich kenne mich in PHP nicht aus, kann man die Schreibweise ja verkürzen, so PB-like?

Code: Alles auswählen

setcookie("Prinzenrolle", "Keks", time()+$FFFFFFF)
Das wäre (vom jetzigen Zeitpunkt aus gesehen) im Jahr 2016, was meiner Meinung nach dicke reicht.
Ist diese Verkürzung nicht schon mal besser als die lange Schreibweise?
Alternativ habe ich mit PB die Zahl 1924127999 ermittelt, was 31. 12. 2030 23:59:59 entpricht. Gerundet wäre das 2 Mrd (2x10^9), was 18. 5. 2033 3:33:20 entspricht. 2 Mrd. kann man sich och gut merken und schnell tippen!


Kaum ein User wird ein Cookie 9 Jahre lang auf seinem Rechner haben - so hoch ist die Lebenserwartung eines Cookies nicht. Denn Internet-Anonymisierer, AntiVirenprogramme und die Cache-Lösch-Funktion sind nur einige der natürlichen Feinde eines Cookies.

So komme ich zu dem Schluss, dass ein "utopisches Datum" an Stelle eines #PB_Ignore für Cookies ausreicht.

Verfasst: 23.09.2007 22:30
von STARGÅTE

Code: Alles auswählen

setcookie($var, $Wert, FFFFFFFF)
das reicht völlig, da der Coockie jetzt bis zum ende der Zeitrechnung hält

@AND51 : ein $ macht aus einer Zeichenkette eine Variable und keine HEX-Zahl, für später mal

Verfasst: 23.09.2007 22:34
von AND51
Ah ok... Werd dran denken, wenn ich mit PHP anfange! :allright:

Verfasst: 23.09.2007 22:42
von STARGÅTE
da fällt mir gerade ein, das ja eine INT zur hälfte aus -Werten besteht.

Also wäre das hier die Lösung ^^

Code: Alles auswählen

setcookie($var, $Wert, 7FFFFFFF)
ansonsten halt mal beide testen ^^

Verfasst: 24.09.2007 11:45
von Fluid Byte
@STARGÅTE:

Du hast das Hex Prefix "0x" vergessen. :wink:

Verfasst: 24.09.2007 13:09
von STARGÅTE
:?

wieso?

das hier geht doch:
<?php

echo hexdec(FF);
echo '<br>';
echo dechex(255);

?>
ergebnis:
255
FF

Verfasst: 24.09.2007 14:27
von Fluid Byte
Schon klar aber PHP muss ja wissen das du einen Hexwert übergibst. Egal ob mit Funktion oder Prefix.

Das hier

Code: Alles auswählen

<?php
	$Result = 256 + FF;
	echo $Result;
?>
funktioniert nicht. Sondern es muss so aussehen:

Code: Alles auswählen

<?php
	$Result = 256 + hexdec(FF);
	echo $Result;
?>
oder so

Code: Alles auswählen

<?php
	$Result = 256 + 0xFF;
	echo $Result;
?>

Verfasst: 24.09.2007 14:40
von STARGÅTE
ach so ok
:lol:

Verfasst: 24.09.2007 14:47
von Fluid Byte
Na schön das Spaß hast! LMAO! :mrgreen: