Par contre htmlspecialchars(), htmlentities() ou strip_tags() sont inutile pour les requetes SQL... MySQL n'est pas sensible au html... c'est pour l'affichage qu'il faut s'en servir... pour empecher les failles XSS... par exemple quand tu fais "félécitation blabla vous êtes enregistrés"... .. .
Vérifier les retour de mysql comme le dit juki_webmaster
if(empty($user_name)) { echo 'Attention !!! User name manquant'; exit();}
elseif (empty($password)){echo'Attention !!! Mot de passe manquant';exit();}
else
{
. .. ... code ... .. .
}
Tes exit(); ne servent pas à grand chose (et c'est crade en plus) ou alors c'est ton else {} qui sert à rien... soit tu fais...
if(empty($user_name))
exit('Attention !!! User name manquant');
elseif(empty($password))
exit('Attention !!! Mot de passe manquant');
. .. ... code ... .. .
soit tu fais
if(empty($user_name))
echo 'Attention !!! User name manquant';
elseif(empty($password))
echo'Attention !!! Mot de passe manquant';
else
{
. .. ... code ... .. .
}
C'est plus logique... .. .
dans le même esprit pourquoi séparer la page de traitement du formulaire... ça peut être utile dans certains cas (exemple post sur un forum pour éviter les doublons par réactualisation de la page) mais pour ce code c'est inutile et ça augmente le nombre de fichiers pour rien... .. .
Je pense qu'il voulait plutôt dire de vérifier $req3, et pas $resultat...
Sinon, je suis totalement d'accord, ce code est vraiment très peu réutilisable, et on dirait plus un exercice personnel qu'un code pouvant être partagé avec les autres.
//$resultat = mysql_num_rows($req3);
//Tu ne verifit pas si $resultat vaut quelque chose avant mysql_fetch_array()
Quelle est l'utilité de vérifier au préalable si $resultat 'vaut quelque chose'
Moi j'ai toujours effectué un test sur le nombre de lignes retournées avec mysql_num_rows
puis si > 0 alors affectation du résultat à une variable avec mysql_fetch_array
10 janv. 2007 à 15:13
# else $Inom="";
Je traduit ça sur une seul ligne (bien que sa soit plus lent):
$Inom = isset($_POST['Inom']) ? $_POST['Inom'] : null;"
Pas d'accord... chacun fait comme il l'entend le premier exemple est valable et plus rapide qui plus est... .. .
Pour le reste comme d'hab... ATTENTION AU SQL INJECTIONS !!! .. .
Il faut utiliser mysql_real_escape_string() sur le variable servant aux requêtes
http://fr.php.net/manual/fr/function.mysql-real-escape-string.php
Sauf si c'est un int... à ce moment là...
'SELECT ... .. . WHERE id='.(int)$maVariable
Par contre htmlspecialchars(), htmlentities() ou strip_tags() sont inutile pour les requetes SQL... MySQL n'est pas sensible au html... c'est pour l'affichage qu'il faut s'en servir... pour empecher les failles XSS... par exemple quand tu fais "félécitation blabla vous êtes enregistrés"... .. .
Vérifier les retour de mysql comme le dit juki_webmaster
if(empty($user_name)) { echo 'Attention !!! User name manquant'; exit();}
elseif (empty($password)){echo'Attention !!! Mot de passe manquant';exit();}
else
{
. .. ... code ... .. .
}
Tes exit(); ne servent pas à grand chose (et c'est crade en plus) ou alors c'est ton else {} qui sert à rien... soit tu fais...
if(empty($user_name))
exit('Attention !!! User name manquant');
elseif(empty($password))
exit('Attention !!! Mot de passe manquant');
. .. ... code ... .. .
soit tu fais
if(empty($user_name))
echo 'Attention !!! User name manquant';
elseif(empty($password))
echo'Attention !!! Mot de passe manquant';
else
{
. .. ... code ... .. .
}
C'est plus logique... .. .
dans le même esprit pourquoi séparer la page de traitement du formulaire... ça peut être utile dans certains cas (exemple post sur un forum pour éviter les doublons par réactualisation de la page) mais pour ce code c'est inutile et ça augmente le nombre de fichiers pour rien... .. .
Voili voilou
@ tchaOo°
10 janv. 2007 à 14:24
La remarque de JUKI est tout à fait justifiée
10 janv. 2007 à 14:22
# $resultat = mysql_num_rows($req3);
#
#
# $tab= mysql_fetch_array($req3);
if (mysql_num_rows($req3) <= 0) { // ou !== (int)1 si ont prefere :)
// Rien
} else {
$tab = mysql_fetch_array($req3);
}
10 janv. 2007 à 13:24
Sinon, je suis totalement d'accord, ce code est vraiment très peu réutilisable, et on dirait plus un exercice personnel qu'un code pouvant être partagé avec les autres.
10 janv. 2007 à 11:46
//Tu ne verifit pas si $resultat vaut quelque chose avant mysql_fetch_array()
Quelle est l'utilité de vérifier au préalable si $resultat 'vaut quelque chose'
Moi j'ai toujours effectué un test sur le nombre de lignes retournées avec mysql_num_rows
puis si > 0 alors affectation du résultat à une variable avec mysql_fetch_array
Mais je suis peut être dans l'erreur... ?
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.