[PHP/MySql] [Resolu merci !]Insertion de données temporaire.

Insertion de données temporaire. [PHP/MySql] [Resolu merci !] - PHP - Programmation

Marsh Posté le 29-11-2006 à 05:00:29    

Bonjours à tous.
 
Je suis en train de monter un petit backoffice pour un site, un peu genre blog, où les utilisateurs peuvent donc écrires leurs articles en direct.
Pour l'instant pas de problème majeurs sauf pour la page de preview. Les données que je veux inserer sont temporaire, et je voudrais les effacer de la table sitôt les valeurs affichées.
N'ayant aucune idée de comment proceder, j'y suis allé au feeling et j'ai fait ça :

Code :
  1. <?php
  2. include 'inc_dbconnect.php' ;
  3. //La page récupère les variables postées
  4. $preview = $_POST['preview'];
  5. $title = $_POST['title'];
  6. $body  = $_POST['body'];
  7. $insert = "INSERT INTO articles (id_a, title, body, author, preview) VALUES ('', '$title', '$body','$login','1')";
  8. $response = mysql_query("SELECT * FROM articles WHERE preview=1 AND author='$login'" );
  9. //Les insère
  10. mysql_query($insert);
  11. //Les affiche
  12. while ($datas = mysql_fetch_array($response) )
  13. {
  14. ?>
  15. <table>
  16. <?php
  17. echo "
  18. <tr><td>Title : ",$datas['title'],"</td></tr>
  19. <tr><td>Body : ",$datas['body'],"</td></tr>";
  20. }
  21. ?>
  22. </select>
  23. </form>
  24. </table>
  25. <?php
  26. //Et foire, si je commente pas ça, rien ne s'affiche.
  27. $delete = "DELETE FROM articles WHERE preview=1 AND author='$login'";
  28. mysql_query($delete);
  29. mysql_close();
  30. ?>


 
Je pensais qu'en effaçant après avoir affiché ça passerait, mais non...
 
Une idée ?
 
Merci d'avance.


Message édité par MrNatas le 29-11-2006 à 10:09:36
Reply

Marsh Posté le 29-11-2006 à 05:00:29   

Reply

Marsh Posté le 29-11-2006 à 08:01:26    

It's teh mighty sql injection

Reply

Marsh Posté le 29-11-2006 à 08:20:12    

?? De quoi parles tu ?
 
Je dois faire une injection ? Ou alors tu parles securité et dans ces cas là faut m'expliquer ou est la faille :/

Reply

Marsh Posté le 29-11-2006 à 09:42:00    

Code :
  1. echo "<table>";
  2. while ($datas = mysql_fetch_array($response) ){
  3.      echo "<tr><td>Title : ",$datas['title'],"</td>";
  4.      echo "<td>Body : ",$datas['body'],"</td></tr>";
  5. }
  6. echo "</table>";


 
y avait des balises <select> et <form> qui trainaient + ouverture fermeture du php pour pas grand chose
 
l'ordre des requetes n'est pas bon:
tu select preview=1
tu insert preview=1
l'inverse plutot non?


Message édité par corkynation le 29-11-2006 à 09:48:50
Reply

Marsh Posté le 29-11-2006 à 10:08:12    

Code :
  1. <?php
  2. include 'inc_dbconnect.php' ;
  3. $preview = $_POST['preview'];
  4. $title = $_POST['title'];
  5. $body  = $_POST['body'];
  6. $insert = "INSERT INTO articles (id_a, title, body, author, preview) VALUES ('', '$title', '$body','$login','1')";
  7. mysql_query($insert);
  8. $response = mysql_query("SELECT * FROM articles WHERE preview=1 AND author='$login'" );
  9. while ($datas = mysql_fetch_array($response) )
  10. {
  11. echo "
  12. <table>
  13. <tr><td>Title : ",$datas['title'],"</td></tr>
  14. <tr><td>Body : ",$datas['body'],"</td></tr>
  15. </table>";
  16. }
  17. $delete = "DELETE FROM articles WHERE preview=1 AND author='$login'";
  18. mysql_query($delete);
  19. mysql_close();
  20. ?>


 
 
Et la ca marche  [:shiryu]  Milles mercis.  je viens de me remettre a tout ca, et la fatigue aidant je fais des erreurs enormes que je vois meme plus, genre les balises qui trainent  :pt1cable:  
 
Et ca m'etait pas venu dans l'idee que $response contenait une requete deja effectuee....
 
Merci encore. :jap:  :jap:  :jap:

Reply

Marsh Posté le 29-11-2006 à 11:02:48    

A l'affichage ça doit donner un truc bizarre quand meme...
tu crées un nouveau tableau pour chaque ligne de réponse au Select
Essaye le code que je t'ai donné plus haut ça devrait afficher plus "propre"

Reply

Marsh Posté le 29-11-2006 à 12:26:22    

Huhu c'est pas grave, comme c'est une page de preview, un seul article, un seul tableau. MAIS c'est vrai que tu es plus propre que moi. :D

Reply

Marsh Posté le 29-11-2006 à 12:36:33    

un seul j'avais pas vu! Alors dans ce cas pourquoi le While????

Code :
  1. $response = mysql_query("SELECT * FROM articles WHERE preview=1 AND author='$login'" );
  2. $datas = mysql_fetch_array($response)
  3. echo '<table><tr><td>Title : '.$datas['title'].'</td></tr><tr><td>Body : '.$datas['body'].'</td></tr></table>';


pas besoin de While  :non:  
j'ai aussi remplacé les , par des .  :ange:  
là c'est propre :sol:

Reply

Marsh Posté le 30-11-2006 à 03:44:26    

Weeeeeeeeee ! C'est plus que je n'en demandais, Je te remercie encore.
 
Pour l'info je fais encore tout un paquet d'erreurs idiotes parce que depuis que j'ai touché pour la première fois au PHP, j'ai fait une pause de trois ans sans rien faire... donc j'ai pas évolué jusqu'à il y a quelques jours, mais là encore je regrette de ne pas être allé à l'école...

Reply

Sujets relatifs:

Leave a Replay

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