Injections SQL et htmlspecialchars() + sécurité de mon appli

Injections SQL et htmlspecialchars() + sécurité de mon appli - PHP - Programmation

Marsh Posté le 25-02-2008 à 14:14:14    

Bonjour, comme la version de PHP de mon site ne reconnait ni :
-mysqli_escape_string ni
-mysqli_real_escape_string,  
je vais utiliser htmlspecialchars. Est-ce suffisant ?


Message édité par Profil supprimé le 26-02-2008 à 18:45:18
Reply

Marsh Posté le 25-02-2008 à 14:14:14   

Reply

Marsh Posté le 25-02-2008 à 14:16:37    

C'est surtout qu'il n'y a pas l'extension mysqli d'installée, nan ?
 
htmlspecialchars est à ne surtout pas utiliser, parce qu'elle n'escape pas les quotes (') de la même manière qu'il faudrait. Elle va remplacer les quotes par " alors qu'il faut un \'.
 
Dirige-toi alors vers les PDO (si installé) ou l'extension mysql et la fonction mysql_real_escape_string

Reply

Marsh Posté le 25-02-2008 à 14:16:59    

non, ça n'a strictement aucun rapport. Le fait même que tu poses cette question montre que tu ne comprends absolument pas les problèmes que ces diverses fonctions tentent de résoudre :/

FlorentG a écrit :

C'est surtout qu'il n'y a pas l'extension mysqli d'installée, nan ?

 

htmlspecialchars est à ne surtout pas utiliser, parce qu'elle n'escape pas les quotes (') de la même manière qu'il faudrait. Elle va remplacer les quotes par " alors qu'il faut un \'.

 

Dirige-toi alors vers les PDO (si installé) ou l'extension mysql et la fonction mysql_real_escape_string


[:mlc]

 

htmlspecialchars est à ne pas utiliser parce qu'elle n'a aucun putain de rapport avec le SQL surtout [:mlc]

 

On s'en fout qu'elle escape "caca" ou "culcul" [:mlc]

Message cité 1 fois
Message édité par masklinn le 25-02-2008 à 14:17:57

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 25-02-2008 à 14:19:10    

mysql_real_escape_string => Merci, cette fonction marche...

Reply

Marsh Posté le 25-02-2008 à 14:20:24    

masklinn a écrit :

htmlspecialchars est à ne pas utiliser parce qu'elle n'a aucun putain de rapport avec le SQL surtout [:mlc]


C'était sous-entendu, fouille-caca

Reply

Marsh Posté le 25-02-2008 à 14:25:35    

FlorentG a écrit :


C'était sous-entendu, fouille-caca


Vas te faire sous-entendre ailleurs, franchement, tu réponds à un mec qui n'a même pas suffisament lu la doc de php pour réaliser que "htmlspecialchars" ça s'applique dans de la manipulation de html et non dans de la manipulation de sql, qu'est-ce qu'il pourrait bien biter d'un sous-entendu pareil [:pingouino]

 

Surtout quand en réalité ya rien de sous-entendu, juste des trucs qui sont pas dits et une justification totalement foireuse dont tout le monde se contrefout [:pingouino]

Message cité 1 fois
Message édité par masklinn le 25-02-2008 à 14:26:24

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 25-02-2008 à 14:26:54    

masklinn a écrit :

Vas te faire sous-entendre ailleurs, franchement, tu réponds à un mec qui n'a même pas suffisament lu la doc de php pour réaliser que "htmlspecialchars" ça s'applique dans de la manipulation de html et non dans de la manipulation de sql [:pingouino]


Mais c'est justement ce que je lui explique [:johneh]
 
Oh et pis merde pourquoi je répond encore [:sadnoir]

Reply

Marsh Posté le 25-02-2008 à 14:28:45    

FlorentG a écrit :


Mais c'est justement ce que je lui explique [:johneh]


C'est marrant, j'ai compté, le token "html" est présent très exactement 0 fois dans ton post. Idem pour le token "SQL" [:dawak]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 25-02-2008 à 14:29:28    

masklinn a écrit :

C'est marrant, j'ai compté, le token "html" est présent très exactement 0 fois dans ton post. Idem pour le token "SQL" [:dawak]


Dans htmlspecialchars, y'a 'html' et dans mysql_real_escape_string, y'a 'sql'. J'y peux rien si ton parser est merdique :o

Reply

Marsh Posté le 25-02-2008 à 14:37:05    

FlorentG a écrit :


Dans htmlspecialchars, y'a 'html' et dans mysql_real_escape_string, y'a 'sql'. J'y peux rien si ton parser est merdique :o


Je crois que t'as du mal avec le concept de "token" [:dawak]
 
En même temps, tu viens de PHP donc ça m'étonne pas tant que ça [:dawak]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 25-02-2008 à 14:37:05   

Reply

Marsh Posté le 25-02-2008 à 14:38:28    

masklinn a écrit :

Je crois que t'as du mal avec le concept de "token" [:dawak]
 
En même temps, tu viens de PHP donc ça m'étonne pas tant que ça [:dawak]


Bon ok, peut-être que j'ai pas été assez explicite dans mon post, peut-être que j'ai oublié de mentionné le rôle clair de chaque fonction. Mais au moins j'ai expliqué par un cas concret pourquoi c'était pas bien ce qu'il faisait. Après désolé de pas avoir ta rigueur légendaire [:spamafote]

Reply

Marsh Posté le 25-02-2008 à 14:40:59    

FlorentG a écrit :


Bon ok, peut-être que j'ai pas été assez explicite dans mon post, peut-être que j'ai oublié de mentionné le rôle clair de chaque fonction. Mais au moins j'ai expliqué par un cas concret pourquoi c'était pas bien ce qu'il faisait. Après désolé de pas avoir ta rigueur légendaire [:spamafote]


C'est pas un problème de rigueur ou de clarté, mais de réponse qui n'a aucun rapport avec l'expréssion des besoins [:dawak]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 25-02-2008 à 14:42:11    

masklinn a écrit :

mais de réponse qui n'a aucun rapport avec l'expréssion des besoins [:dawak]


Whut ? [:johneh] Je lui ai expliqué pourquoi ça allait pas, les raisons pour lesquelles la fonction qu'il voulait utiliser n'était pas dispo, et quelle fonction utiliser à la place. J'vois pas en quoi il n'y a aucun rapport avec ses besoins...

Reply

Marsh Posté le 26-02-2008 à 10:31:04    

Non mais vous avez pas bientôt fini, vous deux? [:mlc]
 
Toujours en train de vous chamailler. On dirait les deux vieux du muppet show.
 
L'auteur du post, ça fait longtemps qu'il est parti, tout content avec sa belle appli PHP passoire standard qui fera grossir les stats OWASP.
 
[:dawa]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 26-02-2008 à 13:30:42    

:lol:


---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 26-02-2008 à 17:45:00    

sircam a écrit :

Non mais vous avez pas bientôt fini, vous deux? [:mlc]

 

Toujours en train de vous chamailler. On dirait les deux vieux du muppet show.

 

L'auteur du post, ça fait longtemps qu'il est parti, tout content avec sa belle appli PHP passoire standard qui fera grossir les stats OWASP.

 

[:dawa]


 :o
Bon au lien de vous engueuler pour rien, dites-moi plutôt si il y a des problèmes de sécurité maintenant :
Index (index.php):

Code :
  1. <?php include('mysql.php');
  2. if(isset($_COOKIE['user_name']))
  3. {
  4.     $table = mysql_query("SELECT * FROM user WHERE pseudo='".mysql_escape_string($_COOKIE['user_name'])."'" );
  5.     while ($user = mysql_fetch_array($table))
  6.     {
  7.         if($user['id']==$_COOKIE['user_id'])
  8.         {
  9.             $connect=htmlspecialchars($_COOKIE['user_name']);
  10.         }
  11.     }
  12. }
  13. ?>
  14. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  15. <html xmlns="http://www.w3.org/1999/xhtml">
  16. <!-- DW6 -->
  17. <head>
  18. <!-- Copyright 2005 Macromedia, Inc. All rights reserved. -->
  19. <title>Membre</title>
  20. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  21. <link rel="stylesheet" href="http://www.montblanc-madness.com/style.css" type="text/css" />
  22. </head>
  23. <body bgcolor="#999966">
  24. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  25.     <tr>
  26.     <td width="15" nowrap="nowrap">&nbsp;</td>
  27.     <td height="60" colspan="3" class="logo" nowrap="nowrap">Montblanc Madness</td>
  28.     <td width="100%">&nbsp;</td>
  29.     </tr>
  30.  
  31.     <tr bgcolor="#ffffff">
  32.     <td colspan="5"><img src="mm_spacer.gif" alt="" width="1" height="1" border="0" /></td>
  33.     </tr>
  34.  
  35.     <tr bgcolor="#a4c2c2">
  36.     <td width="15" nowrap="nowrap">&nbsp;</td>
  37.     <td height="36" colspan="2" id="navigation" class="navText"><a href="http://www.montblanc-madness.com">ACCUEIL</a> / Membres</td>
  38.     <td>&nbsp;</td>
  39.     <td width="100%">&nbsp;</td>
  40.     </tr>
  41.  
  42.     <tr bgcolor="#ffffff">
  43.     <td colspan="5"><img src="mm_spacer.gif" alt="" width="1" height="1" border="0" /></td>
  44.     </tr>
  45.  
  46.     <tr bgcolor="#ffffff">
  47.     <td valign="top" width="15"><img src="mm_spacer.gif" alt="" width="15" height="1" border="0" /></td>
  48.     <td valign="top" width="140"><img src="mm_spacer.gif" alt="" width="140" height="1" border="0" /></td>
  49.     <td width="505" valign="top"><br />
  50.     <table border="0" cellspacing="0" cellpadding="2" width="440">
  51.         <tr>
  52.         <td class="pageName"><div align="center">Bienvenue<?php if(@$connect) echo ', '.@$connect ?> </div></td>
  53.         </tr>
  54.  
  55.         <tr>
  56.         <td class="bodyText">
  57.        <p></p>
  58.        <?php
  59.         if(!isset($connect))
  60.         {
  61.             ?><p align="center"><a href="connect.php">Connexion</a> | <a href="register.php">Inscription</a></p><?php
  62.         }
  63.         else
  64.         {
  65.             ?><p align="center"><a href="topo.php">Ecrire un topo</a> | <a href="connect.php?disconnect">Deconnexion</a></p><?php
  66.         }
  67.         ?>
  68.  <p align="center">
  69.    <a href="http://validator.w3.org/check?uri=referer" title="Page xHTML validated"><img
  70.        src="http://www.w3.org/Icons/valid-xhtml10-blue"
  71.        alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a>
  72.  </p>
  73.         <br /></td>
  74.         </tr>
  75.     </table>
  76.      <br />
  77.     &nbsp;<br />    </td>
  78.     <td valign="top">&nbsp;</td>
  79.     <td width="100%">&nbsp;</td>
  80.     </tr>
  81.  
  82.     <tr>
  83.     <td width="15">&nbsp;</td>
  84.    <td width="140">&nbsp;</td>
  85.    <td width="505">&nbsp;</td>
  86.    <td width="100">&nbsp;</td>
  87.    <td width="100%">&nbsp;</td>
  88.  </tr>
  89. </table>
  90. </body>
  91. </html>


Connexion (connect.php)

Code :
  1. <?php
  2. $connect=false;
  3. include('mysql.php');
  4. if(isset($_GET['disconnect']))
  5. {
  6.     setcookie('user_name',false);
  7.     setcookie('user_id',false);
  8.     header('location: index.php');
  9. }
  10.     $table = mysql_query("SELECT * FROM user" );
  11.     while ($user = mysql_fetch_array($table))
  12.     {
  13.         if($user['id']==$_COOKIE['user_id'] && $user['pseudo']==$_COOKIE['user_name'])
  14.         {
  15.             header('location: index.php');
  16.         }
  17.         else
  18.         {
  19.             if(@$_POST['pseudo']==$user['pseudo'] && @$_POST['password']==$user['password'])
  20.             {
  21.                 setcookie('user_name',$user['pseudo']);
  22.                 setcookie('user_id',$user['id']);
  23.                 header('location: index.php');
  24.             }
  25.         }
  26.             
  27.     }
  28. ?>    
  29. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  30. <html xmlns="http://www.w3.org/1999/xhtml">
  31. <!-- DW6 -->
  32. <head>
  33. <!-- Copyright 2005 Macromedia, Inc. All rights reserved. -->
  34. <title>Connexion</title>
  35. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  36. <link rel="stylesheet" href="http://www.montblanc-madness.com/style.css" type="text/css" />
  37. </head>
  38. <body bgcolor="#999966">
  39. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  40.     <tr>
  41.     <td width="15" nowrap="nowrap">&nbsp;</td>
  42.     <td height="60" colspan="3" class="logo" nowrap="nowrap"><br />
  43.     Montblanc Madness</td>
  44.     <td width="100%">&nbsp;</td>
  45.     </tr>
  46.  
  47.     <tr bgcolor="#ffffff">
  48.     <td colspan="5"><img src="mm_spacer.gif" alt="" width="1" height="1" border="0" /></td>
  49.     </tr>
  50.  
  51.     <tr bgcolor="#a4c2c2">
  52.     <td width="15" nowrap="nowrap">&nbsp;</td>
  53.     <td height="36" colspan="2" id="navigation" class="navText"><a href="http://www.montblanc-madness.com/">ACCUEIL</a> / <a href="index.php">Membres</a> / Connexion</td>
  54.     <td>&nbsp;</td>
  55.     <td width="100%">&nbsp;</td>
  56.     </tr>
  57.  
  58.     <tr bgcolor="#ffffff">
  59.     <td colspan="5"><img src="mm_spacer.gif" alt="" width="1" height="1" border="0" /></td>
  60.     </tr>
  61.  
  62.     <tr bgcolor="#ffffff">
  63.     <td valign="top" width="15"><img src="mm_spacer.gif" alt="" width="15" height="1" border="0" /></td>
  64.     <td valign="top" width="140"><img src="mm_spacer.gif" alt="" width="140" height="1" border="0" /></td>
  65.     <td width="505" valign="top"><br />
  66.     <table border="0" cellspacing="0" cellpadding="2" width="440">
  67.         <tr>
  68.         <td class="pageName"><div align="center">Connectez vous !</div></td>
  69.         </tr>
  70.  
  71.         <tr>
  72.         <td class="bodyText">
  73.        <?php
  74.         if($connect==false)
  75.         {
  76.             if(!empty($_POST['pseudo']) && !empty($_POST['password']))
  77.              {
  78.                 echo '<div align="center">Mot de passe ou nom d\'utilisateur incorrect</div>';
  79.             }
  80.              ?>
  81.                 <form method="post" action="register.php">
  82. <div align="center"><input type="text" name="pseudo" /> | <input type="password" name="password" /></div>
  83. <p align="center"><input type="submit" value="S'inscrire" /></p>
  84. </form>
  85.            <?php } ?>
  86.              <p align="center">
  87.    <a href="http://validator.w3.org/check?uri=referer" title="Page xHTML validated"><img
  88.        src="http://www.w3.org/Icons/valid-xhtml10-blue"
  89.        alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a>
  90.                  </p>
  91.  
  92.         <br /></td>
  93.         </tr>
  94.     </table>
  95.      <br />
  96.     &nbsp;<br />    </td>
  97.     <td valign="top">&nbsp;</td>
  98.     <td width="100%">&nbsp;</td>
  99.     </tr>
  100.  
  101.     <tr>
  102.     <td width="15">&nbsp;</td>
  103.    <td width="140">&nbsp;</td>
  104.    <td width="505">&nbsp;</td>
  105.    <td width="100">&nbsp;</td>
  106.    <td width="100%">&nbsp;</td>
  107.  </tr>
  108. </table>
  109. </body>
  110. </html>


Inscription (register.php)

Code :
  1. <?php
  2. include('mysql.php');
  3. if(isset($_COOKIE['user_name']))
  4. {
  5.     $table = mysql_query("SELECT * FROM user WHERE pseudo='".mysql_escape_string($_COOKIE['user_name'])."'" );
  6.     while ($user = mysql_fetch_array($table))
  7.     {
  8.         if($user['id']==$_COOKIE['user_id'] && $user['pseudo']==$_COOKIE['user_name'])
  9.         {
  10.             header('location: index.php');
  11.         }
  12.     }
  13. }
  14. ?>
  15. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  16. <html xmlns="http://www.w3.org/1999/xhtml">
  17. <!-- DW6 -->
  18. <head>
  19. <!-- Copyright 2005 Macromedia, Inc. All rights reserved. -->
  20. <title>Inscription</title>
  21. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  22. <link rel="stylesheet" href="http://www.montblanc-madness.com/style.css" type="text/css" />
  23. </head>
  24. <body bgcolor="#999966">
  25. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  26.     <tr>
  27.     <td width="15" nowrap="nowrap">&nbsp;</td>
  28.     <td height="60" colspan="3" class="logo" nowrap="nowrap"><br />
  29.     Montblanc Madness</td>
  30.     <td width="100%">&nbsp;</td>
  31.     </tr>
  32.  
  33.     <tr bgcolor="#ffffff">
  34.     <td colspan="5"><img src="mm_spacer.gif" alt="" width="1" height="1" border="0" /></td>
  35.     </tr>
  36.  
  37.     <tr bgcolor="#a4c2c2">
  38.     <td width="15" nowrap="nowrap">&nbsp;</td>
  39.     <td height="36" colspan="2" id="navigation" class="navText"><a href="http://www.montblanc-madness.com/">ACCUEIL</a> / <a href="index.php">Membres</a> / Inscription</td>
  40.     <td>&nbsp;</td>
  41.     <td width="100%">&nbsp;</td>
  42.     </tr>
  43.  
  44.     <tr bgcolor="#ffffff">
  45.     <td colspan="5"><img src="mm_spacer.gif" alt="" width="1" height="1" border="0" /></td>
  46.     </tr>
  47.  
  48.     <tr bgcolor="#ffffff">
  49.     <td valign="top" width="15"><img src="mm_spacer.gif" alt="" width="15" height="1" border="0" /></td>
  50.     <td valign="top" width="140"><img src="mm_spacer.gif" alt="" width="140" height="1" border="0" /></td>
  51.     <td width="505" valign="top"><br />
  52.     <table border="0" cellspacing="0" cellpadding="2" width="440">
  53.         <tr>
  54.         <td class="pageName"><div align="center">Inscrivez vous !</div></td>
  55.         </tr>
  56.  
  57.         <tr>
  58.         <td class="bodyText">
  59.        <?php if(!empty($_POST['pseudo']) || !empty($_POST['password']))
  60.                 {
  61.                     $liste=mysql_query('SELECT * FROM user');
  62.                     $i=0;
  63.                     while($nom=mysql_fetch_array($liste))
  64.                     {
  65.                         if($_POST['pseudo']==$nom['pseudo'])
  66.                         $i++;
  67.                     }
  68.                     if($i==0)
  69.                     {
  70.                         mysql_query("INSERT INTO user VALUES ('".mysql_escape_string($_POST['pseudo'])."','".mysql_escape_string($_POST['password'])."','".md5(mysql_escape_string($_POST['pseudo']).':'.mysql_escape_string($_POST['password']))."')" );
  71.                         echo 'Inscription r&eacute;ussie';
  72.                     }
  73.                     else
  74.                     {
  75.                         echo '<div align="center">Nom d\'utilisateur occup&eacute;<br />';
  76.                         echo '<a href="register.php">Recommencer</a></div>';
  77.                     }
  78.                 }
  79.               else
  80.                 {
  81.     ?>
  82. <form method="post" action="register.php">
  83. <div align="center"><input type="text" name="pseudo" /> | <input type="password" name="password" /></div>
  84. <p align="center"><input type="submit" value="S'inscrire" /></p>
  85. </form>
  86. <h2 align="center">L'inscription vous permet de cr&eacute;er des topos !</h2>
  87. <br />
  88.    <?php
  89. }
  90. ?>    
  91.  <p align="center">
  92.    <a href="http://validator.w3.org/check?uri=referer" title="Page xHTML validated"><img
  93.        src="http://www.w3.org/Icons/valid-xhtml10-blue"
  94.        alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a>
  95.  </p>
  96.      <br /></td>
  97.         </tr>
  98.     </table><br />
  99.     &nbsp;<br />    </td>
  100.     <td valign="top">&nbsp;</td>
  101.     <td width="100%">&nbsp;</td>
  102.     </tr>
  103.  
  104.     <tr>
  105.     <td width="15">&nbsp;</td>
  106.    <td width="140">&nbsp;</td>
  107.    <td width="505">&nbsp;</td>
  108.    <td width="100">&nbsp;</td>
  109.    <td width="100%">&nbsp;</td>
  110.  </tr>
  111. </table>
  112. </body>
  113. </html>
 

EDIT : fermeture d'une Div (pourtant la page était valide XHTML Transitional :o)


Message édité par Profil supprimé le 26-02-2008 à 18:04:03
Reply

Marsh Posté le 26-02-2008 à 18:56:50    

C'est pas qu'il y a des problèmes de sécurité, mais c'est le bordel à mort [:pingouino] Y'a tout qui est mélangé, et y'a plein de tableaux :(

Reply

Marsh Posté le 26-02-2008 à 18:59:25    

Donc c'est le HTML qui va pas ?

Reply

Marsh Posté le 26-02-2008 à 19:03:24    

Oui parce que 1 il est douteux et 2 il est pas séparé du php!

 

Edit :
Pourquoi faire du SELECT * pour ne récupérer qu'une seule donnée?!
Et puis coller des exit(); après des header('location: ...'); parce qu'a priori c'est plus la peine d'envoyer le contenu de la page!

 

Edit2:
Ouai en fait ya le php qui va pas non plus globalement, parce que des conditions de ce genre c'est louche :
if(!empty($_POST['pseudo']) || !empty($_POST['password']))

 

Edit3:
Non et puis c'est quoi ce test pour vérifier si le pseudo est déjà pris?! T'as jamais entendu parler de mysql_num_rows()?


Message édité par dwogsi le 26-02-2008 à 19:12:00

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 26-02-2008 à 19:06:26    

Non c'est le php :o

 

Edit : J'éclaire mes dires : http://forum.hardware.fr/forum2.ph [...] w=0&nojs=0  Le MVC ;)

 

Edit 2 : if(!empty($_POST['pseudo']) || !empty($_POST['password'])) cette condition vérifie que les champs ne sont pas vides non ? pourquoi ne pas plutot faire un test si les champs sont vides et retourner un message d'erreur dans le cas ou ?


Message édité par med365 le 26-02-2008 à 19:12:30
Reply

Marsh Posté le 26-02-2008 à 19:13:01    

Ouai enfin sans dire d'aller jusqu'au MVC, un peu de séparation ça fait pas d'mal.
Et puis un peu de logique non plus hein :o

 

La condition sus cité, vérifie si l'un ou l'autre champ n'est pas vide. En toute logique on test si les deux ne sont pas vides.


Message édité par dwogsi le 26-02-2008 à 19:14:20

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 26-02-2008 à 19:16:48    

Son site semble un projet voué à accueillir des inscriptions de membres etc... Séparer les couches ce serait pas mal ;)
 

Citation :


La condition sus cité, vérifie si l'un ou l'autre champ n'est pas vide. En toute logique on test si les deux ne sont pas vides.


 
Un login foirera dès qu'un des deux champs est vide non ? :D

Reply

Marsh Posté le 26-02-2008 à 19:19:53    

Excusez moi mais c'est ma première appli qui utilise MySql :|  

Citation :


Edit 2 : if(!empty($_POST['pseudo']) || !empty($_POST['password'])) cette condition vérifie que les champs ne sont pas vides non ? pourquoi ne pas plutot faire un test si les champs sont vides et retourner un message d'erreur dans le cas ou ?


Ok

Citation :


Non et puis c'est quoi ce test pour vérifier si le pseudo est déjà pris?! T'as jamais entendu parler de mysql_num_rows()?


Non.

Reply

Marsh Posté le 26-02-2008 à 19:23:24    

med365 a écrit :

Son site semble un projet voué à accueillir des inscriptions de membres etc... Séparer les couches ce serait pas mal ;)
 

Citation :


La condition sus cité, vérifie si l'un ou l'autre champ n'est pas vide. En toute logique on test si les deux ne sont pas vides.


 
Un login foirera dès qu'un des deux champs est vide non ? :D


Si tu regardes bien, son code vérifie le pseudo et ajoute le compte si un des deux champs est rempli.
Ça veut dire que si seul le mot de passe est rempli ou va pouvoir créer un compte dont le pseudo est vide.
 
 
http://fr.php.net/mysql_num_rows
Une query style SELECT machin FROM truc WHERE pseudo = [pseudo-saisi]
Ensuite
if(mysql_num_rows($query)==0) on insert
else on gueule pseudo déjà pris


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 26-02-2008 à 19:32:04    

Connexion MySQL (mysql.php)
http://www.miraclesalad.com/webtoo [...] ?clip=1111
Index (index.php) :
http://www.miraclesalad.com/webtoo [...] ?clip=1113
Connexion (connect.php)
http://www.miraclesalad.com/webtoo [...] ?clip=1112
Inscription (register.php)
http://www.miraclesalad.com/webtoo [...] ?clip=1114

Message cité 1 fois
Message édité par Profil supprimé le 27-02-2008 à 16:09:26
Reply

Marsh Posté le 27-02-2008 à 14:53:31    

Euh... Tu peux utiliser des trucs comme les clipboards en ligne pour poster des pages entières stp ?
Y en a une de bien : http://www.miraclesalad.com/webtools/clip.php
 
++

Reply

Marsh Posté le 27-02-2008 à 15:17:20    


Commence peut-être par réduire la portée en ne gardant que ce qui est nécessaire.
 
http://forum.hardware.fr/hfr/Progr [...] m#t1654270
 

Citation :

Il n'est pas rare que quelqu'un poste un "script" ou un "bout de code" de plusieurs centaines de lignes, en demandant à la communauté d'identifier ce qui ne va pas. Un tel pavé est rebutant et risque même de détourner des personnes motivées de votre problème.
(...)
Ce qui précède impliquera souvent un effort de votre part, parce qu'au lieu de poster le code qui pose problème, vous devriez poster le cas le simple pour reproduire votre problème.
 
Oui, cela demande du travail en plus pour vous, mais c'est une bonne chose pour ceux qui vous répondent, et c'est ce qui compte.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 27-02-2008 à 16:10:55    


Je ne comprends pas pourquoi le système est lent... Pourtant d'habitude PHP est assez rapide sur mon site!
Voila ! (j'ai aussi édité mon post plus haut)


Message édité par Profil supprimé le 27-02-2008 à 16:19:57
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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