Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/04/2007, 12h31   #1
Membre actif
 
Avatar de bigltnt
 
Inscription : mars 2007
Messages : 221
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2007
Messages : 221
Points : 155
Points : 155
Par défaut [Conception] Détecter ses erreurs

Bonjour,

Je voudrais savoir comment détecter au mieux les requêtes bancales et ainsi agir avant que mon script ne continue ne et diffuse des informations en clair.

Je m'explique, voici ce que je fais:
Code :
1
2
3
4
5
6
7
 
$sql1="INSERT .....";
 
if($temp1=mysql_query($sql1))
{
    //blablabla
}
Mais voila, est-ce suffisant ?

Pourriez-vous me dire comment vous vous y prenez ? Merci !
bigltnt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 14h00   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Tester tout simplement les retours de vos fonctions, ici en particulier mysql_query, vous gérerez ainsi comme vous le souhaitez l'éventuelle erreur (rapport dans un log, par mail, redirection, fin du script, ...). C'est ce que vous semblez faire. Il y a d'autres méthodes comme passer sous silence les éventuelles erreurs (opérateur @) mais ce n'est ni propre ni conseillé et révèle un problème de "conception".

Une méthode simple est de réécrire la fonction mysql_query et d'y faire appel :
Code PHP :
1
2
3
4
5
6
7
8
9
10
11
function my_mysql_query($query) {
    $res = mysql_query($query);
    if (!$res) {
        $fp = fopen('mysql.log', 'a');
        flock($fp, LOCK_EX);
        fputs($fp, date('d/m/Y') . ' : ' . $query . ', ' . mysql_error());
        flock($fp, LOCK_UN);
        fclose($fp);
    }
    return $res;
}
PHP 5 et la programmation objet fournissent d'autres outils (héritage et exceptions) mais il faut que la couche d'interaction avec la base de données soit prévue pour (ce n'est pas le cas de l'extension MySQL et partiellement de MySQLi).
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 15h15   #3
Membre actif
 
Avatar de bigltnt
 
Inscription : mars 2007
Messages : 221
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mars 2007
Messages : 221
Points : 155
Points : 155
Très bien merci de la réponse. Je ne savais pas si je me protégeais au mieux de mes erreurs, mais apparement oui.

Merci pour les conseils et a bientot
bigltnt est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h47.


 
 
 
 
Partenaires

Hébergement Web