cookies
ralf
- php
Hallo,
ich habe ein Problem mit cookies, und zwar hab ich eine Seite mit 27 Textfeldern.
auf der vorhergehenden seite werden 7 cookies gesetzt. also habe ich 34 Variablen die in einem cookie gespeichert werden sollen. Das Problem ist nur das nur 19 gespeichert werden. d.h. sobald die 20. variable gespeichert wird, wird die erste von vorne weggeschnitten.
woran kann das liegen?
Gruss und Danke
Ralf
Hi Ralf,
die beantwortung deiner Frage ist so etwas schwierig - kannst du etwas Code hier psten - dann wird´s wesentlich einfacher, auf deine FRage zu antworten..
Gruss Sven
Hi,
die beantwortung deiner Frage ist so etwas schwierig - kannst du etwas Code hier psten - dann wird´s wesentlich einfacher, auf deine FRage zu antworten..
klar geht das, sind halt nur ziemlich viel zeilen, aber ich versuche mich auf das wesentlich zu beschränken :)
1. Seite
Hier werden die Cookies registriert, welche für die seite erforderlich sind. Die Seite wird mit $PHP_SELF aufgerufen und der index=1 wird mit übergeben, damit bei einem aufruf über die navigationsleiste der wert nicht leer gesetzt wird. danach setze ich die variablen auf den wert des cookies, falls die seite über die navigation aufgerufen wurde (ich hoffe das ist verständlich):
Aufruf für die nächste seite <a href="seite2.php?id=$PHPSESSID&desindex=1>. Auruf innerhalb der seite <a href='$PHP_SELF?id=$PHPSESSID&index=1>
if ($index==1) {
setcookie("cookie_r1",$r1,time() + (7 * 24 * 3600));
setcookie("cookie_l1",$l1,time() + (7 * 24 * 3600));
setcookie("cookie_m1",$m1,time() + (7 * 24 * 3600));
setcookie("cookie_r2",$r2,time() + (7 * 24 * 3600));
setcookie("cookie_style",$style,time() + (7 * 24 * 3600));
}
if ($r1=="") {
$r1=$HTTP_COOKIE_VARS["cookie_r1"];
}
if ($l1=="") {
$l1=$HTTP_COOKIE_VARS["cookie_l1"];
}
if ($m1=="") {
$m1=$HTTP_COOKIE_VARS["cookie_m1"];
}
if ($r2=="") {
$r2=$HTTP_COOKIE_VARS["cookie_r2"];
}
2. Seite
Auf der Seite werden 27 Textfelder eingegeben. Zusätzlich werden zwei Variable von der 1. Seite übergeben die hier registriert werden. Sind die Textfelder im Cookie registriert werden sie in einem array gespeichert (für die text-value eigenschaft) ansonsten bleibt das array leer.
aufruf für die nächste seite:
<form method='post' action='seite3.php?id=$PHPSESSID&textindex=1>
if ($desindex==1) {
setcookie("cookie_design",$design,time() + (7 * 24 * 3600));
setcookie("cookie_anker",$anker,time() + (7 * 24 * 3600));
}
$textinhalt=array("praxis"=>$cookie_text[0],"titel1"=>$cookie_text[1],"vorname1"=>$cookie_text[2],"nachname1"=>$cookie_text[3],"titel2"=>$cookie_text[4],"vorname2"=>$cookie_text[5],"nachname2"=>$cookie_text[6],"facharzt1"=>$cookie_text[7],"facharzt2"=>$cookie_text[8],"strasse"=>$cookie_text[9],"hausnr"=>$cookie_text[10],"land"=>$cookie_text[11],"plz"=>$cookie_text[12],"ort"=>$cookie_text[13],"email"=>$cookie_text[14],"homepage"=>$cookie_text[15],"vorwahl1"=>$cookie_text[16],"tel1"=>$cookie_text[17],"vorwahl2"=>$cookie_text[18],"tel2"=>$cookie_text[19],"vorwahl3"=>$cookie_text[20],"fax"=>$cookie_text[21],"bank1"=>$cookie_text[22],"blz1"=>$cookie_text[23],"konto1"=>$cookie_text[24],"bank2"=>$cookie_text[25],"blz2"=>$cookie_text[26],"konto2"=>$cookie_text[27]);
3. Seite
Hier werden die Textfelder gespeichert, weil diese von der 2. Seite übergeben werden. auch hier nur wenn $textindex=1 ist, damit bei einem aufruf über die navigation die felder nicht leer sind
if ($textindex==1) {
for ($i=0; $i<28; $i++) {
setcookie("cookie_text[$i]",$text[$i],time() + (7 * 24 * 3600));
}
}
Ich hoffe das reicht die an code, ansonsten poste ich noch mehr.
Gruss
Ralf
Hi,
die beantwortung deiner Frage ist so etwas schwierig - kannst du etwas Code hier psten - dann wird´s wesentlich einfacher, auf deine FRage zu antworten..
klar geht das, sind halt nur ziemlich viel zeilen, aber ich versuche mich auf das wesentlich zu beschränken :)
1. Seite
Hier werden die Cookies registriert, welche für die seite erforderlich sind. Die Seite wird mit $PHP_SELF aufgerufen und der index=1 wird mit übergeben, damit bei einem aufruf über die navigationsleiste der wert nicht leer gesetzt wird. danach setze ich die variablen auf den wert des cookies, falls die seite über die navigation aufgerufen wurde (ich hoffe das ist verständlich):
Aufruf für die nächste seite <a href="seite2.php?id=$PHPSESSID&desindex=1>. Auruf innerhalb der seite <a href='$PHP_SELF?id=$PHPSESSID&index=1>
if ($index==1) {
setcookie("cookie_r1",$r1,time() + (7 * 24 * 3600));
setcookie("cookie_l1",$l1,time() + (7 * 24 * 3600));
setcookie("cookie_m1",$m1,time() + (7 * 24 * 3600));
setcookie("cookie_r2",$r2,time() + (7 * 24 * 3600));
setcookie("cookie_style",$style,time() + (7 * 24 * 3600));
}
if ($r1=="") {
$r1=$HTTP_COOKIE_VARS["cookie_r1"];
}
if ($l1=="") {
$l1=$HTTP_COOKIE_VARS["cookie_l1"];
}
if ($m1=="") {
$m1=$HTTP_COOKIE_VARS["cookie_m1"];
}
if ($r2=="") {
$r2=$HTTP_COOKIE_VARS["cookie_r2"];
}
2. Seite
Auf der Seite werden 27 Textfelder eingegeben. Zusätzlich werden zwei Variable von der 1. Seite übergeben die hier registriert werden. Sind die Textfelder im Cookie registriert werden sie in einem array gespeichert (für die text-value eigenschaft) ansonsten bleibt das array leer.
aufruf für die nächste seite:
<form method='post' action='seite3.php?id=$PHPSESSID&textindex=1>
if ($desindex==1) {
setcookie("cookie_design",$design,time() + (7 * 24 * 3600));
setcookie("cookie_anker",$anker,time() + (7 * 24 * 3600));
}
$textinhalt=array("praxis"=>$cookie_text[0],"titel1"=>$cookie_text[1],"vorname1"=>$cookie_text[2],"nachname1"=>$cookie_text[3],"titel2"=>$cookie_text[4],"vorname2"=>$cookie_text[5],"nachname2"=>$cookie_text[6],"facharzt1"=>$cookie_text[7],"facharzt2"=>$cookie_text[8],"strasse"=>$cookie_text[9],"hausnr"=>$cookie_text[10],"land"=>$cookie_text[11],"plz"=>$cookie_text[12],"ort"=>$cookie_text[13],"email"=>$cookie_text[14],"homepage"=>$cookie_text[15],"vorwahl1"=>$cookie_text[16],"tel1"=>$cookie_text[17],"vorwahl2"=>$cookie_text[18],"tel2"=>$cookie_text[19],"vorwahl3"=>$cookie_text[20],"fax"=>$cookie_text[21],"bank1"=>$cookie_text[22],"blz1"=>$cookie_text[23],"konto1"=>$cookie_text[24],"bank2"=>$cookie_text[25],"blz2"=>$cookie_text[26],"konto2"=>$cookie_text[27]);
die textfelder sehen so aus:
<input type='text' name='text[0]' value='".$textinhalt['praxis']."'>
3. Seite
Hier werden die Textfelder gespeichert, weil diese von der 2. Seite übergeben werden. auch hier nur wenn $textindex=1 ist, damit bei einem aufruf über die navigation die felder nicht leer sind
if ($textindex==1) {
for ($i=0; $i<28; $i++) {
setcookie("cookie_text[$i]",$text[$i],time() + (7 * 24 * 3600));
}
}
Ich hoffe das reicht die an code, ansonsten poste ich noch mehr.
wie gesagt, sobald 19 variablen gespeichert wurden, also bis textfeld 11, wird das textfeld 12 in das cookie geschrieben, dafür aber die erste variable (cookie_r1) gelöscht, so dass immer nur 19 variablen im cookie stehen
Gruss
Ralf
Hallo,
Tach,
ich habe ein Problem mit cookies, und zwar hab ich eine Seite mit 27 Textfeldern.
auf der vorhergehenden seite werden 7 cookies gesetzt. also habe ich 34 Variablen die in einem cookie gespeichert werden sollen. Das Problem ist nur das nur 19 gespeichert werden. d.h. sobald die 20. variable gespeichert wird, wird die erste von vorne weggeschnitten.
woran kann das liegen?
Du kannst nicht beliebig viele Daten in Cookies speichern.
Je nach Browser sind das 1 bis 2 Kilobyte...
Und da gehen expiry-date, domain, usw. mit in die Rechnung ein.
Bei 34 Variablen ist die Grenze schnell erreicht.
Andreas
Hi,
Du kannst nicht beliebig viele Daten in Cookies speichern.
Je nach Browser sind das 1 bis 2 Kilobyte...
Und da gehen expiry-date, domain, usw. mit in die Rechnung ein.
Bei 34 Variablen ist die Grenze schnell erreicht.
kann ich denn eine zweite cookie-datei anlegen?
Gruss
Ralf
Hi,
Hallo,
Du kannst nicht beliebig viele Daten in Cookies speichern.
Je nach Browser sind das 1 bis 2 Kilobyte...
Und da gehen expiry-date, domain, usw. mit in die Rechnung ein.
Bei 34 Variablen ist die Grenze schnell erreicht.
kann ich denn eine zweite cookie-datei anlegen?
Diese Begrenzung hat unter anderem den Sinn, daß niemand die Platte des Surfers vollmachen kann.
Wie sinnvoll wäre es, wenn man das umgehen könnte?
Beantwortet das Deine Frage?
Andreas
Hi,
Diese Begrenzung hat unter anderem den Sinn, daß niemand die Platte des Surfers vollmachen kann.
Wie sinnvoll wäre es, wenn man das umgehen könnte?
Beantwortet das Deine Frage?
Andreas
Das beantwortet die Frag, lösst aber nicht mein Problem. ich brauche die variablen bei einem neuaufruf der seite. kann man das anders lösen?
Gruss
Ralf
Hi,
Diese Begrenzung hat unter anderem den Sinn, daß niemand die Platte des Surfers vollmachen kann.
Wie sinnvoll wäre es, wenn man das umgehen könnte?
Beantwortet das Deine Frage?
Andreas
Das beantwortet die Frag, lösst aber nicht mein Problem. ich brauche die variablen bei einem neuaufruf der seite. kann man das anders lösen?
z.B. die Daten serverseitig speichern zusammen mit einer id.
Nur die id wird zum Wiederauffinden in den Cookie gespeichert.
Andreas