Suche auf lima-city
-
in: PHP 5: Cookies werden nicht gesetzt
geschrieben von suggestion
Hallo
wie davidlw und muellerlukas schon sagten, das Problem ist, dass Du
mitten in drin, also nicht vor jedweder Ausgabe im Browser setzen willst, und das geht nicht.setcookie()
also ALLE setcookie() Aufrufe müssen ganz oben,
noch vor Asgabe von
sein<!DOCTYPE HTML><HTML><Head>
und die dabei gesetzten Variablen-Werte $Des[0] und $Dese
müssen dazu auch vorher aus GET/POST ausgelesen sein
ich rate Dir alle POST / GET Prüfungen,in diesem Bereich (vor <html>)
zu schreiben, und nicht mitten in der Ausgabe einzeln zu Prüfen
Dazu kann man sich entsprechende Variablen setzen,
die dann auch späer für die Ausgabe verfügbar sind ...
so ähnlich wie Du es schon für die Variable $Filter gemacht hast
nur solltest Du für jedes GET / POST auch wenn nicht vorhanden
trotzdem die Variable setzen, meinetwegen mit Leerstring oder Standard-Wert.
Beispiele: (ganz oben vor HTML Ausgabe)
if (isset($_GET['Filter']) && !empty($_GET['Filter'])) { $Filter = $_GET['Filter']; } else { $Filter = 'Standard'; } if (isset($_GET['Design']) && !empty($_GET['Design'])) { $Design = $_GET['Design']; } else { $Design= 'blau'; } if (isset($_GET['Maus']) && !empty($_GET['Maus'])) { $MausWert = $_GET['Maus']; } else { $MausWert = '1'; }
usw...
dann kannst Du die Cookies setzen
$timespamp = time(); $cxplus_time = 2145900917; $cookie_time = ($timespamp + $xplus_time); setcookie('Maus', $MausWert , $cookie_time);
und später in der Ausgabe kannst Du als DEBUG alle Cookies die gesetzt wurden
dann wieder ausgeben / darauf zugreifen
print '<pre style="margin4px; padding:6px; background:#DEDEDE; text-align:left;">'."\n"; print_r($_COOKIE); print '</pre>'."\n";
also .... wichtig ist,
dass setcookie() nicht nach der Ausgabe im Browser verwendet werden kann