"die Sitzung hat schon begonnen..." exception in Zend Framework-Anwendung
Ich bekomme diese Fehlermeldung beim laden einer Zend Framework Anwendung:
Fatal error: Uncaught exception
'Zend_Session_Exception' mit Nachricht
'session wurde bereits gestartet
Sitzung.auto-start oder session_start()'
in
/www/htdocs/w00a1ed7/Auto-Dreh/redaktion/library/Zend/Session.php:462Stack trace:
#0 /www/htdocs/w00a1ed7/autospin/redaktion/library/Zend/Session/Namespace.php(143):
Zend_Session::start(true)#1 /www/htdocs/w00a1ed7/autospin/redaktion/library/Zend/Auth/Storage/Session.php(87):
Zend_Session_Namespace->__construct('Zend_Auth')#2 /www/htdocs/w00a1ed7/autospin/redaktion/library/Zend/Auth.php(91):
Zend_Auth_Storage_Session->__construct()#3 /www/htdocs/w00a1ed7/autospin/redaktion/library/Zend/Auth.php(141):
Zend_Auth->getStorage()#4 /www/htdocs/w00a1ed7/Auto-Dreh/redaktion/application/layouts/scripts/layout.phtml(31):
Zend_Auth->hasIdentity()#5 /www/htdocs/w00a1ed7/autospin/redaktion/library/Zend/View.php(108):
include('/www/htdocs/w00...')#6 /www/htdocs/w00a1ed7/autospin/redaktion/library/Zend/View/Abstract.php(831):
Zend_View->_run('/www/htdocs/w00...')#7 /www/htdocs/w00a1ed in /www/htdocs/w00a1ed7/autospin/redaktion/library/Zend/Session.php
on line 462
Benutze ich Zend_Auth
und auf meinem lokalen server und es funktioniert gut, aber auf einem Produktions-server bekomme ich die vorhergehenden Fehler, aber nicht jeder Zeit.
Ich habe überprüft, dass session.autostart
eingestellt ist 0
im .htaccess
Datei.
Wie behebe ich diesen Fehler?
Danke für deine Antwort, ich bin aber nicht der user session_start() überall. Arbeiten nur mit ZF.
Habe ich dieses Problem nur auf freigegebene server auf meinem lokalen server script funktioniert perfekt.
Ich Benutze INIT-Funktion mit diesem code:
protected $user;
public function init()
{
if(!Zend_Auth::getInstance()->hasIdentity())
{
$this->_redirect('auth/login');
}else
{
$this->user = Zend_Auth::getInstance()->getIdentity();
}
}
Ich schon versuchen, tis code nur in indexAction, so dass andere Aktionen nicht chack der Auth... aber immer noch Probleme.
Ist es ein Weg, um in einer Aktion das Kontrollkästchen nicht über session oder somethink like this?
Beste Grüße
Ich kann mir denken, zwei Dinge, die das Leben- & dev-Server zeigen unterschiedliche Ergebnisse: 1) nicht von identischen Dateien; oder 2) nicht identisch configs
oder verschiedene Server-Einstellungen....
InformationsquelleAutor Fribu - Smart Solutions | 2010-03-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist, was es sagt, es ist.
Zend_Auth
versucht, eine neue Sitzung starten, daZend_Session::start()
wurde noch nicht genannt.Das problem ist, dass
Zend_Session::start()
muss aufgerufen werden, bevor eine Sitzung gestartet wird. Aber, da der session.autostart ist 0 (btw dies ist in php.ini nicht .htaccess), haben Sie wahrscheinlich geschriebensession_start();
irgendwo. Sie sind nicht erlaubt zu tun, da ZF haben möchte, die volle Kontrolle über die sessions, d.h. Sie sollte nicht Zugriff auf die Globale session variable direkt.Um es zu lösen, suchen Sie Ihre code-Dateien für
session_start()
und entwedererror_reporting(E_ALL|E_STRICT);
Zend_Session::start();
an allen OrtenWenn Sie nicht finden können, alle Vorkommnisse finden, die ein session_start(); das stört Ihre
Zend_Auth::getInstance()->hasIdentity()
und lösen das problem quick n' dirty mit dem folgenden snippetWenn Sie mit ZF in Ihrer gesamten Anwendung, würde ich mit 2)
Schön! Fühlen Sie sich frei, um zu markieren der Antwort als korrekt, wenn es dir geholfen 🙂 Und denken Sie daran, das Vertrauen der stack-trace, es ist oft dein bester Freund 😉
FACEBOOK SDK HAT session_start()!
ich wollte nur darauf hinweisen, zum anderen, dass facebook sdk könnte die Ursache des Problems, facebook sdk bereits, wenn()... , aber ich war noch immer Fehler, bis ich es geändert Zend_Session::start()
Ich glaube wirklich, ZF ist schlecht konzipiert in dieser Angelegenheit, und Sie sind wahrscheinlich Recht. ZF sollte mehr lose gekoppelt, in diesem Fall. (Sie werden wahrscheinlich haben, wiederholen Sie Ihre jedes mal ändern, aktualisieren Sie Ihre FB-SDK.)
InformationsquelleAutor chelmertz
Bevor das treibt Sie verrückt, wahrscheinlich gibt es nichts falsch mit Ihrem code!
Ihre Anwendung zu überprüfen.ini für die session-save-path, bei mir ist es
APPLICATION_PATH '/session'
Nun prüfen, ob Sie die richtigen Berechtigungen!
Wenn nicht, dann cd in den Programm-Ordner und geben Sie
Job Gemacht!
"Ähm, es sagt, es ist ein gewitter in Texas. Was sollen wir tun???" "Keine Panik, mein Sohn. Es eigentlich nur bedeutet, dass meine Reifen zu wenig Druck hat."
Die Fehlermeldung ist irreführend. Dies brachte mich auf den richtigen Weg, Danke! stellen Sie sicher, dass der session Ordner vorhanden ist.
warum in der Welt würde Sie es Lesen/schreiben/ausführen für alle?
InformationsquelleAutor Del
Ich hatte den gleichen Fehler. Auf der lokalen Maschine, alles hat gut funktioniert. Auf dem server nicht.
Meine Lösung war
Zend_Session::start();
im index.php vor dem ausführen von bootstrap. So dass es wie folgt aussieht:InformationsquelleAutor Thomas
Es gibt 3 wichtige Gründe, die das produzieren dieser Ausgabe:
In den meisten Fällen die 2. option ist der Grund.
InformationsquelleAutor Tayyab Khan
Wenn Sie Anwendungen entwickeln mit der RPCL Bibliothek (RADPHP), und Sie werden immer diese Fehlermeldung:
dann ist hier meine Lösung.
Werden Sie überrascht sein, wie einfach es ist. Einfach die Zeile einfügen
kurz nach der öffnung PHP-tag in der Datei mit ZAuth Komponente – in der Regel ist dies die Datei mit einem DataModule form. Natürlich stellen Sie sicher, dass die Datei zcommon.inc.php ist in Ihrem Pfad. Dadurch wird sichergestellt, dass die Zend-session startet zuerst anstelle der RPCL-Sitzung.
Außerdem sicher, dass die Namen der php-Dateien in Ihrer Anwendung entsprechen den Namen der Sie enthaltenden Klassen.
InformationsquelleAutor Kiril Kostadi
Möchte ich Ihre Aufmerksamkeit auf den garbage-collection-problem, das hier gelöst Probleme mit PHP 5.3 und Sitzungen Ordner oder http://somethingemporium.com/2007/06/obscure-error-with-php5-on-debian-ubuntu-session-phpini-garbage.
Nach der Fixierung der 'session wurde bereits gestartet', ich traf die GC-bug. Ich vermute, dass der GC-Fehler könnte die Ursache für die session bug-zumindest in einigen Fällen. So weit hatte ich noch nicht genug Zeit, um untersuchen gründlich, aber bitte äußern Sie sich, wenn GC und session-Fehler stehen im Zusammenhang in Ihrem Fall sowie.
InformationsquelleAutor ACNB
hatte den gleichen Fehler. es ereigneten sich nur, wenn zwei Instanzen der gleichen Sitzung wurden zur gleichen Zeit verwendet werden (z.B. zwei browser-Instanzen zur selben Zeit geladen). Dies ist ein Ergebnis des php nicht in der Lage zu handhaben, zwei offene sessions mit der gleichen id zur gleichen Zeit.
InformationsquelleAutor Felix
Für diesen Umzug von einem server zum anderen. Ein weiteres Problem kann sein Benutzer, unter dem apache läuft. Ich war mit einer anderen Benutzer auf meinem alten Kasten, der festgelegt wurde auf den neuen. Ich verwendet configs von meiner alten httpd.conf, und vergessen, Sie zu aktualisieren der Berechtigungen auf /var/lib/php/session spiegeln die verschiedenen Benutzer.
Zu testen, änderte ich die Berechtigungen auf 777. Alles hat gut funktioniert, der Fehler war Weg:
Also kehrte ich die perms und verändert die Gruppe. Natürlich ändern newApacheUser auf das Benutzerkonto, das Sie laufen httpd-WENN NICHT mit apache.
Etwas heraus zu überprüfen, wenn Ihr immer noch das Problem:
InformationsquelleAutor pringlized
In diesem Fall von nutzen ist, habe ich gelöscht, dieser Fehler durch den Abschluss von session relevanten Zeilen aus meinem application/config/application.ini
Dank chelmertz für den Einblick in die Ursache des Problems.
InformationsquelleAutor ButtToffee
Es ist ein Thema geöffnet für dieses problem:
#25 "die Sitzung hat bereits begonnen wurde, durch die session.auto-start oder session_start()" Fehlermeldung ist irreführend
InformationsquelleAutor Tomáš Fejfar
Ich hatte das gleiche problem und Suche durch alle Beiträge, so auch hier, ich konnte Sie nicht finden, eine Antwort, bis ich veröffentlicht, obwohl ich hatte das gleiche, Ausnahme Ergebnis, mein Fehler war, verursacht durch etwas ganz anderes.
Ich hatte tatsächlich ein Problem mit autoloading. Weil das problem beim Bootstrap-ich glaube, das die Ausnahme verursacht hat, die oben angezeigt werden (ausblenden der realen Fehler).
Also, wenn Sie ging durch alle anderen möglichen fixes, versuchen Sie, kommentieren Sie die details in der Bootstrap Datei und sehen, ob das wird Sie Vergangenheit dieses problem. Natürlich werden Sie langsam wieder die verschiedenen Teile des bootstrap zu entdecken das eigentliche problem.
InformationsquelleAutor Arthur Frankel