2016-07-02 15 views
0

Ich versuche derzeit, eine meiner alten Website auf neu gestarteten Windows-Server ausführen. Wir verwenden IIS 8.5, aber ich habe Probleme mit den korrekten Einstellungen von Session for PHP. Auf dem Server laufen zwei Versionen von PHP, 5.4.9 und 5.6.2. Für beide setze ich session.save_path auf "C: \ inetpub \ temp \ sessions". Für diesen Ordner habe ich Zugriffsrechte (Schreiben, Löschen, Ausführen, Erstellen) für die Benutzergruppen IUSR, IIS_IUSRS und Benutzer festgelegt. Was ist das Problem, dass ich die ganze Zeit einige Probleme beim Starten oder Putzen habe? Zufällig bekomme ich einige Fehler oder Warnungen. Ein letzter von ihnen war dieser:Wie richtig Sitzung für PHP auf IIS 8.5

Warning: session_regenerate_id(): Session object destruction failed 

Diese Warnung ist oft ruhig. Ich habe es geschafft, die Website zu betreiben, aber als ich versuchte, mich in das System einzuloggen, passierte nichts. Gleich nach dem Login hat es mich auf eine Login-Seite zurückgeleitet, weil es die Benutzersitzung nicht gefunden und überprüft hat. Additionaly Ich habe versucht, einige Daten-Dump und ich erhalte diese Störung:

Cannot regenerate session ID after HTTP headers have been sent. 

So vermute ich, dass das Hauptproblem bei Session ist, und es ist nicht richtig eingestellt. Kannst du mir einen Rat geben, wie man es richtig macht? Oder was hätte ich falsch machen können? Dank

EDIT:

Ich finde heraus, dass in Prozess der Login meine Sitzung leer. Ich versuche mich einzuloggen, mein Konto zu authentifizieren und Identität in Sitzung zu speichern. Wenn es jedoch nach der Anmeldung auf eine andere Seite umgeleitet wird, ist die Sitzung leer und es gibt keine Benutzeridentität.

Was ist wichtig zu sagen, diese Website wurde von Linux-Server verschoben und es hat richtig funktioniert. Es gibt also kein Problem im Code. Es muss ein Problem in den Einstellungen von PHP oder irgendetwas anderem sein.

Antwort

0

für diesen Fehler:

Cannot regenerate session ID after HTTP headers have been sent.

Ihre Header oder der meisten Top Ihres Codes durch diese Linie Start:

<?php ob_start(); ?> 

Für diese:

Warning: session_regenerate_id(): Session object destruction failed

Könnten Sie Sende deinen vollständigen Sitzungscode? Um zu überprüfen, welche Zeile die Sitzungs-ID ändert, kann Ihr System die Sitzung, die Sie versuchen zu zerstören, nicht finden

+0

Es ist ziemlich schwierig, den vollständigen Sitzungscode zu senden. Ich benutze das tschechische PHP Framework Nette und es wäre zu lang. Aber die Klasse, die alle Aktionen mit Session zur Verfügung stellt, ist hier: https://github.com/nette/http/blob/master/src/Http/Session.php Die Sitzung wird automatisch erstellt und Session-ID wird in Cookie gespeichert. Ist das hilfreich oder benötigen Sie weitere Informationen? –