Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 20-05-2011 16:23:20

bob666
Nouveau membre
Date d'inscription: 20-05-2011
Messages: 2

deconnexion intempestive

bonjour,
je suis un peu (beaucoup) newbie dans la communauté Zend mais j'ai un problème à vous soumettre.
dans un premier temps je m'excuse si une discussion existe déjà sur mon sujet et je serais fort content d'obtenir le réference de cette discussion. Toutefois j'ai fait une recherche sur le forum et celle-ci n'a rien donnée.

voici enfin mon problème (je sens que certains s'impatiente! :):
je subis sur mon site des déconnexions intempestive, j'entends par là qu'elles ne sont pas systématique et qu'un click sur un lien peut provoquer la deconnexion de la session.

Le site a été fait par 1 préstataire quin'est plus dans l'entreprise ou je suis.

le message d'erreur est le suivant dans les logs:
"[2011-20-05 16:13:20] [DEBUG] [172.19.10.140] [pas d'utilisateur] welcome : ACCUEIL
[2011-20-05 16:13:20] [DEBUG] [172.19.10.140] [pas d'utilisateur] welcome : TENTATIVE DE CONNECTION
[2011-20-05 16:13:20] [DEBUG] [172.19.10.140] [pas d'utilisateur] welcome : Identifiant : 775001337
[2011-20-05 16:13:20] [DEBUG] [172.19.10.140] [pas d'utilisateur] welcome : Succès de la tentative de connexion
[2011-20-05 16:13:20] [DEBUG] [172.19.10.140] [mid=775001337, login=77500133701] welcome : ACCUEIL"

(là, je fais 2 ou 3 clicks sur le site et je me retrouve deconnecté du site)

"[2011-20-05 16:13:22] [ERR] [172.19.10.140] [pas d'utilisateur] error : Pas de controleur
[2011-20-05 16:13:22] [ERR] [172.19.10.140] [pas d'utilisateur] error : #0 /var/www/Ingenico/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#1 /var/www/Ingenico/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()
#2 /var/www/Ingenico/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#3 /var/www/Ingenico/public/index.php(26): Zend_Application->run()
#4 {main}
[2011-20-05 16:13:22] [ERR] [172.19.10.140] [pas d'utilisateur] error : Invalid controller specified (SFR.gif)
[2011-20-05 16:13:22] [ERR] [172.19.10.140] [pas d'utilisateur] error : Pas d'action
[2011-20-05 16:13:22] [ERR] [172.19.10.140] [pas d'utilisateur] error : #0 /var/www/Ingenico/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#1 /var/www/Ingenico/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch()
#2 /var/www/Ingenico/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#3 /var/www/Ingenico/public/index.php(26): Zend_Application->run()
#4 {main}
[2011-20-05 16:13:22] [ERR] [172.19.10.140] [pas d'utilisateur] error : Invalid controller specified (SFR.gif)
[2011-20-05 16:13:22] [DEBUG] [172.19.10.140] [pas d'utilisateur] welcome : ACCUEIL
[2011-20-05 16:13:22] [DEBUG] [172.19.10.140] [pas d'utilisateur] welcome : AFFICHAGE DU FORMULAIRE DE CONNECTION
[2011-20-05 16:13:23] [DEBUG] [172.19.10.140] [pas d'utilisateur] welcome : ACCUEIL
[2011-20-05 16:13:23] [DEBUG] [172.19.10.140] [pas d'utilisateur] welcome : AFFICHAGE DU FORMULAIRE DE CONNECTION"

Les logs ont été retravaillés car les vrais logs zend n'étaient pas interpretable pour moi. somme toutefois on voit bien les erreurs zend.

je ne comprends pas pourquoi je perds les infos utilisateurs et pourquoi je peux obtenir le message "error : Invalid controller specified (SFR.gif)", sachant que SFR.gif est une image.

quelqu'un aurait une piste svp?

merci d'avance pour vos retours

bob

Hors ligne

 

#2 22-05-2011 13:24:49

Doubleslash
Membre
Date d'inscription: 28-05-2010
Messages: 10

Re: deconnexion intempestive

Hello,
Il faut savoir que les sessions, par défaut, sont stocké dans le dossier temporaire de php.
Si celui-ci déborde, il est automatiquement vidé. Je n'ai jamais vraiment cherché à comprendre pourquoi avec précision. Si tu es en hébergement mutualisé, et que PHP est partager entre tous les utilisateurs ça se remplit encore plus vite !

Il me semble effectivement que le sujet a été abordé, et la solution était (de mémoire) celle que j'utilise à présent : il faut changer le répertoire ou Zend stock tes sessions. Par exemple, créer un dossier data/sessions à la racine de ton projet me parait être une solution assez propre.

Si tu charge un fichier application.ini comme dans la plupart des tutos, et que tu le charge pour définir ton application, tu peux ajouter ceci :

Code:

; Sessions
resources.session.save_path = APPLICATION_PATH "/../data/sessions"; ton répertoire de sessions
resources.session.use_only_cookies = true; utilisation des cookies
resources.session.remember_me_seconds = 86400; ici tu défini la durée en seconde (24h ici ;)).

le ; c'est pour ajouter des commentaires

Puis dans ton boostrap, tu charges ces valeurs de sessions directement dans les options static des sessions :

Code:

[lang=php]
protected function _initSession()
    {   $options = $this->getOptions();
        Zend_Session::setOptions($options['resources']['session']);
}

Il faudra penser à faire un système de garbage pour dégager les sessions expirées de ton dossier, je n'ai pas fait attention au fait qu'il puisse être automatique... donc dans le doute... il y en a pour 5 minutes pour faire un petit script et balancer un cron tous les soirs wink

Est-ce bien la solution attendue ? wink

Edit : Et pour ton soucis de gif qui n'a pas de controller, si tu utiliser bien un fichier .htaccess correct, c'est que le fichier n'est pas dans le bon répertoire : comme il n'existe pas, apache route l'utilisateur vers l'index.php, qui lui tente de chercher un controller. CQFD.

.htaccess :

Code:

#   Redirections actives + Symlinks
    Options +FollowSymLinks
    RewriteEngine On

#   Si le fichier n'existe pas , on ne redirige
    RewriteCond %{REQUEST_FILENAME} !-s
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^.*$ index.php [NC,L]

Dernière modification par Doubleslash (23-05-2011 00:43:53)

Hors ligne

 

#3 23-05-2011 10:35:02

bob666
Nouveau membre
Date d'inscription: 20-05-2011
Messages: 2

Re: deconnexion intempestive

merci pour ton aide Doubleslash.

je contrôle et test la solution sur les sessions.

encore merci.

pour le gif c'est un peu plus bizarre que cela car l'image s'affiche bien :S

Hors ligne

 

#4 24-05-2011 03:07:02

Doubleslash
Membre
Date d'inscription: 28-05-2010
Messages: 10

Re: deconnexion intempestive

Pas de quoi, en espérant que la réponse soit la bonne wink
Pour ce qui est du gif : peut-être est-il appelé à deux endroits, dont un avec une erreur ? Par exemple dans un CSS (ça peut suffire). Mais il est forcément quelque part (tu as peut-être un controller qui gère les erreurs et qui contient un appel de ce gif ?).

Si tu utiliser un bon IDE (comme netbeans que je te recommande chaudement), tu peux faire une recherche sur toute ton application pour "SFR.gif", tu verra bien qui essaie de l'appeler wink

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages