probleme avec EasyPHP

probleme avec EasyPHP - PHP - Programmation

Marsh Posté le 15-01-2007 à 17:59:27    

Salut à tous,
 
J'ai un petit problème avec EasyPhp.  
Je souhaite insérer des données dans ma base de données (phpmyadmin) mais elles ne s'insèrent pas! Tout d'abord il m'avait dit que mes variables n'étaient pas déclarées. Je les ai donc déclarées (ex $nom="";).
Maintenant lorsque j'exécute ma requête, je n'ai plus de message d'erreur et lorsque que je vais voir dans ma BDD, je m'aperçois qu'il a eut un enregistrement supplémentaire ---> ligne supplémentaire avec un nouvel id_user (mon id_user a augmenté d'1) mais les champs nom et prénom ne sont pas renseigné et reste vide...
Alors je comprends pas...
 
Je sais que mon code est juste puisque je l'ai testé sur le serveur de mon école et que ça marche...
Mais j'aimerai pouvoir bosser chez moi...
 
Avez vous une idée des réglages à faire sur EasyPHP 1.8?? (j'ai essayé de descendre en version 1.7,1.6--> même résultat)
 
Merci d'avance

Reply

Marsh Posté le 15-01-2007 à 17:59:27   

Reply

Marsh Posté le 15-01-2007 à 18:07:01    

ton code :o

Reply

Marsh Posté le 15-01-2007 à 18:22:08    

Formulaire de connexion :  
<TABLE>
 <TR>
 <FORM name=formulaire method="post" action="index.php?page=inscription_confirmation">
 <input type=hidden name=page value=inscription>
  <TR>
   <TD>Votre Pseudo</TD>
   <TD><INPUT TYPE=text NAME=pseudo SIZE=35></TD>
  </TR>
  <TR>
   <TD>Tapez votre mot de passe *</TD>
   <TD><INPUT TYPE=password NAME=password SIZE=15></TD>
  </TR>
  <TR>
   <TD><INPUT type=submit name=envoyer value=envoyer></TD>
  </TR>
 </FORM>
 </TR>
</TABLE>
 
insertion :  
 
<?
include('config.php');
if (isset($_POST['envoyer']))
 {
 mysql_query("INSERT INTO utilisateur (id_user,pseudo,password) VALUE ('', '$pseudo', '$password')" );    
 echo "Bienvenue<br>".$pseudo;
 }
?>

Reply

Marsh Posté le 15-01-2007 à 18:59:36    

C'est $_POST['pseudo'] et $_POST['password'].  
 
Le code HTML du formulaire n'est pas bon, on peut pas mettre des forms au milieu de <tr> comme ça. Et les tableaux pour la mise en page c'est pas bien. On fera plutôt :

Code :
  1. <form id="formulaire" method="post" action="index.php?page=inscription_confirmation">
  2.   <div>
  3.      <label for="pseudo">Nom</label>
  4.      <input type="text" name="pseudo" id="pseudo" size="35" />
  5.   </div>
  6.   <div>
  7.      <label for="password">Mot de Passe</label>
  8.      <input type="password" name="password" id="password" size="15" />
  9.   </div>
  10.   <div>
  11.      <input type="hidden" name="page" value="inscription" />
  12.      <input type="submit" value="Envoyer" />
  13.   </div>
  14. </form>


 
Pour le code PHP, pas besoin de tester l'existence du bouton, suffit de tester la méthode HTTP. Ensuite t'as aucune vérif sur les variable, c'est dangereux, et aucun escaping. Ton fichier config.php à l'air ultra-nécessaire, donc mieux faut un require :

Code :
  1. require('config.php');
  2. if($_SERVER['REQUEST_METHOD'] == 'POST') {
  3.   $pseudo   = isset($_POST['pseudo'])   ? $_POST['pseudo']   : '';
  4.   $password = isset($_POST['password']) ? $_POST['password'] : '';
  5.   if(strlen($pseudo) > 0 && strlen($pseudo) > 0) {
  6.      mysql_query("INSERT INTO utilisateur (id_user,pseudo,password) VALUE ('', '" . mysql_real_escape_string($pseudo) . "', '" . mysql_real_escape_string($password) . "')" );   
  7.      echo 'bienvenue<br />', $pseudo
  8.   }
  9. }

Reply

Marsh Posté le 15-01-2007 à 19:33:22    

c'est cool ça marche nickel!!!
 
MERCI beaucoup Florent

Reply

Marsh Posté le 15-01-2007 à 19:53:41    

FlorentG a écrit :

C'est $_POST['pseudo'] et $_POST['password'].  
 
Le code HTML du formulaire n'est pas bon, on peut pas mettre des forms au milieu de <tr> comme ça. Et les tableaux pour la mise en page c'est pas bien. On fera plutôt :

Code :
  1. <form id="formulaire" method="post" action="index.php?page=inscription_confirmation">
  2.   <div>
  3.      <label for="pseudo">Nom</label>
  4.      <input type="text" name="pseudo" id="pseudo" size="35" />
  5.   </div>
  6.   <div>
  7.      <label for="password">Mot de Passe</label>
  8.      <input type="password" name="password" id="password" size="15" />
  9.   </div>
  10.   <div>
  11.      <input type="hidden" name="page" value="inscription" />
  12.      <input type="submit" value="Envoyer" />
  13.   </div>
  14. </form>


 
Pour le code PHP, pas besoin de tester l'existence du bouton, suffit de tester la méthode HTTP. Ensuite t'as aucune vérif sur les variable, c'est dangereux, et aucun escaping. Ton fichier config.php à l'air ultra-nécessaire, donc mieux faut un require :

Code :
  1. require('config.php');
  2. if($_SERVER['REQUEST_METHOD'] == 'POST') {
  3.   $pseudo   = isset($_POST['pseudo'])   ? $_POST['pseudo']   : '';
  4.   $password = isset($_POST['password']) ? $_POST['password'] : '';
  5.   if(strlen($pseudo) > 0 && strlen($pseudo) > 0) {
  6.      mysql_query("INSERT INTO utilisateur (id_user,pseudo,password) VALUE ('', '" . mysql_real_escape_string($pseudo) . "', '" . mysql_real_escape_string($password) . "')" );   
  7.      echo 'bienvenue<br />', $pseudo
  8.   }
  9. }



 
Bon alors pourrais-je abuser un peu plus....  :ange:  
je cherche à faire un contrôle sur mes champs et j'ai que celui du mot de passe qui fonctionne... :

Code :
  1. require('config.php');
  2. if($_SERVER['REQUEST_METHOD'] == 'POST')
  3.  {
  4.  $pseudo   = isset($_POST['pseudo'])   ? $_POST['pseudo']   : '';
  5.  $password = isset($_POST['password']) ? $_POST['password'] : '';
  6.  if(strlen($pseudo) > 0 && strlen($pseudo) > 0)
  7.     {
  8.     if($password==$password2)
  9.      {
  10.      $sql = "SELECT count(*) FROM utilisateur WHERE pseudo='$pseudo'";
  11.      $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  12.      $data = mysql_fetch_array($req);
  13.      if($data[0] == 0)
  14.       {
  15.       mysql_query("INSERT INTO utilisateur (id_user,pseudo,password) VALUE ('', '" . mysql_real_escape_string($pseudo) . "', '" . mysql_real_escape_string($password) . "')" );
  16.       echo 'bienvenue<br />', $pseudo;
  17.       }
  18.       else
  19.       {
  20.       echo "<h3><font color=red><div align=center>ERREUR: Pseudo déjà utilisé</div></font></h3>";
  21.       }
  22.      }
  23.      else
  24.      {
  25.      echo "<h3><font color=red><div align=center>ERREUR: mots de passe non identiques</div></font></h3>" ;
  26.      }
  27.     }
  28.  }


 
je sais pas si tu as une idée...car je n'ai aucun message d'erreur....
Merci :D

Reply

Marsh Posté le 16-01-2007 à 02:02:30    

si quelqu'un d'autre sait, qu'il n'hésite pas :D

Reply

Marsh Posté le 16-01-2007 à 10:44:51    

Y'a des trucs pas bon. T'as deux fois strlen($pseudo), et tu ne récupère pas $password2 comme il faut.
 
T'as bien compris mon code au moins ?

Reply

Marsh Posté le 16-01-2007 à 16:29:35    

FlorentG a écrit :

Y'a des trucs pas bon. T'as deux fois strlen($pseudo), et tu ne récupère pas $password2 comme il faut. T'as bien compris mon code au moins ?


Ben en fait j'ai juste recopier ton code (je pense avoir compris comment il fonctionnait) sans le modifier...mais en fait il faut mettre 'password' à la place du 2ème strlen(pseudo)?
Pour ce qui est de la variable password2 je la déclare juste au début mais je ne veux pas la stocker dans ma BDD. Je contrôle juste les 2 boites de texte...

Reply

Marsh Posté le 16-01-2007 à 21:25:31    

Ah oui c'est une erreur de ma part, mais que tu aurais dû corriger :D :D
 
Sinon pour password2, faut la récupérer comment j'ai fait (isset($_POST.....)

Reply

Marsh Posté le 16-01-2007 à 21:25:31   

Reply

Marsh Posté le 16-01-2007 à 22:04:14    

FlorentG a écrit :

Ah oui c'est une erreur de ma part, mais que tu aurais dû corriger :D :D
 
Sinon pour password2, faut la récupérer comment j'ai fait (isset($_POST.....)


ça y est c'est corrigé...je sais j'aurai du le faire... :whistle:  
 
mais sinon pour password2 c'est pas un problème car mon contrôle fonctionne...mais en faite je voulais contrôler le pseudo pour savoir s'il n'est pas déjà pris mais ma requête ne fonctionne pas et là je ne vois pas pourquoi  :sweat: ???

Reply

Sujets relatifs:

Leave a Replay

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