Aller au contenu

Page d'erreur MySQL personnalisée


Sujets conseillés

Posté

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 ?

Posté

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 ?

Posté

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

Posté

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 :)

Posté

Merci à tous de vos suggestion. Malheureusement je serai incapable de les mettre en oeuvre ne maitrisant pas PHP...

Posté

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 ?

Posté

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

Posté

Euhh c'est un peu tendu quand même... je ne me risquerai pas à ça :unsure:. 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...

Posté

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 :)

Posté

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.

Posté

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 ;)

Posté

Oui plusieurs erreurs possibles mais de toute manière les enregistrements ne seront pas accessibles quelque soit l'erreur

Posté

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 ;).

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...