Bevor Sie unten lesen, stellen Sie sicher, dass Sie @csrfoder {{ csrf_field() }}in Ihrer Form
mögen
<form method="post">
@csrf <!-- {{ csrf_field() }} -->
... rest of form ...
</form>
Die Fehlermeldung "Sitzung abgelaufen" oder "Seite abgelaufen" in larvel wird angezeigt, weil irgendwo die Überprüfung Ihres CSRF-Tokens fehlschlägt, was bedeutet, dass die App\Http\Middleware\VerifyCsrfToken::classMiddleware bereits aktiviert ist. In der Form ist die @csrfBlade-Direktive bereits hinzugefügt, was ebenfalls in Ordnung sein sollte.
Der andere zu überprüfende Bereich ist die Sitzung. Die csrfToken-Überprüfung ist direkt mit Ihrer Sitzung verbunden. Daher möchten Sie möglicherweise überprüfen, ob Ihr Sitzungstreiber funktioniert oder nicht, z. B. wenn ein falsch konfigurierter Redis ein Problem verursacht.
Möglicherweise können Sie versuchen, Ihren Sitzungstreiber / Ihre Sitzungssoftware aus Ihrer .envDatei zu wechseln. Die unterstützten Treiber sind unten angegeben
Unterstützte Session-Treiber in Laravel 5, Laravel 6 und Laravel 7 (Doc Link)
file - Sitzungen werden in Speicher / Framework / Sitzungen gespeichert.
cookie - Sitzungen werden in sicheren, verschlüsselten Cookies gespeichert.
database - Sitzungen werden in einer relationalen Datenbank gespeichert.
memcached/ redis- Sitzungen werden in einem dieser schnellen, Cache-basierten Speicher gespeichert.
array - Sitzungen werden in einem PHP-Array gespeichert und nicht beibehalten.
Wenn Ihr Formular nach dem Wechseln des Sitzungstreibers funktioniert, stimmt etwas mit diesem bestimmten Treiber nicht. Versuchen Sie, den Fehler von dort aus zu beheben.
Mögliche fehleranfällige Szenarien
Wahrscheinlich funktionieren dateibasierte Sitzungen aufgrund von Berechtigungsproblemen mit dem /storageVerzeichnis möglicherweise nicht (ein schnelles Googeln bringt Ihnen die Lösung). Denken Sie auch daran, dass 777 für das Verzeichnis niemals die Lösung ist.
Im Fall des Datenbanktreibers ist Ihre DB-Verbindung möglicherweise falsch oder die sessionsTabelle ist möglicherweise nicht vorhanden oder falsch konfiguriert (der falsche Konfigurationsteil wurde gemäß dem Kommentar von @Junaid Qadir als Problem bestätigt).
redis/memcached Die Konfiguration ist falsch oder wird gleichzeitig von einem anderen Code im System manipuliert.
Es ist möglicherweise eine gute Idee, php artisan key:generateeinen neuen App-Schlüssel auszuführen und zu generieren, der wiederum die Sitzungsdaten löscht.
Clear Browser Cache HARD , ich fand, dass Chrome und Firefox mehr als ich mich erinnern kann ein Schuldiger sind.
Lesen Sie mehr darüber, warum Anwendungsschlüssel wichtig sind
return;können Sie anrufenreturn redirect()->back();. Soweit ich sehen kann, hat die App nach der Post-Anfrage nichts mehr zu tun. Möglicherweise können Sie es nach der Verarbeitung der Anforderung in eine Ansicht umleiten.