2016-08-08 22 views
-2

Ich habe meinen Code, in dem ich session_start() verwendet habe, die nicht funktioniert. Ich benutze PHP.PHP-Sitzung nicht gestartet, aber mit anderen Sitzung

Szenario ist wie folgt:

Wie in php brauchen wir session_start() in jeder Datei setzen Wenn wir Sitzung zugreifen möchten. So habe ich eine gemeinsame Datei erstellt, die auf jeder PHP-Seite enthalten ist. In der gemeinsamen Datei erste Zeile ist session_start() & Ich habe diese Datei in jeder anderen PHP-Datei als erste Zeile enthalten.

Also, wenn ich die Code-Sitzung ausführen wird nicht gestartet. Es wird auf dieselbe Seite umgeleitet, wenn die Sitzung nicht auf & gesetzt ist, da es innerhalb der Sitzung keine Werte erhält, weil es nicht erstellt wird.

Was ich getan habe, zum Testen habe ich ein weiteres Testprojekt erstellt. In diesem genommen zwei Dateien index.php & index1.php. Gestartet Sitzung in index.php & verwendet es in index1.php. Es läuft also richtig. Aus diesem Grund nimmt mein Code jetzt die Sitzungsdatei des Testprojekts.

Also, wenn ich meinen Code ausführen muss, führe ich zuerst Test-Projekt (so dass es Sitzung erstellt wird) & Dann läuft mein Code. So funktioniert es gut.

Aber allein ist es nicht Sitzung & andere sitzungsbezogene Kontrollen beginnen versagen & Umleiten auf derselben Seite wieder & wieder.

Warum das passiert? Was ist der Grund dafür? Hat jemand das gleiche Problem gesehen?

Wenn ja, dann wird Ihre Hilfe geschätzt.

+2

Können Sie Ihren Code freigeben – Orion

+0

session_start() erstellt keine Sitzungsvariable. Hast du Sitzungsvariablen erstellt? – coder

+0

Ja, ich weiß, aber auf der ersten Seite submit Ich habe Sitzung gestartet und setzen Sie einige Werte in den Sitzungsvariablen hängt davon ab, welcher Benutzer geklickt hat. Aber auf den nächsten Seiten gibt es nichts in der Sitzung, es ist leer, wenn ich $ _SESSION-Variable drucke. – Rohit

Antwort

0

Überprüfen Sie alle Ihre PHP-Dateien auf Streuräume vor oder nach dem Öffnen oder Schließen von Tags. Es darf keine Ausgabe geben, bevor session_start() verwendet wird. Session_start() muss am Anfang stehen (oder zumindest bevor eine Ausgabe gesendet wird) oder die Sitzung speichert keine Daten. (und einen Fehler ausgeben).

Also bitte auch error_reporting (E_ALL) & & ini_set ('display_errors', 1);

[edit] Sie können auch versuchen, ob_start() an der absoluten oberen/ersten Datei und dem Ort, an dem Ihre Sitzung gestartet werden soll, zu setzen, var_dump (ob_get_clean()); exit; Wenn das nicht NULL/'ist, haben Sie Ihr Problem gefunden.

+0

session_start() ist @ oben nur in der Datei config.inc.php, die ich auf jeder Seite eingefügt habe. – Rohit

+0

Dann können Sie sicherstellen, dass es keine einzige Datei gibt, die überhaupt etwas ausgibt (sogar ein Leerzeichen), bevor Ausgegeben wird? – twicejr

+0

Andere mögliche Ursache: ist der Hostname der gleiche (www vs nicht www zum Beispiel?) – twicejr

0

Zuerst sicherstellen, dass Sie session_start() sofort nach dem Start der Seite gesetzt haben, sollte es direkt unter dem ersten <?php im Dokument sein. Es sollte nur einmal in jeder Seite erscheinen, die Sie einen Sitzungscookie benötigen.

Stellen Sie außerdem sicher, dass Sie die Sitzungsvariablen erstellt und definiert haben, bevor Sie sie aufrufen.

+0

Sie können meine drei Dateien überprüfen. Ich habe etwas Code von ihnen geteilt. Überprüfen Sie, wie ich config.inc.php & session_start() in diese Datei aufgenommen habe. – Rohit

Verwandte Themen