Prob d'envoi à la BDD ???

Prob d'envoi à la BDD ??? - PHP - Programmation

Marsh Posté le 18-02-2007 à 21:49:53    

Salut! :p
 
Voilà, j'ai fait un site sur le TI-Basic, et je propose aux membre de mettre leurs prgm en ligne.
 
Le probléme, c'est qu'une foie avoir entré les données, rien est envoyé à la BDD.
 
Je vais seulement mettre le code ou je pense que çà bloque:  
 

Code :
  1. <?php
  2. $time = time();
  3. mysql_connect("localhost", "xxx", "xxx" );
  4. mysql_select_db("xxx" );
  5. if (isset($_POST['nom']) AND isset($_POST['auteur']) AND isset($_POST['jours']) AND isset($_POST['moi'])
  6. AND isset($_POST['annee'])  AND isset($_POST['code']) AND isset($_POST['message']) AND $_POST['nom'] != NULL
  7. AND $_POST['auteur'] != NULL AND $_POST['jours'] != NULL AND $_POST['moi'] != NULL AND $_POST['annee'] != NULL
  8. AND $_POST['code'] != NULL)
  9.       {
  10.       $nom = htmlentities ($_POST['nom'], ENT_QUOTES);
  11.       $auteur = htmlentities ($_POST['auteur'], ENT_QUOTES);
  12.       $jours = htmlentities ($_POST['jours']);
  13.       $moi = htmlentities ($_POST['moi']);
  14.       $annee = htmlentities ($_POST['annee']);
  15.       $code = htmlentities ($_POST['code'], ENT_QUOTES);
  16.       $message = htmlentities ($_POST['message'], ENT_QUOTES);
  17.       $note = 10;
  18.       $code = nl2br($code);
  19.       $message = nl2br($message);
  20.       mysql_query("INSERT INTO prgmmembre VALUES('', '" . $nom . "', '" . $auteur . "',
  21.       '" . $jours . "', '" . $moi . "', '" . $annee . "','" . $time . "', '" . $code . "', '" . $message . "', '" . $note . "')" );
  22.       }
  23. ?>
  24. <form method="post" action="prgm.php">
  25. <div class="nompseudodate">
  26. Nom du programme: <input name="nom" maxlength="30" /><br /><br />
  27. Votre pseudo: <input name="auteur" maxlength="30" /><br /><br />
  28. </div>
  29. Date de création: <br />
  30. <?php $j = 1; ?>
  31. <select name="jours">
  32. <?php
  33. while ($j <= 31)
  34. {
  35. echo '<option value="' . $j . '">' . $j . '</option>';
  36. $j = $j+1;
  37. }
  38. ?>
  39. </select>
  40. <select name="moi">
  41.     <option value="01">Janvier</option>
  42.     <option value="02">Février</option>
  43.     <option value="03">Mars</option>
  44.     <option value="04">Avril</option>
  45.     <option value="05">Mai</option>
  46.     <option value="06">Juin</option>
  47.     <option value="07">Juillet</option>
  48.     <option value="08">Août</option>
  49.     <option value="09">Septembre</option>
  50.     <option value="10">Octobre</option>
  51.     <option value="11">Novembre</option>
  52.     <option value="12">Décembre</option>
  53. </select>
  54. <?php
  55. $date = date('Y');
  56. ?>
  57. <select name="annee">
  58. <?php
  59. echo '<option value="' . $date . '">' . $date . '</option>';
  60. while ($date > 1985)
  61. {
  62. $date = $date-1;
  63. echo '<option value="' . $date . '">' . $date . '</option>';
  64. }
  65.     ?>
  66. </select><br /><br />
  67. Code:<br />
  68. <textarea name="code" rows="30" cols="43">
  69. </textarea> <br /><br />
  70. Message (facultatif):<br />
  71. (Vous pouvez y expliquer le but de votre programme)<br />
  72. <textarea name="message" rows="1" cols="43">
  73. </textarea><br /><br />
  74.         <input type="submit" value="Envoyer" />
  75. </form>


 
Donc voilà, aprés avoir envoyé le formulaire, rien est envoyé à la BDD.
Pour info, aprés avoir remplis le formulaire, on arrive à cette page:
 
 

Code :
  1. <?php
  2. mysql_connect("localhost", "xxx", "xxx" );
  3. mysql_select_db("xxx" );
  4. $lesnom = mysql_query('SELECT * FROM prgmmembre ORDER BY note');
  5. while ($Lesnom = mysql_fetch_array($lesnom))
  6. {
  7. echo '<a href="prgmmembre.php?nom=' . $Lesnom['nom'] . '"><span class="lien">' . $Lesnom['nom'] . '</span></a>';
  8. }
  9. ?>


 
Et ici, je classe les prgm en fonction des notes.
Et ensuite, je crer un lien vers la page prgmmembre.php, ou grace au nom de l'url (?nom=' . $Lesnom['nom'] . '), je récupére les info du prgm dans la bdd.
 
La page prgmmembre.php:  

Code :
  1. <?php
  2. mysql_connect("localhost", "xxx", "xxx" );
  3. mysql_select_db("xxx" );
  4. $lesprgm = mysql_query("SELECT * FROM prgmmembre WHERE nom='" . $_GET['nom'] . "'" );
  5. $Lesprgm = mysql_fetch_array($lesprgm);
  6. ?>
  7. <center><div class="auteur">
  8.     <strong>Auteur</strong> :  <?php echo $Lesprgm['auteur']; ?><br />
  9.     <strong>Créé le</strong> :  <?php echo $Lesprgm['jours'] . ' / ' . $Lesprgm['moi'] . ' / ' . $Lesprgm['annee']; ?><br \>
  10.     <strong>Mis en ligne le</strong> : <?php echo date('d/m/Y', $Lesprgm['time']); ?><br />
  11.     <strong>Groupe</strong> :  Membre<br />
  12. </div>  </center>
  13. <strong>Code:</strong>
  14. <div class="code">
  15. <?php echo $Lesprgm['code']; ?>
  16. </div><br />
  17. <br />
  18. <?php echo $Lesprgm['message']; ?>


 
Voilà.
Le prob, c'est que rien est envoyé a ma BDD je croi.
Donc si quelqu'un peus m'aider.......... ;)
 
Merci d'avance.


Message édité par univscien1 le 19-02-2007 à 15:12:22
Reply

Marsh Posté le 18-02-2007 à 21:49:53   

Reply

Marsh Posté le 18-02-2007 à 22:00:00    

euuuh où est ce que tu appelles la bdd ?

Reply

Marsh Posté le 18-02-2007 à 22:05:01    

J'ai pas tout lu mais si rien n'a été envoyé à la BD c'est que ton INSERT a planté. Rajoute un error_reporting(E_ALL | E_STRICT) en haut de ton script et affiche ce que contient mysql_error() après ta requête.
 
Pour avoir quand même lu les quelques premières lignes du premier fichier que tu postes, quelques remarques :
- isset peut prendre plusieurs paramètres, pas la peine de faire 15 "and" ;
- si la valeur d'une variable vaut null, isset renverra false, tests inutiles donc (empty peut être utile par contre pour les valeurs "vides" ) ;
- htmlentities n'est pas fait pour protéger des SQL injection et il est peu recommandé de le faire en entrée, utilise plutôt mysql_real_escape_string ou mieux, utilise les prepared statements de mysqli.


Message édité par sielfried le 18-02-2007 à 22:09:12

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

Marsh Posté le 18-02-2007 à 22:30:19    

J'avais oublié la connexion à la BDD, mais çà ne marche pas quant méme.  :(

Reply

Marsh Posté le 18-02-2007 à 22:44:07    

Ouaa mais c'est super bizare.
 
En fet, j'ai du envoyer le formulaire il y a 1H, et il n'apparait en ligne et dans ma BDD que maintenant.
 
 
C'est vraiment bizare non?
 
Une heure pour transmettre le formulaire :??:  
 
Et aussi, j'ai un ptit prob, c'est pour le Timestamp.  Il ne m'affiche pas le time du jour ou j'ai posté le formulaire,
 
mais la date de création du timestamp (1 janvier 1970 je croi)
 
Vous pouvez m'aider plz?,,,,?


Message édité par univscien1 le 18-02-2007 à 22:44:56
Reply

Marsh Posté le 18-02-2007 à 22:57:03    

Reply

Marsh Posté le 19-02-2007 à 11:24:57    

Euh... dsl mais çà va résoudre mon probléme???
 
Je comprend pas ce que je doit faire...

Reply

Marsh Posté le 19-02-2007 à 11:57:33    

Ben ça va ajouter la date et l'heure courantes dans la base, c'est ce que tu veux non ?


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

Marsh Posté le 19-02-2007 à 12:13:46    

Ben en fait le probléme c'est que pour le moment, rien est enregistré dans la base.
 
C'est justement le gros probléme.
 
En envoyen le formulaire, rien est stockée dans la BDD.
 
Je ne trouve pas le prob.  :(


Message édité par univscien1 le 19-02-2007 à 12:14:19
Reply

Marsh Posté le 19-02-2007 à 12:16:57    

T'as fait ce que je dis avec le error_reporting et mysql_error ?


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

Marsh Posté le 19-02-2007 à 12:16:57   

Reply

Marsh Posté le 19-02-2007 à 12:44:30    

On ne me met aucun message.
 
 
...  :S
 
Ptétre que je l'ai mal fait.
 
Je doit mettre quoi et où???


Message édité par univscien1 le 19-02-2007 à 12:45:15
Reply

Marsh Posté le 19-02-2007 à 12:51:09    

http://fr.php.net/error_reporting
http://fr.php.net/mysql_error
 
Renseigne-toi, comprends ce qu'elles font puis ça te paraîtra évident.
 
(mysql_error devrait suffire dans ton cas. Si l'insertion ne se fait pas, y aura forcément quelque chose.)


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

Marsh Posté le 19-02-2007 à 13:50:50    

On ne m'affiche aucune erreures.
 
 
....  :S

Reply

Marsh Posté le 19-02-2007 à 14:00:45    

Mets à jour ton code dans ton post plus haut, histoire de voir ce que t'as rajouté...


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

Marsh Posté le 19-02-2007 à 14:12:10    

Voilà.
 
C'est le code tel qu'il est à présent
 
(Et qui ne marche toujours pas. ;))

Reply

Marsh Posté le 19-02-2007 à 14:28:09    

Je vois pas d'affichage de mysql_error() là dedans...


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

Marsh Posté le 19-02-2007 à 14:32:41    

ha dsl .
 
J'affiche la ligne où je l'avais mis.
 

Code :
  1. mysql_query("INSERT INTO prgmmembre VALUES('', '" . $nom . "', '" . $auteur . "',
  2.       '" . $jours . "', '" . $moi . "', '" . $annee . "','" . $time . "', '" . $code . "', '" . $message . "', '" . $note . "')" ) or die(mysql_error());


Message édité par univscien1 le 19-02-2007 à 15:11:42
Reply

Marsh Posté le 20-02-2007 à 17:46:22    

fait un echo de tes query et envoie la structure de tabase.

Reply

Marsh Posté le 20-02-2007 à 19:10:54    

Merci, mais j'ai résolu mon prob.
 
En fait, mon formulaire n'envoyait pas au bon endroit.
 
;-)

Reply

Sujets relatifs:

Leave a Replay

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