Problème enregistrement d'entrée dans BDD (rapide a résourdre)

Problème enregistrement d'entrée dans BDD (rapide a résourdre) - PHP - Programmation

Marsh Posté le 28-03-2006 à 18:18:58    

Bonjour,
 
J'ai une BDD a faire concernant des o/c : Voici a quoi elle ressemble : http://www.pcgaming-fr.info/bdd/
 
Cependant avec le formulaire, rien n'est ajouté a la bdd :  
 

Code :
  1. <html>
  2. <form method="post" action="http://pcgaming-fr.info/bdd/add.php">
  3. Pseudo :<br />             <input type="text" name="pseudo" /><br />
  4. Processeur     <br />            <select>
  5.                               <option value="Opteron">Opteron</option>
  6.                               <option value="A64">Athlon64</option>
  7.                               <option value="Pentium4">Pentium4</option>
  8.         <option value="Pentium M">Pentium M</option>
  9.                            </select> <br />
  10. Modèle (ex : 3200+): <br />       <input type="text" name="nom" /><br /> 
  11. Stepping :   <br />      <input type="text" name="stepping" /><br />
  12. Fréquence en mhz :   <br />             <input type="text" name="frequence" /><br />
  13. Vcore :     <br />               <input type="text" name="vcore" /><br />
  14. MaxScreen (fréquence) :<br />    <input type="text" name="maxscreen" /><br />
  15. Cooling :    <br />              <input type="text" name="cooling" /><br />
  16. URL screen (max stable):    <br />           <input type="text" name="screen" /><br /><br />
  17.    <input type="submit" value="Valider" />
  18. </form>
  19. <br />
  20. <a href="http://www.pcgaming-fr.info/bdd">Retour</a>
  21. <?php
  22. if (isset($_POST['pseudo']) AND isset($_POST['processeur']) AND isset($_POST['nom']) AND isset($_POST['stepping']) AND isset($_POST['frequence']) AND isset($_POST['vcore']) AND isset($_POST['maxscreen']) AND isset($_POST['cooling']) AND isset($_POST['screen']))
  23. {
  24.  
  25.     $pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES);
  26.     $processeur = htmlentities($_POST['processeur'], ENT_QUOTES);
  27. $nom = htmlentities($_POST['nom'], ENT_QUOTES);
  28. $stepping = htmlentities($_POST['stepping'], ENT_QUOTES);
  29. $frequence = htmlentities($_POST['frequence'], ENT_QUOTES);
  30. $vcore = htmlentities($_POST['vcore'], ENT_QUOTES);
  31. $maxscreen = htmlentities($_POST['$maxscreen'], ENT_QUOTES);
  32. $cooling = htmlentities($_POST['cooling'], ENT_QUOTES);
  33. $screen = htmlentities($_POST['screen'], ENT_QUOTES);
  34. mysql_connect("" );
  35. mysql_select_db("" );
  36. $requete = "INSERT INTO amd VALUES ('', '$pseudo', '$processeur', '$nom', '$stepping', '$frequence', '$vcore', '$maxscreen', '$cooling', '$screen')";
  37. mysql_query($requete);
  38. mysql_close();
  39. }
  40. ?>
  41. <html>


 
Savez vous d'où cela viendrait?  :??:  
 
 
Merci encore  :jap:

Reply

Marsh Posté le 28-03-2006 à 18:18:58   

Reply

Marsh Posté le 28-03-2006 à 18:21:21    

Comme le forum foire apparemment, je vous envoie le code normalement :
 
<html>
<form method="post" action="http://pcgaming-fr.info/bdd/add.php">
Pseudo :<br />             <input type="text" name="pseudo" /><br />
Processeur     <br />            <select>
                              <option value="Opteron">Opteron</option>
                              <option value="A64">Athlon64</option>
                              <option value="Pentium4">Pentium4</option>
         <option value="Pentium M">Pentium M</option>
                           </select> <br />
Modèle (ex : 3200+): <br />       <input type="text" name="nom" /><br />    
Stepping :   <br />      <input type="text" name="stepping" /><br />
Fréquence en mhz :   <br />             <input type="text" name="frequence" /><br />
Vcore :     <br />               <input type="text" name="vcore" /><br />
MaxScreen (fréquence) :<br />    <input type="text" name="maxscreen" /><br />
Cooling :    <br />              <input type="text" name="cooling" /><br />
URL screen (max stable):    <br />           <input type="text" name="screen" /><br /><br />
   <input type="submit" value="Valider" />
</form>
<br />
<a href="http://www.pcgaming-fr.info/bdd">Retour</a>
 
<?php
if (isset($_POST['pseudo']) AND isset($_POST['processeur']) AND isset($_POST['nom']) AND isset($_POST['stepping']) AND isset($_POST['frequence']) AND isset($_POST['vcore']) AND isset($_POST['maxscreen']) AND isset($_POST['cooling']) AND isset($_POST['screen']))
{
   
    $pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES);  
    $processeur = htmlentities($_POST['processeur'], ENT_QUOTES);  
 $nom = htmlentities($_POST['nom'], ENT_QUOTES);  
 $stepping = htmlentities($_POST['stepping'], ENT_QUOTES);  
 $frequence = htmlentities($_POST['frequence'], ENT_QUOTES);
 $vcore = htmlentities($_POST['vcore'], ENT_QUOTES);
 $maxscreen = htmlentities($_POST['$maxscreen'], ENT_QUOTES);  
 $cooling = htmlentities($_POST['cooling'], ENT_QUOTES);
 $screen = htmlentities($_POST['screen'], ENT_QUOTES);
 
 
mysql_connect("localhost", "root", "" );
mysql_select_db("" );  
 
 
$requete = "INSERT INTO amd VALUES ('', '$pseudo', '$processeur', '$nom', '$stepping', '$frequence', '$vcore', '$maxscreen', '$cooling', '$screen')";
 
mysql_query($requete);
 
mysql_close();
 
}
 
?>
<html>

Reply

Marsh Posté le 28-03-2006 à 18:47:24    

Salut,
 
1.pour les <input type="text" name="nom_du_champ" ne vérifie pas l'entrée des données par un "isset" mais plutot par if($_POST['nom_du_champ']!="" )
 
2.ton select processeur n'a pas de nom! <select name="processeur"><option>....
 
3. pour verifier que ta requete a bien été executée ou plutot au cas ou la requete ne fonctionnerait pas fait comme ca:
 
4. n'utilise pas le code ascii pour faire des guillemets qui sont du code! enlève moi tous ces "&#034;"
 

Code :
  1. $requete = mysql_query("INSERT INTO amd VALUES ('', '$pseudo', '$processeur', '$nom', '$stepping', '$frequence', '$vcore', '$maxscreen', '$cooling', '$screen')" );
  2. if(!requete)
  3. {
  4. echo "Probleme requete insertion de données".mysql_error();
  5. exit;
  6. }


 
 
//n'oublies pas le "exit"!
comme ca si ca foire ben de 1, tu sais pourquoi et de 2. mysql_error() te dis pourquoi!
 
je pense que ton code devrait fonctionner maintenant.

Message cité 1 fois
Message édité par protoss_tth le 28-03-2006 à 18:59:10
Reply

Marsh Posté le 28-03-2006 à 18:56:40    

protoss_tth a écrit :

Salut,
 
1.pour les <input type="text" name="nom_du_champ" ne vérifie pas l'entrée des données par un "isset" mais plutot par if($_POST['nom_du_champ']!="" )
 
2.ton select processeur n'a pas de nom! <select name="processeur"><option>....
 
3. pour verifier que ta requete a bien été executée ou plutot au cas ou la requete ne fonctionnerait pas fait comme ca:
 
$requete = mysql_query("INSERT INTO amd VALUES ('', '$pseudo', '$processeur', '$nom', '$stepping', '$frequence', '$vcore', '$maxscreen', '$cooling', '$screen')" );
 
if(!requete)
{
echo "Probleme requete insertion de données".mysql_error();
exit;
}  
 
//n'oublies pas le "exit"!
comme ca si ca foire ben de 1, tu sais pourquoi et de 2. mysql_error() te dis pourquoi!
 
je pense que ton code devrait fonctionner maintenant.


 
Effectivement c'était bien dû au problème 2  :)  
Dans les tutos ils précisent pas toutes ces petites choses a faire qui rendent la vie plus facile donc je ne savais pas.
Sinon tu aurais un tuto sur le net pour que je m'améliore un peu? Ou meme un titre de livre  :jap:  

Reply

Marsh Posté le 28-03-2006 à 19:15:23    

hmm ben j'ai appris sur le tas avec plusieurs sites... en allemand et anglais mais je pense que  
- http://www.az-php.com/
-http://www.phpdebutant.org/article48.php
donnent quelques bons tuyaux. Pour les bons bouquins... je pense que les autres utilisateurs pourront t'aider.
 
Pour debugger:
 
-avec print_r($_POST) tu vois les valeurs Post envoyées.  
 
tu pourrais par exemple faire  
if(conditions d'envoi du formulaire)
{
}
else
{print_r($_POST);
}
 
 
 
T'as aussi print_r($_SESSION) pour les variables de session à disposition.
 
en ce qui me concerne je programme les formulaires comme ca:
 
 
if(conditions d'envoi du formulaire)
{
requetes sql ou autre
}
else
{
//à laisser pour debugger
print_r($_POST)  
code du formulaire
}
 
et je definis ma forme comme ca:
 
<FORM action="" .$_SERVER['PHP_SELF']."" method="POST" enctype="text/html" >
 
de cette facon ton formulaire est réouvert en cas d'envoi non correct.++


Message édité par protoss_tth le 28-03-2006 à 19:16:31
Reply

Sujets relatifs:

Leave a Replay

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