IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Plugins PHP Discussion :

[sfGuard Doctrine] Problème avec le Backend et le cookie


Sujet :

Plugins PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 15
    Par défaut [sfGuard Doctrine] Problème avec le Backend et le cookie
    Bonjour à tous,

    voilà je travaille depuis quelques temps à la réparation et à l'amélioration d'un site sous Symfony.

    Bien que je ne sois pas un pro en la matière, je commence à maitriser un petit peu.

    Seulement là je suis confronté à un problème que je n'arrive vraiment pas à résoudre. Le plugin utilisé pour la connexion au backend est sfGuard.

    Symptôme:
    Lorsqu'on veut se connecter au backend, il faut d'abord se loguer/déloguer sur le frontend pour ensuite pouvoir se loguer sur le backend. Sinon on revient à chaque fois sur le formulaire de login.

    La cause potentielle:

    Je pense avoir trouvé le soucis, en fait ça vient d'un cookie qui s'appelle "symfony" et qui, s'il n'est pas présent au moment du login du backend, empêche cette connexion. J'ai essayé en le supprimant via un outil du navigateur et en effet la connexion ne fonctionne plus, alors que s'il est présent ça marche nickel.

    Pourriez-vous m'aider ? Je pense que sfGuard à un petit soucis avec ça mais je ne sais franchement pas quoi, après avoir fouillé dans le code et sur le net...

    Je vous remercie par avance !

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    J'ai écris la réponse hier et ne trouve plus le sujet... Google n'est pas mon amis

    Tu as un cookie de session par application. Tu as deux applications. Mais les deux applications ont, par défaut, un cookie qui s'appelle symfony. Il suffit de mettre un nom différent pour le cookie de session de chacune des applications. D'une manière générale, et même si tu n'as qu'une application, tu as tout intérêt à modifier le nom du cookie de session.

    Pour le modifier, tu trouveras toutes les informations dans la documentation ici. Regarde du côté du paramètre session_name.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 15
    Par défaut
    Bonjour et merci pour ta réponse.

    J'ai regardé ce que tu m'as donné et j'ai donc changé le nom du cookie dans config_factories.yml.php de mon backend, et maintenant on n'arrive plus à se connecter du tout...

    Donc il a vraiment besoin de ce cookie à la connexion, mais je comprend pas pourquoi...(car logiquement il doit se créer à la connexion et pas avant).

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    As-tu fais la commande miracle après tout changement de configuration :
    symfony cc ?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 15
    Par défaut
    Je n'ai malheureusement pas accès au commandes serveur (et n'en ai de toute façon pas la compétence), ce n'est pas moi qui est installé et fait ce site à la base.

    Je vais donc essayer de voir avec la personne concerné...Merci

  6. #6
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Si tu as accès en FTP tu peux aussi supprimer tout le contenu du dossier cache (en conservant le dossier cache).

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 15
    Par défaut
    Aah !

    Bon ça c'est pas passé tout à fait comme prévu car quand j'ai supprimé le contenu du dossier cache, et ben quasiment tous les modules étaient buggés !

    Heureusement j'avais fait un backup, j'ai petit à petit restauré les fichiers pour éventuellement cerner le problème de session et j'y suis finalement arrivé.

    C'était pas les noms des cookies du backend (mais j'en ai profité pour les changer) mais une ligne de code qui était mal placé dans un fichier de conf du cache (je sais pas trop pourquoi).

    En tout cas merci beaucoup pour ton aide !

  8. #8
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Je suis heureux que cela fonctionne mais très surpris par ce que tu m'expliques ainsi que par l'erreur que tu as localisée.

    Le cache est prévu pour être régulièrement vidé et réinitialisé. Il ne peut y avoir de fichier essentiel dans le cache. Une application qui ne fonctionne plus après la vidange du cache est potentiellement très très instable.

    Je pense que tu as tout intérêt à récupérer ton application sur un poste de test et a tester la réinitialisation du cache au plus vite. Potentiellement, tu travails sur une bombe dont l'amorce est en feu et en ne connaissant ni la longueur de cette amorce ni la vitesse de combustion.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 15
    Par défaut
    Je me doute bien, c'est pour cela que je n'ai pas tout compris au départ.

    Mais pour l'instant je ne peux pas y toucher car d'une ce n'est pas moi qui est construit le site à la base (et je suis pas sûr qu'il a était bien bien construit, ça en est la preuve) et de 2 je n'ai pas le temps...

    Donc je vais laisser comme ça pour l'instant tant pis, mais merci de l'info

    Par contre j'ai un autre soucis qui n'a aucun rapport, mais peut-être que vous pourriez m'aider ici.

    Désolé d'avance si je n'utilise pas tous les bons termes

    En fait je souhaite ajouter un nouveau module au site (comme il peut y avoir les boutiques et compagnie).

    Donc j'ai crée mes objets comme il faut, j'arrive à l'instancier comme ceci:

    $chtml = new ContentHtml();

    Par contre lorsque je souhaite faire un retrievebyPk() j'ai une erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Notice: Undefined index: content_html in /homez.334/ambianceh/www/boutiquepro/lib/symfony/plugins/sfPropelPlugin/lib/vendor/propel/map/DatabaseMap.php on line 107
     
    Fatal error: Call to a member function getColumn() on a non-object in /homez.334/ambianceh/www/boutiquepro/lib/symfony/plugins/sfPropelPlugin/lib/vendor/propel/util/BasePeer.php on line 562
    "content_html" est censé être le nom de la table contenant les infos nécessaire.

    Donc je comprend que ça déconne pour l'accès à la table mais je ne comprend pas pourquoi.

    Ou faut-il définir les infos pour l'accès à la table ? J'ai pourtant créé un Mapper où il y a les autres mais il n'a pas l'air de le charger.

    Je sais pas si c'est clair mais j'espère que vous pourrez m'aider...

  10. #10
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    J'ai un peu l'impression qu'il te manque 95% de la formation de base sur l'utilisation des bases de données avec symfony...

    Il faut modifier le shema.yml, générer l'ensemble des objets qui vont autour, créer les vues pour ce nouveau contenu, générer et peaufiner et tester les outils de migration et enfin installer sur le serveur de prod...

    Bien entendu tout ce qui précède ne peut en aucun cas être fait sur le serveur en production au risque certain de perdre toutes les données de la base...

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 15
    Par défaut
    Le shema.yml est modifié, j'ai créé ces objets autour (ContentHtml, ContentHtmlPeer, BaseContentHtml, BaseContentHtmlPeer) et les vues je les créeraient plus tard (c'est pas le plus dur pour moi) je veux d'abord savoir si mes objets fonctionnent correctement.

    Je n'ai pas non plus la chance d'avoir un serveur de dev (j'ai juste une partie dev et prod sur le ftp) et je ne peux pas faire autrement. Mais j'ai une sauvegarde de ma base de données et des fichiers au cas où.

    J'ai également dût rentrer dans un projet symfony tout fait (et probablement pas tout à fait proprement) et je n'ai pas non plus le temps de faire une formation de A à Z, donc je fonctionne comme cela, je cherche sur internet et vraiment si je ne trouve pas de solutions je demande à quelqu'un et pour l'instant ça marche pas trop mal...

    Donc il pourrait me manquer quoi au juste pour que cette "connexion" fonctionne ? J'ai fouillé dans tous les fichiers mais rien ne marche...

    Si vous avez une source (tuto, exemple ou autre) je suis évidemment prenneur

  12. #12
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Tu as tout intérêt à installer un wamp sur ta machine pour développer (je ne pense pas que tu développes en ssh sur le serveur...

    Tu pourras monter autant de test et version d'essai que nécessaire.

    Il ne faut pas faire les modifications que tu envisages en modifiant les fichiers auto généré à la main, ceci n'a presque aucune chance de marcher et je ne connais personne ici qui puisse d'aider sur cette voie.

    Ces objets sont conçu pour être générer depuis le shema.yml en aucun cas pour être modifiés à la main.

    Tu as un tutoriel sur symfony et propel sur le site de sensio.

    Partir comme tu le fais c'est modifier l’alimentation en carburant de l'unique moteur de ton avions pour le passer du kérosène au gaz au dessus d'un océan plein de requin. Tu vas droit dans le mur.

    Symfony est un bel outil, mais exige des normes strictes et des étapes pour le développement, il n'est pas envisageables de les sauter, sauf à maîtriser parfaitement le framework. Personnellement, je ne le ferais pas.

    Récupère ton application en local sur ton poste et fait la tourner sur un xamp.
    Crée une copie en local sur ton poste pour la modifier
    Modifie ton shema et génère la nouvelle base
    Peuple la nouvelle base avec des fixatures en rapport
    Modifie des formes et construit ton projet.
    Après tu as deux solutions, soit tu génères et gères des "migrations" qui modifierons le projet originel, soit tu choisis de le faire à la main et tu t'écris une procédure (indispensable).
    Tu fais une troisième copie de ton original, toujours en local.
    Tu test la procédure et le changement des fichier de l'application en local.
    Si tout les tests passent bien, tu peux envisager de bien sauvegarder ton serveur de prod et d'appliquer les modifications.

    Toute autre méthode est vouée à des problèmes sans fin.

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 15
    Par défaut
    Merci pour ces infos, je comprend tout à fait ce que tu dis car je suis d'habitude très strict sur la procédure et j'essaie d'être le plus propre possible.

    Mais comme je me répète, je n'ai pas le temps pour faire tout ça. J'ai un budget (et le client ne veut pas que je le dépasse), et si je passe du temps en plus c'est pour ma pomme (d'autant que symfony ne m'intéresse pas, je préfère Zend Framework sur lequel j'étudie en ce moment qui est bien moins compliqué je trouve, donc pas d'intérêt personnel en plus).

    Or ce que tu me demandes de faire ici me prendra facilement une journée entière, et encore je pense plus, sachant que je ne suis même pas sûr de maitriser tout ça ensuite.

    Pour l'instant j'ai mis les mains dans le cambouis comme j'ai put, en rentrant dans ce projet pour réparer des petits détails, mais petit à petit le niveau augmente et il fallait bien que cela coince un jour.

    Je leur parlerai évidemment de ce problème de cache et de tout ce qui n'est pas "logique" mais je ne pense pas que ce soit leurs priorité, tant que le site fonctionne correctement (ce qui est le cas, tu me diras bizarrement peut-être).

    J'ai déjà essayé d'installer symfony sur wamp (pour un projet personnel donc en partant de 0) mais je n'ai pas réussi, je le trouve vraiment trop compliqué à installer (comparé à Zend en tout cas).

    J'ai aussi essayé d'importer ce projet (celui sur lequel je coince) dans wamp mais même problème.

    Et puis j'ai vu rapidement qu'il fallait maitriser un peu le language "serveur" ce que je ne sais que très peu faire...

    Encore une fois en temps normal j'aurais fait la même chose que toi, mais là ce n'est pas possible...A moins que je convainc le client d'augmenter le budget s'il n'y a pas d'autres solutions...

    Je vais donc voir ça, je reviendrais vers toi si j'ai des soucis en espérant que tu puisses à nouveau m'aider, merci déjà

  14. #14
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Citation Envoyé par Hultra Voir le message
    Or ce que tu me demandes de faire ici me prendra facilement une journée entière, et encore je pense plus, sachant que je ne suis même pas sûr de maitriser tout ça ensuite.
    Je pense que modifier directement le système objet généré va prendre beaucoup plus de temps...

    Sans compter qu'en ne suivant pas les méthodes "normales" de développement tu risques de mettre en danger les développeurs qui te suivraient sur cette application (qui eux se retrouveraient avec des fichiers base bidouillé et non conforme au shema.yml et, en cas de gros problème, de voir ta responsabilité engagée.

Discussions similaires

  1. Problème avec les CGI et les Cookies.
    Par Invité dans le forum Ada
    Réponses: 8
    Dernier message: 29/06/2012, 15h45
  2. Réponses: 0
    Dernier message: 26/04/2011, 16h15
  3. [doctrine]problème avec syntaxe du schema.yml
    Par flora806 dans le forum ORM
    Réponses: 3
    Dernier message: 15/03/2011, 10h19
  4. Réponses: 3
    Dernier message: 08/06/2010, 11h16
  5. [ZF 1.7] problème avec doctrine + oracle sur zendframework
    Par cornnery dans le forum Zend_Db
    Réponses: 1
    Dernier message: 09/03/2009, 17h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo