CakePHP-Fr.Org

Forum francophone du Framework CakePHP

Vous n'êtes pas identifié.

#1 22-07-2009 13:43:12

alanderouen
Brownie
Date d'inscription: 16-07-2009
Messages: 26

[Terminé !] migrer mesPreps.com vers cakePHP

Bonjour à tous.

Je m'appelle Alan Crevon et je suis le créateur du site mesPreps.com que j'aimerais migrer vers cakePHP afin de rendre ce CMS "open source" et officiellement "Reconnu d'Intérêt Pédagogique" par le Ministère de l'Education Nationale français. Ce chantier sera long et difficile, mais j'espère trouver dans la communauté de cakePHP de bons conseils et pourquoi pas des collaborateurs pour ce projet.

Ce fil de discussion me servira de plan de travail, d'annonces officielles et de point de rassemblement si d'aventure d'autres développeurs souhaitent me rejoindre.

mesPreps.com : qu'est-ce que c'est ?
Il s'agit d'un CMS métier gratuit à destination des enseignants. Pour comprendre son utilité, il faut comprendre le travail des enseignants (dont je fais partie puisque je suis professeur des écoles).

Outre le travail de classe, les enseignants fournissent un ENORME travail de préparation des cours (1 heure à 1 heure 30 de préparation pour 1 heure de classe). Les préparations doivent être rédigées sur papier sous forme de "fiches de préparation" ("fiche de prep" pour les intimes). Ces fiches servent à planifier le déroulement d'un cours, à définir son objectif pédagogique, ses relations aux programmes officiels, etc... Bref, ce sont des documents longs à créer et parfois délicats à concevoir. Ils sont pourtant extrêmement importants car présentés durant les inspections des enseignants par la hiérarchie.

mesPreps.com est un système de génération en ligne de fiches de prep qui peuvent être partagées (ou non) entre les utilisateurs. C'est donc un système de partage de ressources d'enseignement et de tuyaux entre collègues enseignants.

mesPreps.com : est-ce que ça marche ?
En un an d'existence, plus de 3 000 enseignants se sont inscrits à mesPreps.com. Par conséquent, on peut dire qu'il y a une demande pour ce système et qu'il fonctionne globalement.

Pourtant, je l'ai programmé au début pour prendre en charge une trentaine, voir une cinquantaine de collègues, pas des milliers ! L'administration du site est donc un peu lourde. De plus, les utilisateurs sont demandeurs de nouvelles fonctionnalité difficiles à ajouter dans une usine à gaz. Migrer vers un framework devient une nécessité vitale.

Quelles sont les fonctionnalités principales ?
- L'utilisateur remplit un questionnaire (une fiche de prep type vierge). Le formulaire est posté à un script PHP qui crée la mise en page dynamiquement en fonction des cases laissées vierges.
- Chaque utilisateur enregistré dispose d'un classeur personnel dans lequel il trouve les fiches qu'il a créé.
- Pour chacune de ses fiche, l'utilisateur peut choisir de les ajouter ou non au classeur commun. Chaque fois qu'il partage une de ses fiches, il gagne 5 crédits.
- Chaque fois qu'un utilisateur imprime une fiche qu'il n'a pas créé, il paye 1 crédit.
- A chaque fiche, tout utilisateur peut ajouter des commentaires et/ou des documents (pour compléter, illustrer, critiquer, etc...)
- Une messagerie interne et un chat permettent aux enseignants de prendre contact entre eux.

Quels sont les points délicats à programmer ?
1) Le formulaire dynamique :
- Certains champs du formulaire peuvent être duppliqués. Par exemple, certaines classes (comme la mienne) ont plusieurs niveaux (chez moi CE2/CM1/CM2). Dans la version actuelle, un Javascript utilise un cloneNode() sur l'input "niveau", et un autre se charge de la destruction du noeud si le cloneNode a été utilisé trop de fois
(PROBLEME 1 : Ajout/suppression dynamique de champs dans le formulaire).

- Les relations aux programmes officiels sont délicats à gérer. Les programmes vont utiliser un comportement Arbre, mais ils comportent plusieurs centaines d'items, toutes les branches n'ayant pas toujours la même profondeur. Dans la version actuelle, c'est un système AJAX qui surveille une liste déroulante et qui, sur un changement, charge une seconde liste déroulante des éléments fils de l'item choisi et l'insère sous la liste déroulante mère. Ce comportement est reproduit jusqu'au bout de l'arbre des éléments fils. (Ma description n'est probablement pas très claire, mais si vous être curieux, utilisez la dans la version actuelle de mesPreps.com, ça sera plus parlant). Ho ! et j'oubliais ! Toutes les listes sont duplicables ! On peut travailler les Sciences/SVT Sciences/Environnement Français/Vocabulaire/Lexique Français/Vocabulaire/Orthographe Français/Méthodologie dans une même leçon !!!
(PROBLEME 2 : D'après un arbre de données, générer des listes déroulantes liées ou un autre système "graphiquement compact") 

- D'autres champs d'une fiche de prep ne sont pas adaptés à toutes les situations de classe (par exemple les références bibliographiques utilisées), ils peuvent donc être laissés vides. Dans la fiche mise en page, ils ne doivent pas apparaître comme une case vide.
(PROBLEME 3 : Gérer les champs NULL lors de la mise en page)

2) La gestion des utilisateurs, des droits et des crédits
- J'ai lu et appliqué le tutoriel sur la gestion des rôles utilisateurs, j'ai pas tout compris smile J'aurai besoin d'aide pour ce point là quand j'y serai !

- Un utilisateur peut éditer ses propres fiches, sauf si elles appartiennent au classeur commun.

- Un utilisateur peut ajouter ou pas ses propres fiches au classeur commun.

- Un utilisateur peut reprendre les informations d'une autre fiches, les modifier à sa sauce et sauvegarder le tout comme une autre fiche qui lui appartient (sans toucher à l'originale)

- Imprimer une fiche que l'on a pas créé coûte des points. Par conséquent, il faut créer une page particulière pour les versions imprimables, et pas seulement un CSS pour l'imprimante parce que dans ce cas, on n'aurait aucune gestion de l'accès aux versions imprimables.

Conclusion
Voilà pour ce premier post un peu long, mais nécessaire (au moins pour moi). J'ai commencé le travail de modélisation de la bdd. Je pars du principe qu'on recommence tout à 0. Je m'occuperai de la migration des données de l'ancienne base vers la nouvelle quand tout sera fini.

A la rentrée, mesPreps.com deviendra une association de type loi 1901. Si vous décidez de participer avec moi au développement, il n'y a aucun argent à se faire, juste la gloire de participer à la dernière révolution de l'Education Nationale depuis l'arrivée de la photocopieuse wink

Je suis preneur de TOUS les conseils. Je me suis un petit peu amusé avec cakePHP, mais je suis encore un vrai débutant. Donc TOUTES les idées sont les bienvenues, et merci à tous d'avance.

Amicalement,
Alan

Dernière modification par alanderouen (19-07-2010 06:18:18)

Hors ligne

 

#2 22-07-2009 14:00:22

titimaxime
Chef Pâtissier
Date d'inscription: 17-06-2009
Messages: 943

Re: [Terminé !] migrer mesPreps.com vers cakePHP

alanderouen a écrit:

Je m'occuperai de la migration des données de l'ancienne base vers la nouvelle quand tout sera fini.

Je pense que déjà tu fais fausse route (sur ce point) !
Ok, tu veux repartir de 0, c'est compréhensible. Mais comme tu as un besoin vital de garder les anciennes données, garde toujours en tête l'ancienne structure de base pour tout le temps être sûr que TOUTES les infos de l'ancienne base pourront être exportées facilement dans la nouvelle base.
Sinon, tu risque de rencontrer de gros problèmes, à un moment où il sera sûrement trop tard.

Sinon, le projet a l'air super intéressant.
Pour ma part, j'y participerais bien mais j'ai déjà beaucoup de choses sur le feu actuellement. Je vais suivre le projet de loin, je pense. Mais si tu as des questions, n'hésite pas.
Enfin, concernant Cake, je suis débutant aussi, donc pas sûr de t'être d'une grande aide ...

Hors ligne

 

#3 22-07-2009 14:15:35

avairet
Chef Pâtissier
Date d'inscription: 25-06-2008
Messages: 1320

Re: [Terminé !] migrer mesPreps.com vers cakePHP

Salut,

J'ai déplacé ton post dans le forum Projets qui me semble plus approprié.

Comme le dit titimaxine, tu dois t'assurer que les anciennes données rentreront dans la nouvelle structure. Voici un ouvrage qui parle de çà : http://littlehart.net/book/

C'est 10 euros, je l'ai acheté et c'est très riche pour expliquer comment reprendre une ancienne appli et la migrer vers Cake.

Hors ligne

 

#4 22-07-2009 15:25:41

real34
Cooker
Lieu: Toulouse
Date d'inscription: 28-06-2008
Messages: 1810
Site web

Re: [Terminé !] migrer mesPreps.com vers cakePHP

Tres bonne initiative de poster ca ici. Je ne suis pas trop interesse a titre personnel pour y contribuer (et manque aussi de temps), mais en tout cas on devrait pouvoir t'aider a avoir un environnement de collaboration.

Je pense notamment a un espace sur thechaw.com pour heberger le projet : serveur pour le code, git, wiki, systeme de ticket.
Dis nous si cela t'interesse !
Pierre

[EDIT] Apres avoir demande, il est desormais possible de creer gratuitement un espace sur thechaw (le projet doit tout de meme etre approuve ensuite). Cela se passe ici : http://thechaw.com/projects/start wink


Expert CakePHP - Co-gérant du studio web Occitech

Hors ligne

 

#5 22-07-2009 16:31:18

alanderouen
Brownie
Date d'inscription: 16-07-2009
Messages: 26

Re: [Terminé !] migrer mesPreps.com vers cakePHP

Cool ! Merci real34 ! Exactement ce dont j'avais besoin. smile

titimaxime et avairet : Je suis d'accord avec vous, migrer une structure de base est généralement une très mauvaise idée. L'ennui, c'est que vu la structure actuelle, le site ne va pas tenir la charge si je gagne encore 3000 users en 2009-2010.

Comme je l'ai dit, à la base, le projet était fait pour 30 à 50 utilisateurs (ma promo d'IUFM, en fait). De plus, j'ai appris PHP avec ce projet donc j'ai fait des erreurs de débutant ET des erreurs de projection. Pour résumer, je me suis dit "Bon, j'ai un formulaire et des données à stocker... Ok, je prends l'array $_POST, je fais une boucle foreach et je stocke dans une seule table à 2 colonnes les clés et les valeurs associées". Là je simplifie mais finalement pas tant que ça...

Donc la base à migrer ne sera pas trop méchante à faire. En gros, il suffira de lire les ligne du tableau et de les remettre dans la table qui va bien. Pas de foreign keys dans la structure actuelle, et le plus gros problème sera de vérifier le charset. On a vu pire, je pense. wink

Hors ligne

 

#6 25-01-2010 22:56:13

alanderouen
Brownie
Date d'inscription: 16-07-2009
Messages: 26

Re: [Terminé !] migrer mesPreps.com vers cakePHP

Salut à tous.

Une petite mise à jour de ce post qui commence à dater.

Le travail de re programmation avance à grand pas. Tant mieux parce que le nombre d'utilisateurs inscrit arrive à 8000... Les fonctions principales sont reprogrammées, et je n'ai qu'une seule chose à dire : j'adore cakephp. smile

J'ai quelques questions tout de même en rapport avec la sécurité : toutes mes données sont entrées librement par les utilisateurs. Dans la version actuelle, toutes les données sont filtrées par des scripts de sécurité, pour éviter notamment les injections SQL ou le cross scripting. Comment ça se passe avec cakePHP ?

alan

Hors ligne

 

#7 25-01-2010 23:30:52

Kalt
Cooker
Lieu: Caen
Date d'inscription: 27-06-2008
Messages: 1257
Site web

Re: [Terminé !] migrer mesPreps.com vers cakePHP

Quelques règles à respecter :
1. Tant que tu utilises les méthodes fournies par cake pour sauvegarder (save, saveAll, pas de requête directe avec Model::query()) les injections sql seront impossibles.
2. Tu peux t'assurer que personne n'ajoute de champs ou de valeurs à des champs qui sont dans la table mais pas dans le formulaire avec d'une part le composant Security (qui va ajouter un token construit à partir des champs et de leur valeur par défaut au chargement de la page : si ce token est différent quand on valide le form, c'est que $_POST a été manipulé) et d'autre part l'ajout d'une 'whitelist' (liste exhaustive des champs de la table à mettre à jour) aux méthodes de sauvegarde.
3. Quant aux xss la classe Sanitize contient tout ce qu'il faut pour s'en prémunir efficacement.
4. Ajoute à cela de solides règles de validation et ton appli devrait être assez imperméable.


Formation CakePHP : utilisation du framework au jour le jour.

Hors ligne

 

#8 26-01-2010 09:04:03

alanderouen
Brownie
Date d'inscription: 16-07-2009
Messages: 26

Re: [Terminé !] migrer mesPreps.com vers cakePHP

Salut Kalt et merci pour ces informations.

Je n'utilise que les méthodes cake, pour l'instant, et j'espère bien continuer comme ça.

La solution du token ne va pas fonctionner ici puisqu'il s'agit précisément de laisser l'utilisateur manipuler le formulaire dynamiquement, donc entre les champs affichés par défaut et les champs ajoutés par AJAX, quelque chose me dit que ça ne va pas vraiment fonctionner.

Je vais faire un peu de RTFM à propos de Sanitize et de la validation. Merci pour le tuyau.

Hors ligne

 

#9 26-01-2010 10:11:58

Kalt
Cooker
Lieu: Caen
Date d'inscription: 27-06-2008
Messages: 1257
Site web

Re: [Terminé !] migrer mesPreps.com vers cakePHP

Tu peux tout à fait regénérer le token à chaque requête ajax, c'est un peu contraignant mais si la sécurité est si importante pour toi...


Formation CakePHP : utilisation du framework au jour le jour.

Hors ligne

 

#10 14-03-2010 23:19:16

alanderouen
Brownie
Date d'inscription: 16-07-2009
Messages: 26

Re: [Terminé !] migrer mesPreps.com vers cakePHP

Salut tout le monde.

Ca y est ! Tout est programmé, la base de donnée est migrée, je suis officiellement passé en mode beta. C'est parti pour le bug hunting !

J'ai mis sur une copie carbonne de mon serveur de prod, tout fonctionne globalement, mais par contre mon dieu que c'est long. Particulièrement j'ai un arbre avec plus de 1700 noeuds (oui, oui, 1700... Pas trop moyen de faire autrement et c'est même parti pour grandir encore pas mal...) et cet arbre vient nourrir un système de checkboxes liés.

Le traitement de cette boucle est particulièrement couteux. Je me demandais si ça ne serait pas une bonne idée de mettre en cache ce tree.

1) Est-ce possible de mettre un élément d'un formulaire en cache ?
2) Connaissez-vous une doc un peu plus complète que le cookbook à ce sujet ?

++
alan

Hors ligne

 

#11 15-03-2010 09:21:49

Kalt
Cooker
Lieu: Caen
Date d'inscription: 27-06-2008
Messages: 1257
Site web

Re: [Terminé !] migrer mesPreps.com vers cakePHP

Déjà il ne faut pas loader les 1700 noeuds à chaque appel du form, utilise l'ajax pour charger les enfants d'un noeud quand on clique dessus (par exemple jQuery TreeView)


Formation CakePHP : utilisation du framework au jour le jour.

Hors ligne

 

#12 15-03-2010 12:14:14

real34
Cooker
Lieu: Toulouse
Date d'inscription: 28-06-2008
Messages: 1810
Site web

Re: [Terminé !] migrer mesPreps.com vers cakePHP

L'implementation du Tree Behavior le rend tres lent lorsque le nombre de noeuds augmente, notamment sur les operations de reorganisation.

Tu peux jeter un oeil a cette implementation alternative : http://bakery.cakephp.org/articles/view/btree-behavior (regardes en bas dans les commenatires une nouvelle version a ete packagee)


Expert CakePHP - Co-gérant du studio web Occitech

Hors ligne

 

#13 25-04-2010 17:45:56

alanderouen
Brownie
Date d'inscription: 16-07-2009
Messages: 26

Re: [Terminé !] migrer mesPreps.com vers cakePHP

Salut à tous.

Le projet est actuellement dans ses dernières semaines de test avant la mise en production prévue pendant le mois de juillet.

Comme je ne souhaite pas que l'adresse du serveur de test apparaisse dans les moteurs de recherche, je vous annonce que le nom du sous domaine du serveur mesPreps.com est le nom du fils de Lancelot dans la légende athurienne. Comme ça, seuls les braves ont accès à cette version tongue

Dernier petit problème technique : je cherche à faire communiquer un autre site internet avec le contenu de mesPreps.com.

J'ai un layout json pour de mes séances et j'essaie de modifier Phénix Agenda 5.01 pour qu'il lise à distance le contenu Json des fiches demandées et auto complète les champs de son formulaire. Concrètement, cela sert à remplir automatiquement l'agenda du prof à l'aide des infos déjà rentrées dans ses préparations de cours.

Sauf que puisque l'accès au layout de séance est géré par des sessions, je n'arrive pas à passer l'identification de l'utilisateur dans la requête de lecture depuis Phénix Agenda.

Cette requête fonctionne dans une page html statique  (file://bla/truc.html):

Code: php

  1. function loadJSON(idFiche)
  2.   {
  3.     var xhr=createXHR();
  4.     xhr.open("GET", "http://xxxxxx.mespreps.com/seances/cahierjournal/100",true);
  5.     xhr.onreadystatechange=function()
  6.     {
  7.       if ( xhr.readyState == 4  && xhr.status == 200)
  8.       { 
  9.               alert(xhr.responseText);
  10.               var data=eval("(" + xhr.responseText + ")");
  11.         document.getElementById("titre").value = data.titre;
  12.         document.getElementById("objectif").value = data.objectif;
  13.  
  14.       }
  15.     }
  16.     xhr.send(null);
  17.   }

mais dès qu'elle est intégrée dans une page .php sur un serveur, elle ne fonctionne plus parce que AJAX n'est pas cross domain.

Pour feinter, j'essaie de passer par un fichier .php proxy dans le domaine de Phénix Agenda qui contient la requête suivante :

Code: php

  1. $data = file_get_contents('http://xxxxx.mespreps.com/seances/cahierjournal/'.intval($_GET['id']), false, $context);

Ca semble marcher, sauf que ce qui est récupéré, c'est la page vers laquelle est redirigé un utilisateur non identifié. Si j'ai bien compris, on peut passer dans la variable $context les informations du COOKIE pour que l'identification se fasse seule, mais je ne comprends pas grand chose à cette gestion des headers.

Quelqu'un peut m'aider sur ce problème bien technique ?

alan

Hors ligne

 

#14 29-04-2010 16:50:55

alanderouen
Brownie
Date d'inscription: 16-07-2009
Messages: 26

Re: [Terminé !] migrer mesPreps.com vers cakePHP

Salut tout le monde.

Entre deux solutions, choisir la plus simple. Tant pis pour le json, j'ai trouvé une bidouille qui fonctionne assez étonnamment...

Dans Phénix, j'ai une balise <src="http://xxxxxxx.mespreps.com/seances/javascript/[id]"> et une action Javascript dans le controller de Seance des mesPreps sert un javascript taillé exprès pour Phénix. Et voilà, ça fonctionne.

Par contre, je suis toujours preneur d'une solution exploitant JSON à travers un site avec authentification par Cookie parce que ma solution n'est pas très élégante...

++
alan

Hors ligne

 

#15 11-06-2010 20:50:00

alanderouen
Brownie
Date d'inscription: 16-07-2009
Messages: 26

Re: [Terminé !] migrer mesPreps.com vers cakePHP

Salut tout le monde

Après quasiment 1 an de travail acharné, je touche au but ! Yeepee ! La mise en production aura lieu comme prévu en juillet. J'approche définitivement de la version gold du site et je suis assez fier du résultat. smile

Bon, j'ai quand même besoin de conseils en ce qui concerne une regex.

Le nom de l'utilisateur est pour l'instant validé par une règle 'alphaNumeric'. Or, j'aimerais permettre des noms classiques en français (avec accent, trait d'union et même pourquoi pas apostrophe).

Je sais que ça peut poser des problèmes de sécurité mais voyez-vous une solution acceptable à ce problème ?

alan

Hors ligne

 

#16 12-06-2010 10:08:42

pluriels
Cooker
Lieu: Lyon
Date d'inscription: 22-07-2008
Messages: 831

Re: [Terminé !] migrer mesPreps.com vers cakePHP

tu peux créer une règle personnalisée avec les caractères spéciaux.

Hors ligne

 

#17 12-06-2010 11:03:04

alanderouen
Brownie
Date d'inscription: 16-07-2009
Messages: 26

Re: [Terminé !] migrer mesPreps.com vers cakePHP

Salut pluriels

Merci pour ta réponse, mais tu penses bien que c'est directement ce que j'ai fait.

Avec 

Code: php

  1. 'rule' => "/^[\da-zA-Z \-éèêëäâàïîöôüûùñßç]+$/"

je n'ai aucun problème.

En revanche, si j'ajoute la gestion des apostrophes, ça me pose un problème de sécurité... et ça m'étonne que cakephp ne se charge pas seul de l'échappement des apostrophes. J'ai raté quelque chose ou pas ?

Hors ligne

 

#18 12-06-2010 12:15:01

pluriels
Cooker
Lieu: Lyon
Date d'inscription: 22-07-2008
Messages: 831

Re: [Terminé !] migrer mesPreps.com vers cakePHP

CakePHP fournit des outils comme Security, mais il faut effectivement utiliser sanitize etc...

Hors ligne

 

#19 10-07-2010 16:32:38

alanderouen
Brownie
Date d'inscription: 16-07-2009
Messages: 26

Re: [Terminé !] migrer mesPreps.com vers cakePHP

Salut tout le monde.

Ca y est, le grand jour est arrivé : mesPreps.com tourne maintenant officiellement sous CakePHP ! Pour moi, c'est un soulagement : l'administration est fantastiquement plus simple, quel bonheur !

Sauf que...

Avec la nouvelle version reviennent des utilisateurs qui ne s'étaient pas connectés depuis longtemps et qui ont perdu leur mot de passe. J'ai mis en place une procédure de création d'un nouveau mot de passe qui fonctionne correctement : le mot de passe attendu est bien enregistré dans la base des utilisateurs.

Sauf que le formulaire de script de login affirme que le nouveau mot de passe n'est pas le bon. Je pense que ça a à voir avec le cache : le script de login recherche peut être l'utilisateur dans son cache, où le nouveau mot de passe n'est pas pris en compte.

Pourtant, en lisant la doc, je croyais que le cache était tout de suite mis à jour après un appel UPDATE (ici via updateAll() ) sur la bdd. J'ai mal compris ?

Quoi qu'il en soit, comment règler ce problème ? Comment effacer le cache du script de login après la mise à jour du mot de passe d'un utilisateur ?

++
alan

Hors ligne

 

#20 10-07-2010 17:16:48

kamui545
Chef Pâtissier
Date d'inscription: 14-08-2009
Messages: 1638
Site web

Re: [Terminé !] migrer mesPreps.com vers cakePHP

Salut !

Ce n'est pas plutôt un oublie au niveau du Salt des passwords ? Comment hash tu tes mots de passes pour générer un nouveau mot de passe ?

Hors ligne

 

#21 11-07-2010 11:24:22

alanderouen
Brownie
Date d'inscription: 16-07-2009
Messages: 26

Re: [Terminé !] migrer mesPreps.com vers cakePHP

Salut kamui.

Pour crypter le mot de passe j'utilise bien le susteme de cryptage de Auth. J'ai même comparé le mot de passe crypté par mon script avec le même mdp crypté à la création d'un nouvel utilisateur. Ras de cecoté là.

Ce qui me fait penser à un problème de cache c'est qu'à force d'insister ça finit par fonctionner. Mais effacer le cache du model utilisateurs ne change rien et je n'arrive pas à identifier dans le tepertoire de cache un fichier en particulier qui joue là dessus.

Une autre idée peut être ?

alan

Hors ligne

 

#22 11-07-2010 12:12:42

kamui545
Chef Pâtissier
Date d'inscription: 14-08-2009
Messages: 1638
Site web

Re: [Terminé !] migrer mesPreps.com vers cakePHP

Décommente voir dans core.php la ligne ci dessous:

Code: php

  1. Configure::write('Cache.disable', true);

Histoire de voir si sa viens vraiment du cache il ne devrais pas y avoir de problème si il est désactivé

Dernière modification par kamui545 (11-07-2010 12:12:56)

Hors ligne

 

#23 13-07-2010 11:06:45

alanderouen
Brownie
Date d'inscription: 16-07-2009
Messages: 26

Re: [Terminé !] migrer mesPreps.com vers cakePHP

Salut kamui. Coucou tout le monde.

@Kamui : Ton post m'a mis sur la bonne voie, car ta méthode n'a rien changé... Enfin pas tout à fait.

Voici l'ordre dans lequel le  problème s'est produit :
1) Un utilisateur 1 génère un nouveau mot de passe aléatoire (mdp1), mis en cache par Cake.
2) Un utilisateur 2 génère un nouveau mot de passe aléatoire (mdb2) stocké en base pour l'utilisateur 2, mais la vue affiche mdp1. Mdp2 est mis en cache.
3) etc...
4) Si l'utilisateur 2 revient sur la page, il génère à nouveau un mdp3 mis en base pour son compte, mais c'est toujours mdp1 qui est affiché, mais cette fois parce qu'il est stocké dans le cache de don navigateur.

Du coup : la combinaison gagnante :
1) Jouer avec les balises <cache:nocache></cache:nocache> dans la vue du mot de passe généré aléatoirement ;
2) Envoyer les hearders qui force le chargement sans passer par le cache.

Sauf queeeeeeee...

Internet Explorer 8 a un système de cache terriblement relou. Il ignore simplement les headers... de $this->disableCache dans beforeRender()...

Quelqu'un a déjà réglé ce problème ?

alan

Hors ligne

 

#24 13-07-2010 11:33:53

xTG
Forêt noire
Date d'inscription: 19-06-2010
Messages: 115
Site web

Re: [Terminé !] migrer mesPreps.com vers cakePHP

Si cakePHP ne gère pas cela vois avec des entêtes.
Voilà des solutions mais je ne sais pas si IE les interprètes :

Code: php

  1. <meta Http-Equiv="Cache-Control" Content="no-cache"/>

Code: php

  1. <meta Http-Equiv="Expires" Content="0"/>

Code: php

  1. <meta http-equiv="Pragma" content="no-cache"/>

cakePHP version 1.3.3 stable
xTG - Petit débutant du MVC

Hors ligne

 

#25 19-07-2010 06:16:01

alanderouen
Brownie
Date d'inscription: 16-07-2009
Messages: 26

Re: [Terminé !] migrer mesPreps.com vers cakePHP

Salut xTG, salut les cuistos.

@xTG : ta méthode n'a rien changé. Franchement, je ne comprends pas ce bug. Il m'agace fortement, et puisque je ne m'en sorts pas, je vais complètement réécrire cette procédure de génération d'un nouveau mot de passe.

Merci en tout cas.

Par ailleurs, je clos ce post puisque le site n'est plus un projet mais bien une réalité et je m'en vais de ce pas le présenter dans la section idoine.

++
et merci à tous ceux qui m'ont aidé ici ou sur IRC.

alan

Hors ligne

 

Pied de page des forums

Propuls� par FluxBB
Traduction par FluxBB.fr