J'ai également eu un problème de ce type et j'ai découvert que les fichiers de session étaient verrouillés en écriture. Donc, je ne sais pas si vous exécutez votre Laravel via des trucs comme vagrant ou Docker, mais je vous conseille d'essayer de changer les droits du répertoire de session (et des fichiers bien sûr) (Lorsque vous exécutez Laravel dans une VM, vous devriez changer les droits localement et dans la VM (comme, lorsque vous partagez les fichiers via NFS)
Comme ça :
chmod -R 777 storage/framework/sessions
chmod -R 777 storage/logs
Je sais, une permission de 777 est le pire désastre que vous puissiez imaginer. Mais elles sont pratiques pour le dépannage.
Pour être sûr de ne jamais l'oublier j'ai fait un bash script. (Je l'ai appelé lalog, juste parce que je voulais effacer les fichiers journaux et définir les permissions)
Note : Veillez à l'utiliser dans le répertoire de la session. Dans config/session.php, il y a un files
déclarée avec l'emplacement. Dans mon cas :
<?php
//...........
'files' => storage_path('framework/sessions'),
//...........
Emplacement : /usr/bin/lalog (C'est un fichier, pas un répertoire)
Exécuter dans le shell en tant que lalog
#!/bin/bash
rm -rf /home/username/Projects/x/storage/logs/laravel.log
echo "Laravel log removed"
touch /home/username/Projects/x/storage/logs/laravel.log
echo "Laravel log created"
chmod -R 777 /home/username/Projects/x/storage/
echo "CHMOD 777 on Storage dir"
Attention ! Cela va permettre l'accès en écriture pour tout le monde, donc soyez prudent avec cela ! Aussi, peut-être qu'il y a des informations utiles dans le fichier journal de Laravel. (soyez sûr de regarder dans ce fichier de log avant d'exécuter mon bash script)
Aussi, je sais que c'est déjà mentionné. Mais, soyez totalement sûr que vous avez toujours
- Autoriser les cookies dans le navigateur, afin que le jeton puisse être défini dans les cookies.
- Vérifiez si vous utilisez le
@csrf
dans votre fichier de lame
Le formulaire devrait ressembler à ceci
<form method="POST" action="{{ route('login') }}">
@csrf
.......
</form>
0 votes
Avez-vous essayé d'ajouter une redirection ? Au lieu de
return;
vous pouvez appelerreturn redirect()->back();
. D'après ce que je vois, l'application n'a rien à faire après la requête post. Peut-être pouvez-vous la rediriger vers une vue après avoir traité la requête.1 votes
J'ai le même problème. Lorsque je passe à la session de base de données, cela se produit et lorsque je repasse à la session de base de données, cela se produit.
file
paraSESSION_DRIVER
en.env
il fonctionne bien. Pourquoi la session basée sur la base de données ne fonctionne-t-elle pas ?0 votes
J'ai copié votre code exact dans une nouvelle installation de Laravel 5.7. Cela a fonctionné. Il y a un problème ailleurs.
0 votes
Ce problème à cause du problème des jetons. J'ai essayé d'exécuter le même code comme ceci, mais je n'ai pas eu d'erreur. Vous devriez donner plus d'informations comme votre pilote de session, la valeur du _token affiché dans le formulaire. En outre, vous pouvez déboguer vous-même dans ce fichier
vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php
ligne 67 pour savoir pourquoi1 votes
J'ai réalisé que j'avais utilisé
sessions
table dans un but différent. Après avoir changé le nom de cette table pour un nom plus approprié et exécutéartisan session:table
et rafraîchi la migration tout fonctionne bien0 votes
J'ai testé votre code et je n'ai trouvé aucun problème. Il n'y a pas de message d'avertissement et les échos sont exacts. J'utilise également laravel 5.7.
0 votes
Les sessions sont censées expirer, donc juste pour vérifier la question évidente - combien de temps le formulaire était-il ouvert avant que vous le soumettiez ? Quelle est la valeur de
lifetime
enconfig/session.php
?0 votes
Puisque l'auteur de l'OP n'est pas intervenu pour dire ce qui a résolu son problème. Je vois beaucoup de solutions ici qui n'ont pas résolu le problème que j'avais. Je l'ai résolu différemment, donc aucune réponse n'est correcte, je suppose. Elles peuvent toutes être correctes dans des scénarios différents. C'est pourquoi je maintiens mon offre de prime.
0 votes
Vous pouvez ajouter une réponse qui a résolu votre problème à moins qu'elle ne soit référencée dans une réponse ici (parce qu'elle n'a pas de sens). Et selon la réponse qui vous a le plus plu/la plus appropriée pour les futurs PO, vous pouvez attribuer la prime, car vous ne pouvez en aucun cas récupérer les points de prime.
0 votes
si vous devez exclure votre route de réponse de la protection CSRF.
0 votes
stackoverflow.com/questions/37806762/