Sebastien Posté 28 Septembre 2006 Partager Posté 28 Septembre 2006 Existe-t-il un moyen d'afficher une page d'erreur personnalisée quand MySQL est en panne, un peu à la manière des 404 personnalisées ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 28 Septembre 2006 Partager Posté 28 Septembre 2006 Lors de ta connexion Mysql, tu fais : <?php$connexion = mysql_connect($host, $user, $pwd);if(!$connexion) Header('Location: /mysql_plante.html');?> Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sebastien Posté 28 Septembre 2006 Auteur Partager Posté 28 Septembre 2006 Merci Captain, j'utilise tel quel en adaptant juste l'URL de ma page d'erreur ? Pour Dotclear saurait tu dans quel fichier se fait la connexion ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 28 Septembre 2006 Partager Posté 28 Septembre 2006 Logiquement, oui, tu l'utilises tel quel. Par contre, comme je connais pas DotClear, je pourrai pas être absolument affirmatif. Lien vers le commentaire Partager sur d’autres sites More sharing options...
xpatval Posté 28 Septembre 2006 Partager Posté 28 Septembre 2006 Me semble que cela se situe dans dotclear/inc/classes/class.mysql.php, mais il va falloir bidouiller un peu le code de la classe xpatval Lien vers le commentaire Partager sur d’autres sites More sharing options...
smile Posté 28 Septembre 2006 Partager Posté 28 Septembre 2006 Find : function setError() { if ($this->con_id) { $this->error = mysql_error($this->con_id); $this->errno = mysql_errno($this->con_id); } else { $this->error = (mysql_error() !== false) ? mysql_error() : 'Unknown error'; $this->errno = (mysql_errno() !== false) ? mysql_errno() : 0; } } Replace function setError() { Header('Location: /mysql_plante.html'); } Mais bon c'est une solution il y'en d'autres Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sebastien Posté 28 Septembre 2006 Auteur Partager Posté 28 Septembre 2006 Merci à tous de vos suggestion. Malheureusement je serai incapable de les mettre en oeuvre ne maitrisant pas PHP... Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 28 Septembre 2006 Partager Posté 28 Septembre 2006 La version de smile est facile à mettre en peuvre, je pense. Reste à savoir dans quel fichier se trouve la fonction à remplacer. Lien vers le commentaire Partager sur d’autres sites More sharing options...
smile Posté 28 Septembre 2006 Partager Posté 28 Septembre 2006 Comme l'a souligné xpatval > dotclear/inc/classes/class.mysql.php Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sebastien Posté 28 Septembre 2006 Auteur Partager Posté 28 Septembre 2006 Merci Smile ! je vois ce que fait le nouveau code que tu m'a fournit, mais l'ancien que faisait il (en français) ? Et est-ce que sa mise en oeuvre risque de perturber Dotclear ou les plugins ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
smile Posté 28 Septembre 2006 Partager Posté 28 Septembre 2006 Aucunement, il devrait pas perturber Dotclear, la fonction erreur sans modifications indiquait le message d'erreur mysql, ici tu fais une redirection mais il faut que tu vois à l'usage si le header est bien pris en compte, je n'ai pas dotclear installé actuellement, il faut tester ... Tu peux telecharger le fichier modifié ici class.mysql.php et le remplacer, (garde l'ancienne version si t'as un problème quelconque ...) http://www.mayocrea.com/demo/tel.php?Fichi...s.mysql_new.php Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sebastien Posté 28 Septembre 2006 Auteur Partager Posté 28 Septembre 2006 Super merci beaucoup de ton aide Smile, je vais tester ça ce weekend Lien vers le commentaire Partager sur d’autres sites More sharing options...
dièse Posté 28 Septembre 2006 Partager Posté 28 Septembre 2006 Euhh c'est un peu tendu quand même... je ne me risquerai pas à ça . Avec cette modification tu empêches la navigation sur ton site quelque soit le type d'erreur que MySQL te retourne. La solution la plus propre serait de redéfinir le gestionnaire d'erreurs de php, pour personnaliser ce type d'erreur mais là ça devient beaucoup plus compliqué à développer... Lien vers le commentaire Partager sur d’autres sites More sharing options...
smile Posté 28 Septembre 2006 Partager Posté 28 Septembre 2006 C'est que Sébastien souhaitait, une page personnalisée en cas d'erreur mysql, mais en effet il ne distingue pas dans ce cas le type d'erreur. IL faut recuperer l'erreur ($this->error) , pourquoi pas en y creant un fichier log si on a pas acces à la machine, beaaucoup de possibilités, tout dépend de son souhait Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sebastien Posté 28 Septembre 2006 Auteur Partager Posté 28 Septembre 2006 Ah il y a plusieurs erreurs possibles ? En fait mon idée était de mettre une page d'erreur à destination des utilisateurs indiquant que le site est momentanément indisponible et les invitant à revenir plus tard quand MySQL est en carafe. Lien vers le commentaire Partager sur d’autres sites More sharing options...
dièse Posté 28 Septembre 2006 Partager Posté 28 Septembre 2006 Bah à priori ce que Sebastien voulait c'est un message personnalisé si MySQL est planté, donc il faudrait faire la redirection que dans le cas où la connection à la base n'est pas possible. Mais ne connaissant pas Dotclear en profondeur, même ça je ne le conseillerai pas Lien vers le commentaire Partager sur d’autres sites More sharing options...
smile Posté 28 Septembre 2006 Partager Posté 28 Septembre 2006 Oui plusieurs erreurs possibles mais de toute manière les enregistrements ne seront pas accessibles quelque soit l'erreur Lien vers le commentaire Partager sur d’autres sites More sharing options...
dièse Posté 28 Septembre 2006 Partager Posté 28 Septembre 2006 Les enregistrements de la requête en cours, mais toutes les autres requêtes peuvent s'éxécuter normalement. Les erreurs mysql ne sont pas bloquantes et le script PHP peut continuer à s'éxécuter tout à fait normalement . Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sebastien Posté 2 Octobre 2006 Auteur Partager Posté 2 Octobre 2006 Merci de votre aide j'ai mis la système en place et il est (malheureusement) à l'oeuvre actuellement : http://s.billard.free.fr/referencement Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant