PHP Cookies, die gut funktioniert auf localhost, aber es funktioniert nicht auf live-server
Hinweis: Dieses Problem ist bereits gelöst,
schließlich fand ich, dass es nicht die cookies
problem, das problem ist auf
unserialize () - Funktion. Die serialisiert
cookie, die die parameter des
diese Funktion muss stripslash-ed
erste.
Hallo zusammen, ich habe hier ein problem über PHP-Cookies. Ich bin mit der PHP-Cookies zum speichern von Benutzervorgaben. Ich habe getestet, mein code auf meinem lokalen Rechner (localhost mit XAMPP). Alles funktioniert sehr gut, auch die cookies. Aber wenn ich es hochgeladen auf den live-server, der cookies nicht funktioniert. Es scheint, dass die setcookie () - Funktion schreiben nicht die cookie-Wert. Ich habe getestet, indem echo-ing der cookie-Wert sowohl auf meinem localhost und auf meinem live-server. $_COOKIE[] Wert auf localhost zeigen, aber nicht mit der, die in dem live-server.
Ich dachte, vielleicht hängt es mit der $expire time zone wie die in diesem Beitrag http://anupraj.com.np/index.php/php-cookies-not-working-php-cookie-tutorial-and-scirpt/14 . Aber dann erkannte ich, ich habe eingestellt, dass die cookies verfallen in 1 Monat, nicht nur in einer Stunde, wie auf diesem blog-post. Also ich denke, das ist nicht der Fall.
Dies ist der Inhalt des setting.php
<?php
$defaultSettings['default_post_to'] = 'both';
$defaultSettings['timesince_style'] = 'simplify';
...
$defaultSettings['display_geo_info'] = 'true';
$defaultSettings['enable_javascript'] = 'true';
if(!isset($_COOKIE['settings'])){
setcookie("settings", serialize($defaultSettings), time()+3600*24*30);
header('Location: index.php');
}
$setting = unserialize($_COOKIE['settings']);
?>
- Und dies ist Inhalt der index.php
<?php
/*
ini_set ("display_errors", "1");
error_reporting(E_ALL);
*/
session_start();
require_once("settings.php"); //Settings files
require_once('varlib.php'); //Get all possible passed variable
require_once('auth.php'); //Check for channel login status
//If inputbar form submitted
if( $_POST['inputbox'] ){
...
}
else{
echo "SETTING COOKIE: <br/><br/>";
//This print_r is only showing the $_COOKIE value (which is stored on $setting) on localhost but no on live server
print_r($setting);
switch( $com ){
...
}
}
?>
Habe ich etwa suchen es überall (Google, stackoverflow, Fragen Sie Freunde auf twiiter/FB) noch keine Lösungen
Ich hoffe, dass einige Körper könnte mir die Lösung hier
Danke 🙂
Wenn Sie aktivieren error_reporting, bekommst du keine Fehlermeldung?
Vergleichen Sie die lokalen und live-server ist
phpinfo()
Ausgabe für die session
Teil (wo die cookie-Einstellungen werden auch gezeigt).noch nicht, ich werde es bald versuchen
Tatsächlich, auf Stack-Überlauf, wenn Sie gelöst haben, Ihr eigenes problem solltest du die Lösung posten als Antwort, und markieren Sie das als angenommen, statt vor '[gelöst]' auf Ihre Frage Titel
InformationsquelleAutor Kamal | 2010-12-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Blick auf beide Pfad und die domain-Parameter der setcookie-Funktion.
Referenz: setcookie @ PHP-docs http://php.net/manual/en/function.setcookie.php
Versuchen Sie dies, um Ihre cookie:
Glück!
InformationsquelleAutor dyve
Versuchen Sie dies:
Außerdem könnte es sein, dass
serialize($defaultSettings)
Ergebnis zu groß?Cookie-Größe ist in der Regel auf 4 KB beschränkt
InformationsquelleAutor Silver Light
Versuchen
exit()
nach dem Location-header.Einem Location-header nicht verhindern, dass ein PHP-Skript ausführen kann, die weitere Anweisungen, vielleicht gibt es etwas, das Sie ausgeführt nachdem Sie die Kopfzeile, die Ursachen des Fehlverhaltens.
InformationsquelleAutor Dr.Molle
Wahrscheinlich die server-Zeit ist nicht korrekt, daher Cookeis arbeiten nicht auf dem server.
Versuchen Sie dies:
Einstellung Ablaufdatum auf null, wird das Problem lösen in diesem Fall. oder aktualisieren Sie Ihr server-Zeit.
InformationsquelleAutor Nabeel
Während der Anwendung von Lösungen, die wir bekommen haben vergessen die Basis von Cookies.
Cookies sind, wie z.B. Kopf. Wie die Header, es sollte gesendet werden, bevor irgendeine Ausgabe erzeugt. nur dann setzt es erfolgreich. Ich habe gekämpft, eine Menge für dieses problem, aber wenn ich ging durch die Grundlagen dieses problem aber schnell gelöst.
diese syntax wird genug sein, um dieses problem zu lösen...
InformationsquelleAutor Pravin Durugkar