PHP session nicht gespeichert werden, die zwischen den Seiten
Ich habe gerade gekauft, einige neue server-Raum und bin mit der Migration eines sehr einfachen PHP-app, dass es funktioniert gut auf meinem anderen server.
Aus irgendeinem Grund die session-Daten nicht gespeichert werden in der $_SESSION-variable, die zwischen den Seiten auf dem neuen server. Ich habe mir bei ähnliche Artikel SO und viele andere, um zu versuchen und das Problem zu beheben.
Kann ich bestätigen:
- Die session-Zeug ist in Ordnung, auf meiner anderen Website. Ich sah in das Verzeichnis definiert durch die Sitzung.save_path und es gibt eine Menge von session-Dateien in es (auf dem ALTEN server).
- Ich hallte die Inhalte der $_SESSION-variable an das Ende einer Seite, und es hält die richtigen Daten, es ist einfach nicht gespeichert werden.
- Ich habe echo würde session_id() für jede Seite und erhalten die gleiche Ausgabe.
- Ich habe einen Blick in die Ordner durch die NEUE server-Sitzung.save_path Ordner (/usr/lib/php/session) und da sind keine Dateien drin. Ich habe die Berechtigungen und es ist eingestellt auf drwxrwx---, was bedeutet, dass das php-Programm schreiben können, richtig?
- Habe ich keine .htaccess-Datei.
- Läuft bei mir CentOS 5.5
Dies ist von den relevanten Teil der Ausgabe von phpinfo ():
Session Support enabled
Registered save handlers files user
Registered serializer handlers php php_binary wddx
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 5 5
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /var/lib/php/session /var/lib/php/session
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0
Habe ich kontaktiert, die hosting-Unternehmen, und Sie werden nicht kümmern, weil Sie sagen, es ist ein software Problem und es ist nicht ein managed account. Grrrrr...
Nur so können Sie sehen, einige code, der nicht funktioniert, ich habe gestohlen-code aus dem Artikel, den ich verlinkt haben:
//info.php
<?
session_start();
$_SESSION['ID'] = "112233";
$_SESSION['token'] = "mytoken";
print $_SESSION['ID'];
print $_SESSION['token'];
?>
<a href="info2.php">info 2</a>
und man nannte info2 mit diesem code:
//info2.php
<?
session_start();
print $_SESSION['ID'];
print $_SESSION['token'];
?>
<a href="info.php">info</a>
Resultat ist der Druck mit der array-Daten in info.php, aber kein Ausgang info2.php (abgesehen von dem link natürlich).
Vielen Dank im Voraus für jede Hilfe.
- versuchen Sie, die Antworten von hier: bytes.com/topic/php/answers/783445-session-not-holding-value
- alle header-Probleme, Sie arbeiten mit error_reporting(-1), um maximale Fehlermeldungen ?
- Ich würde alles, was an diesem Beitrag, abgesehen von der überprüfung, dass die Sitzung.save_path war richtig eingestellt in der php.ini-Datei. Aber ich habe es so gemacht wie auch jetzt, und es war.
- Ich habe jetzt explizit den Fehler-reporting über error_reporting(E_ALL). Ich bekomme keine Fehlermeldungen, obwohl das leider.
- Sorry, verpasst Ihr Beitrag über die. Können Sie sehen etwas in der Apache/PHP-Logs? Welche PHP version verwenden Sie?
- Keine probs. Ich habe einen Blick in die error_logs und es ist nichts da war das Ding installiert. PHP version 5.1.6. Einigermaßen alt, nehme ich an, aber ich sehe nicht, warum es irgendwelche Probleme mit ihm.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen explizit Schließung der Sitzung, bevor das Skript beendet wird; vielleicht sehen Sie einige Fehlermeldung dann.
Wenn Ihr session-Datei hat die Größe null, stellen Sie sicher, es gibt noch verfügbaren Speicherplatz auf Ihrem server. Das war das problem, das ich hatte.
Speicherplatz überprüfen, mit
df -h
auf einem linux-server.