Télécharger le zip
Le genre de code qui as dut etre poster 10-20-30 fois sur PHPCS :(Pas de nouveautés, c'est le genre de code qu'ont ne reutiliserais meme pas sur son site, vu qu'il est pas du tout "portable", autemps tout reecrire soit meme pour ces besoins.En vrac :# if(isset($_POST['Inom'])) $Inom=$_POST['Inom'];# else $Inom=""; Je traduit ça sur une seul ligne (bien que sa soit plus lent):$Inom = isset($_POST['Inom']) ? $_POST['Inom'] : null;http://fr.php.net/manual/fr/language.operators.comparison.php#language.operators.comparison.ternary## $Idate="$Iyear"."-"."$Imois"."-"."$Ijour"; $Idate = $Iyear . '-' . $Imois . '-' . $Ijour;# $sql3 = "SELECT * FROM public_tbl WHERE Nom_Utilisateur='$user_name'";# $req3 = mysql_query($sql3) or die('Erreur SQL !Tu selectionne touts les champs, c'est peut etre pas nessesaire ? et si un jour ta table ait beaucoups plus de champs ?$resultat = mysql_num_rows($req3);Tu ne verifit pas si $resultat vaut quelque chose avant mysql_fetch_array()$nm=$tab["Nom"];Regles de nomage et d'indentation.# $db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());Tu aurais dut mettre les identifiants de connexions dans un fichier à part, pour faciliter ce qui aurons envie d'essayer le code.# $sql = "INSERT INTO public_tbl(Nom_Utilisateur, Mot_De_Passe, Nom, Prenom, Date_Naissance,Sexe, Commentaire) VALUES('$Iuser_name','$Ipassword','$Inom','$Iprenom','$Idate','$Isexe','$Itxt')";Ce n'est pas securiser, voir mysql_real_escape_string() , get_magic_quotes_gpc(), htmlentities() .Avec les sessions PHP sa serais mieu : http://fr.php.net/manual/fr/ref.session.phpUn index auto-incrementable sur la table membre sera trés utile.Bref, bon courage, n'hesite sourtout pas à te rendre sur php.net pour la documentation detaillé des fonctions dont je vient d'en parlé.
//$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_rowspuis si > 0 alors affectation du résultat à une variable avec mysql_fetch_arrayMais je suis peut être dans l'erreur... ?
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.
Non non tu verifie bien $resultat avant $tab= mysql_fetch_array($req3);, car là si ton $resultat vaut <= 0, ça sera pas tres jolie :)# $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); }
Oula je devrais relire ce que jecris avant de poster.....La remarque de JUKI est tout à fait justifiée
"# if(isset($_POST['Inom'])) $Inom=$_POST['Inom'];# 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êteshttp://fr.php.net/manual/fr/function.mysql-real-escape-string.phpSauf si c'est un int... à ce moment là...'SELECT ... .. . WHERE id='.(int)$maVariablePar 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_webmasterif(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 faisif(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°
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 873 873 membres 169 nouveaux aujourd'hui 16 151 membres club