2017-04-17 10 views
0

J'ai un comportement très étrange qui se passe dans le gâteau php.Cakephp renvoie erreur 302

Juste en production, certaines actions retournent l'erreur 302 lorsque l'utilisateur est connecté.

Je ne peux pas reproduire ce dans un environnement de développement, mais au hasard, la session meurt et le retour d'action 302.

Cette semaine se un problème dans le disque du serveur, ce serveur est d'un partenaire thirdy, et je n » Je sais s'il y a une relation entre ça. Mais je sais que le serveur est instable les derniers jours.

J'ai essayé d'enregistrer une pile, mais rien n'est consigné dans le cakephp.

La méthode de session utilise des cookies, mais ce problème se produit sans les cookies.

Mon hypothèse sont:

  1. le disque a un problème et perdre les fichiers de session.
  2. peut exister un bug dans cakephp 2.4.5 et il provoque la session perdue
  3. il ya un gobelin à l'intérieur du serveur en désordre.

Pourriez-vous m'aider? J'ai eu ce problème pendant 3 semaines.

Merci

+0

Savez-vous si l'authentification est un succès en production? à quoi ressemble votre action de connexion dans le contrôleur? –

+0

L'authentification est toujours réussie car je renvoie l'ID utilisateur de la session et l'envoie en écho sur la vue. C'est la fonction de connexion: ' // Le LoginUser est appelé après que l'utilisateur et le mot de passe sont validés sur la base de données fonction privée LoginUser ($ user) { \t \t si ($ user) { \t \t \t $ this-> logout(); \t \t \t if ($ this-> Auth> login ($ user [ 'User'])) { \t \t \t \t $ this-> refreshSession ($ user [ 'User']); \t \t \t \t return true; \t \t \t} \t \t} else \t \t \t $ result = $ this-> Utilisateur-> validationErrors; \t} ' –

+0

fonction refreshSession protégé ($ user) { \t \t $ this-> Session-> écriture ('Auth.User', $ user); \t \t // affiche Carregando par un sessão \t \t $ this-> loadModel ('Annoncer'); \t \t $ poster = $ this-> Annoncer-> find ('first', array ('conditions' => array ('Announce.int_user_id' => $ utilisateur ['int_user_id']))); $ This-> Session-> write ('Auth.Poster', @ $ poster ['Announce']); Si (@ $ this-> Cookie) $ this-> Cookie- \t} –

Répondre

1

Oui, pourraient peut-être être mis en corrélation avec la façon dont PHP fonctionne avec des sessions. PHP enregistre toutes les sessions sur un répertoire, que vous pouvez obtenir avec la fonction php_session_path: http://php.net/manual/en/function.session-save-path.php. Si ce répertoire est situé sur le disque que vous avez dit, ou est lié d'une autre manière, vous aurez des problèmes.

+0

Il n'y a pas de fonction 'PHP' appelée' php_session_path() '. Voulez-vous dire 'session_save_path()'. –

0

Le problème était le disque du serveur. Nos partenaires ont fait la migration du système vers une autre machine et maintenant tout va bien.

Merci