vérification formulaire

vérification formulaire - PHP - Programmation

Marsh Posté le 06-07-2005 à 22:12:46    

Salut à tous,
 
alors je voudrais faire une verification dans un formulaire mais je ne vois vraiment pas comment faire.
j'espère que vous pourrez m'aider
 
Je voudrais faire une vérification avant validation sur le fait que si un champs renseigné par l'utilisateur existe déjà dans la bdd, cela affiche un message d'erreur.
c'est pour éviter le fait que certaines personnes s'enregistrent plusieurs fois avec les mêmes données.
 
ce que je pense faire :
 
- une requête sql sur les champs concernés
 

Code :
  1. $mysql_link = mysql_connect($host,$login,$pass);
  2. mysql_select_db($base, $mysql_link);
  3. $query1 = "SELECT champs1,champs2 FROM matable";
  4. $mysql_result = mysql_query($query1, $mysql_link);
  5. while($row = mysql_fetch_row($mysql_result)) {
  6.         $variable1 = $row[1];
  7.         $variable2 = $row[2];
  8. }


 
- et ensuite
 

Code :
  1. if(isset($variable1))
  2. {
  3. print("cet enregistrement existe déjà" );
  4. }
  5. if(isset($variable2))
  6. {
  7. print("cet enregistrement existe déjà" );
  8. }
  9. else
  10. {
  11. print("enregistrement effectué" )
  12. }


 
 
mais bon cela ne focntionne pas avez-vous une idée ?
 
merci d'avance


Message édité par twisted le 06-07-2005 à 22:14:36
Reply

Marsh Posté le 06-07-2005 à 22:12:46   

Reply

Marsh Posté le 07-07-2005 à 00:50:05    

Code :
  1. //connexion MySQL
  2. $pseudo=$_POST['ChampPseudo'];
  3. $r=mysql_fetch_array(mysql_query("select * from table where champPseudo='$pseudo'" ));
  4. if(mysql_affected_rows()>=1)) echo "Ce pseudo est déjà utilisé";

Reply

Marsh Posté le 07-07-2005 à 07:44:44    

Avec mysql_num_rows, c'est mieux.
 
Et avec un mysql_real_escape_string, aussi.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 07-07-2005 à 13:50:09    

Pourquoi "c'est mieux" ? Si tu contredis quelqu'un, fais-lui au moins l'honneur d'argumenter.

Reply

Marsh Posté le 07-07-2005 à 15:19:42    

Ben pour mysql_affected_rows, suffit d'aller voir la doc... Je pensais que t'avais fait une erreur d'étourderie donc j'ai pas trouvé ça nécessaire de préciser pourquoi. Un select n' "affecte" aucun tuple.
 
Le mysql_real_escape_string, suffit aussi d'aller voir la doc, ça protège d'une injection SQL, ce qui est particulièrement indispensable pour ce genre de requêtes...


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 07-07-2005 à 18:03:27    

Tu es sur mysql_real_escape_string est encore indispensable ? Avec magic_quotes on dans php.ini plus besoin d'échapper les quotes. (il me semble)

Reply

Marsh Posté le 07-07-2005 à 18:11:56    


 
Ben il échappe pas que les quotes.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 07-07-2005 à 18:21:37    

Merci bcp Akn c'est exactement ce que je voulais.
mais tu as mis en parenthèse de trop sur la 4ème ligne :
 
if(mysql_affected_rows()>=1))  
==>
if(mysql_affected_rows()>=1)
 
voilà, je corrige pour ceux qi liront ce topic plus tard.
merci à tous pour vos réponse :-)

Reply

Marsh Posté le 07-07-2005 à 18:23:24    

twisted a écrit :

Merci bcp Akn c'est exactement ce que je voulais.
mais tu as mis en parenthèse de trop sur la 4ème ligne :
 
if(mysql_affected_rows()>=1))  
==>
if(mysql_affected_rows()>=1)
 
voilà, je corrige pour ceux qi liront ce topic plus tard.
merci à tous pour vos réponse :-)


 
Essaie de les lire toutes alors. [:spamafote]  
 
mysql_affected_rows ne marche pas ici. Il faut mysql_num_rows à la place.


Message édité par sielfried le 07-07-2005 à 18:23:35

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 07-07-2005 à 22:51:20    

lol s'il dit que ça marche :-/


Message édité par Profil supprimé le 07-07-2005 à 22:52:28
Reply

Marsh Posté le 07-07-2005 à 22:51:20   

Reply

Marsh Posté le 07-07-2005 à 22:53:57    

Bah il se trompe.
 
edit: après vérification, ça marche effectivement, sûrement que la fonction agit comme mysql_num_rows pour du SELECT. M'étonne pas de PHP, tiens. ;)
Pas sûr que ça marche sur toutes les versions de PHP, c'est pas dans la doc de php.net en tout cas.
 
Reste que mysql_num_rows serait plus logique, lisible et propre.


Message édité par sielfried le 07-07-2005 à 22:58:25

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed