2017-10-26 7 views
0

sehr einfache Frage.Warum erscheint mein Cookie nicht auf der verknüpften Seite?

Das ist mein index.php:

<?php 
setcookie("testcookie", "i am value of cookie", 86400, '/'); 

?> 

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <meta http-equiv="X-UA-Compatible" content="ie=edge"> 
    <title>Document</title> 
</head> 
<body> 

<a href="newpage.php">go to next</a> 
</body> 
</html> 

das ist mein newpage.php:

<?php 
echo "ok ok "; 
echo $_COOKIE["testcookie"]; 
?> 

Meine zweite Seite Echo "ok ok", aber es das Cookie nicht Echo. Ich habe das Netzwerk überprüft, die index.php hat den Cookie "testcookie", aber newpage.php hat keinen Zugriff darauf, wenn ich auf den Link klicke.

Ich benutze MAMP.

+0

Überprüfen Sie, ob es eingestellt ist und laden Sie es erneut, sobald es einen Wert zugewiesen hat. Cookies werden erst wirksam, nachdem sie festgelegt wurden. Das haben Sie nicht getan. –

+0

Wo speichern Sie einen Wert für den Cookie? – xander

+0

Lesen Sie die Dokumentation http://php.net/manual/en/features.cookies.php –

Antwort

3

86400 ist eine lange, lange Zeit in der Vergangenheit.

Ihr Cookie läuft sofort ab.

Siehe documentation:

Die Zeit das Cookie abläuft. Dies ist ein Unix-Zeitstempel, also in der Anzahl der Sekunden seit der Epoche. Mit anderen Worten, Sie werden dies höchstwahrscheinlich mit der Funktion time() plus der Anzahl der Sekunden festlegen, bevor sie ablaufen soll. Oder Sie könnten mktime() verwenden. time() + 60 * 60 * 24 * 30 setzt das Cookie in 30 Tagen ab. Wenn dieser Wert auf 0 gesetzt oder weggelassen wird, läuft der Cookie am Ende der Sitzung ab (wenn der Browser geschlossen wird).

+0

änderte es in mktime(). Zeit() + 60 * 60 * 24 * 30 aber immer noch Cookie nicht angezeigt (auch aktualisieren etc.). – Hyrule

+1

Mit Ihrem Code möchten Sie vielleicht 'time() + 86400' !? – xander

+0

@xander, ok ... das hat funktioniert: O – Hyrule

Verwandte Themen