Problème très bizarre :S [PHP/MySQL] - SQL/NoSQL - Programmation
Marsh Posté le 28-10-2007 à 17:56:58
effectivement le problème vient peut être de l'hébergeur mais c'est étrange qu'il mette plusieurs heures à prendre en compte les changements dans la BDD ... o_O
Marsh Posté le 28-10-2007 à 17:58:54
Pourtant dans phpMyAdmin les données sont bien actualisés...
je vais leur envoyer un e-mail pour voir ce qu'ils vont dire, mais c'est vraiment n'importe quoi
Marsh Posté le 28-10-2007 à 18:51:52
Oui et je n'ai pas prévu de cache, car en fait seulement 2 pages nécessite l'appui d'une base de donnée.
Comme je vous dis, tout fonctionnait sans problème en mars dernier et je faisais souvent des modifications aux données qui étaient refletées sans problème
Marsh Posté le 30-10-2007 à 00:32:05
Je viens de faire un test:
J'ai fais une copie identique de mon site (fichiers + DB) sur un autre hébergeur.
Sur un moniteur, j'ai ouvert le site depuis les 2 serveurs. Sur l'autre moniteur, j'ai ouvert phpMyAdmin des 2 serveurs.
Je fais exactement la même manipulation dans la base de donnée. Résultat: chez online.net, je refresh et je ne vois aucun changement dans ma page! Chez mon autre hébergeur, aucun problème!
Online.net me répond tout simplement qu'ils n'ont rien changé si ce n'est que changer de version de MySQL...
Marsh Posté le 31-10-2007 à 14:28:15
J'ai déjà entendu parler de ce genre de problèmes.
Il y a peut de temps, une personne ici se plaignait que lorsqu'elle mettait à jour ses fichiers PHP, il lui fallait attendre des heures (ou le lendemain) avant de voir effectivement les modifications.
Il y a plusieurs explications plausibles, que ce soit d'un point de vue sécurité, sauvegarde ou performances.
L'histoire du cache est évidement la première à vérifier :
- Utilisation de variables de session/application dans ton code PHP afin d'économiser des requêtes, mise en place d'un système de cache (étrange) sur le SGBD, etc.
Mais aussi :
- PHPMyAdmin tape peut-être dans une base différente de la tienne : la base gérée par PHPMyAdmin est répliquée à interval régulier sur la base utilisée par le site. C'est une mesure de sauvegarde/sécurité bien pourrie, mais qui est peut-être en place chez cet hébergeur.
- Cache sur le serveur WEB : lorsqu'il détecte que tu demandes la même chose, il n'exécute pas le PHP, mais redonne ce qu'il avait envoyé la dernière fois.
=> Pour le dernier point, le plus plausible, il y a un moyen simple de vérifier : lorsque tu es sur une page "non rafraîchie", rajoute un paramètre bidon dans l'url.
Genre ta page c'est :
article.php?idarticle=5
change en :
article.php?idarticle=5&putaindecachedemerde=vatefairefoutre
=> ainsi, le serveur apache détecte que tu as demandé potentiellement autrechose, et force la rééxécution de la page.
C'est un problème courant sur IIS, mais y'a pas de raison pour qu'il n'existe pas sous PHP.
Marsh Posté le 31-10-2007 à 14:30:44
Merci beaucoup pour ces pistes de solutions! Je vais tenter cela ce soir!
Marsh Posté le 31-10-2007 à 19:39:13
Eh voilà, j'ai fais les tests sans succès
-Variable de session ou système de cache dans mon code: je n'utilise rien de tel et en ouvrant un autre navigateur (IE et Firefox) normalement un nouvelle session est démarrée donc si j'avais un problème de variables de session je le saurais rapidement
-phpMyAdmin agit directement sur la bonne DB
-cache sur le serveur web: j'utilise l'url rewritting donc j'ai pensé peut-être à un problème de ce côté, j'accède directement à mes pages via l'adresse blabla.php et ca ne change rien. J'ai tenté d'ajouter des paramètres bidons et ca ne change rien.
En fait, online.net a fait un fichier tout test tout bête qui intérroge la 1ière entrée dans une de mes tables et avec ce fichier ca fonctionne sans problème, donc je ne sais vraiment plus quoi penser... pourtant mon code est ultra simple
Marsh Posté le 31-10-2007 à 19:43:25
Ca y est j'ai identifié le problème... vraiment zarbi comme truc!
En mars dernier, quand je travaillais sur mon site, le nom d'utilisateur et le nom de ma DB était du type : domaine.com
Dans le fichier test proposé par Online, j'ai remarqué qu'ils utilisaient plutôt "domainecom" (sans le point) et effectivement sur phpMyAdmin je dois maintenant entrer un nom d'utilisateur sans point.
J'ai changé mon fichier config et voilà tout fonctionne!
C'est tout de même curieux... mes scripts peuvent accéder la DB avec l'ancien nom d'utlisateur et il semble que ce soit une DB distincte de celle qu'on accède via phpMyAdmin
Merci bien pour votre aide!
Marsh Posté le 28-10-2007 à 15:09:56
Bonjour,
J'ai un site herbegé chez online.net en PHP avec une base de donnée MySQL. Mon site fonctionnait sans problème en mars 2007 dernier. Depuis mars dernier, je n'y avais pas retouché (c'est le site d'un Festival annuel donc). Cette semaine, j'ai recommencé à travailler dessus et j'ai un problème très bizarre.
Sans modifier aucunement le code PHP de mon site qui fonctionnait très bien avant, je change des données directement dans la base de donnée via phpMyAdmin et le truc vraiment bizarre est que ces changements ne sont pas refletés dans ce que je vois sur le site ensuite :| Il faut attendre plusieurs heures avant de voir les changements...
Bien évidemment j'ai pensé tout de suite à un problème de cache... j'ai essayé de vider ma cache, de prendre un autre navigateur, de prendre un autre pc, de passer par un proxy, rien n'y fait :|
Je ne suis pas un spécialiste, mais j'ai tout de même fait quelques petites sites en PHP et j'hallucine devant ce problème
Est-ce que vous avez une idée? Est-ce que Online peut avoir modifier ses services et avoir installé une sorte de cache de son côté?