ajout d'un form dans une base de donnée

ajout d'un form dans une base de donnée - PHP - Programmation

Marsh Posté le 16-04-2004 à 16:31:11    

Bonjour, voilà petite question de n00b... g ce code ci-dessous qui récupère le contenu d'un formulaire, et est censé uploader le fichier sur le serveur et déposer les contenus textes dans une base de donnée. L'image est bien uploadée, mais les champs eux ne sont pas déposés dans la base de donnée... pourtant si je fé des echo dessus, leur contenu est correct.
 
Je comprend pas ma faute...  :??:  
 
merci de votre aide  
 

Code :
  1. //récupération des valeurs du formulaire
  2. isset($_POST) or
  3. die("<b><font face=Verdana size=2>Problème de définition de $_POST</font></b><br>&nbsp;<br><input type=button value='Back' onClick=javascript:history.back()>" );
  4. $titre = trim($_POST['titre']);
  5. $date = trim($_POST['date']);
  6. $auteur = trim($_POST['auteur']);
  7. $contenu1 = trim($_POST['contenu']);
  8. //quant au fichier d'image
  9. $nomFich = $_FILES['image']['name']; //Le nom original du fichier, tel que sur la machine du client web.  
  10. $typeFich = $_FILES['image']['type']; //Le type MIME du fichier, si le navigateur a fourni cette information. Par exemple, cela pourra être "image/gif" .  
  11. $tailleFich = $_FILES['image']['size']; //La taille, en octets, du fichier téléchargé.  
  12. $tmpFich = $_FILES['image']['tmp_name']; //Le nom temporaire du fichier qui sera chargé sur la machine serveur.  
  13. $errFich = $_FILES['image']['error']; //Le code d'erreur error code associé au téléchargement de fichier.
  14. if($nomFich != "" )
  15. {
  16. //déplacement de l'image dans le dossier  
  17. $uploaddir = /var/local/www/mon_site/';
  18. print "<pre>";
  19. if (move_uploaded_file($_FILES['image']['tmp_name'], $uploaddir . $_FILES['image']['name']))
  20. {
  21. print "<font face=Verdana size=2>Le fichier est valide, et a été téléchargé avec succès.</font>\n";
  22. }
  23. else
  24. {
  25. echo "<font face=Verdana size=2>Le fichier n'a pas été transféré correctement.</font>\n";
  26. }
  27. }
  28. //traitement de la chaine de caractère $contenu1 en  remplaçant {nomfichier} en <img src="nomfichier">
  29. $char1='{';
  30. $char2='}';
  31.  
  32. //première partie de la news (avant le [img...
  33. $pos = strpos($contenu1, $char1);
  34. $partie1 = substr($contenu1, 0, $pos);
  35. //partie 2 "<img src=nom de l'image>"
  36. $partie2="<img src=\"../img/news/".$nomFich."\">";
  37. //partie3 après le nom de l'img
  38. $fin = strlen($contenu1);
  39. $pos = strpos($contenu1, $char2);
  40. partie3 = substr($contenu1, $pos+1, $fin);
  41. //chaine finale
  42. $contenu=$partie1.$partie2.$partie3;
  43. //Ajout des infos text dans la base de donnée
  44. $sql="INSERT INTO news_cajo SET titre=\"".$titre."\", date=\"".$date."\", auteur=\"".$auteur."\", contenu=\"".$contenu."\" ";
  45. $db = mysql_connect("localhost","USER","PASS" );
  46. mysql_select_db("TABLE", $db);
  47. echo mysql_error();
  48. $res=mysql_query($sql, $db);
  49. echo "<p align=center><strong><font face=Verdana size=2>News ajoutée avec succès !</font></strong><br />\n";


Message édité par abaddon2002 le 16-04-2004 à 16:32:43
Reply

Marsh Posté le 16-04-2004 à 16:31:11   

Reply

Marsh Posté le 16-04-2004 à 16:51:37    

A part la grosse erreur de sql ? (confusion entre la syntaxe du INSERT et celle du UPDATE) :)

Reply

Marsh Posté le 16-04-2004 à 16:56:46    

naceroth a écrit :

A part la grosse erreur de sql ? (confusion entre la syntaxe du INSERT et celle du UPDATE) :)


 
bin si je met

Code :
  1. INSERT INTO news_cajo (...,...) VALUES($...,$...);

ça change pas mon prob... ça ajoute rien kan même... :\

Reply

Marsh Posté le 16-04-2004 à 17:00:54    

1. Les champs de type texte, varchar & co sont entourés de ' :)
2. met un mysql_query($query) or die (mysql_errno.' '.mysql_error." dans la requête $query" ); pur afficher l'erreur éventuelle, ça simplife le débogage :D

Reply

Marsh Posté le 16-04-2004 à 17:13:15    

Code :
  1. Notice:  Use of undefined constant mysql_errno - assumed 'mysql_errno' in /var/local/www/mon_site/ajout2.php on line 121
  2. Notice:  Use of undefined constant mysql_error - assumed 'mysql_error' in /var/local/www/mon_site/ajout2.php on line 121
  3. mysql_errno mysql_error dans la requête INSERT INTO news_cajo(titre,date,auteur,contenu) VALUES('test','16-04-2004'test','salut !<img src="test.jpg"> ')


 
Si jms g apache 2 et php 4.3.5RC4-dev

Reply

Marsh Posté le 16-04-2004 à 17:22:13    

Ah oui, merde, j'ai pas mis les parenthèses, désolé (elle est entièrement pour ma pomme celle là :D).

Code :
  1. mysql_query($query) or die (mysql_errno().' '.mysql_error()." dans la requête $query" );


Remarque, même sans ça, on sait qu'il y a une erreur dans ton code (une virgule entre la date et l'auteur dans le value du insert qui manque)

Reply

Marsh Posté le 16-04-2004 à 17:50:30    

ouais mis à part cette petite erreur, une fois corrigée, g testé sur d'autres serveurs, ça fonctionne très bien en fait, chais pas, c mon serveur en bois qui va pas :\ je mate sa config parce que ça passe tjrs pas sur ce serveur là...
 
je retourne mettre du charbon :p

Reply

Sujets relatifs:

Leave a Replay

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