Probleme d'execution de requete

Probleme d'execution de requete - PHP - Programmation

Marsh Posté le 23-11-2006 à 03:34:51    

Bonsoir tout le monde voila je suis entrain de dev la partie dynamique d'un site. Je coince sur un truc tout con que j'ai deja fait et qui fonctionne franchement je comprend pas.
 
En fait cela provient de l'administration des news du site. On veux supprimer une news je clique donc sur un  obouton qui renvoie l'id de la news via GET.
Ensuite une requete SQL DELETE pour supprimer la news.
J'ai une table a part pour le stockage des images des news ou est egalement stocké cette id
donc je remet une requete DELETE
 
le souci c'est que la premiere requete s'execute bien mais pas la seconde
Pas d'erreur rien. Il me delete rien  
 
Cependant si je relance la page style en tapante http://serveur/page.php?id=xx tel que je l'ai avec le bouton et bien la il va m'executer la seconde requete (la premiere a deja ete faite juste avant)
 
donc je comprend vraiment pas ce qu'il se passse ? et comme je l'ai deja dit j'ai deja fait et cela fonctionne c pas croyable que la ca fonctionne pas :(
 
merci d'avance :)
 
voici le code
 

Code :
  1. $table_name = "news";
  2. $table_name2 = "pictnews";
  3. $champs1 = "news_id";
  4. // Définition de la connexion à la base donné
  5. require("../conf/connection-inc.php" );
  6. // Récupération de l'Id de l'utilisateur
  7. $id = $_GET['id'];
  8. // Requete SQL de suppression table news
  9. $sql="DELETE from $table_name Where $champs1='$id'";
  10. mysql_db_query($sql_bdd ,$sql ,$db_link);
  11. $del="DELETE from $table_name2 Where $champs1='$id'";
  12. mysql_db_query($sql_bdd ,$del ,$db_link);
  13. // retour à la liste des catégorie
  14. header("location:list_news.php" );

Reply

Marsh Posté le 23-11-2006 à 03:34:51   

Reply

Marsh Posté le 23-11-2006 à 08:19:22    

Note de départ qui ne concerne pas ton problème, tu accède à $id via $_GET. Note que pour supprimer un truc, il faut obligatoirement passer par la méthode POST, comme le veut le protocole HTTP.
 
Si en plus tu n'a pas magic_quotes_gpc d'activé, t'as en plus une belle faille de sécurité qui permetterait de vider toute la table d'un coup.

Reply

Marsh Posté le 23-11-2006 à 11:19:35    

Magic_quotes_gpc est bien sur ON mais merci de l'info je ne le savais pas :)
 
ensuite il faudrait que je passe par $_POST pour supprimer quelque chose ? mais pourquoi la première requete fonctionne bien alors ?

Reply

Marsh Posté le 23-11-2006 à 11:20:27    

Ca fonctionne, mais c'est très très pas recommandé pour certaines raisons bien précises. Une requête en GET ne devrait pas avoir d'effets de bords (insertion, suppression, etc.) selon le protocole HTTP

Reply

Marsh Posté le 23-11-2006 à 11:25:54    

Comment me conseillerais tu de procéder pour supprimer les informations désirer dans deux tables distinct ?
 
passe la variable id en POST ce qui fera que je devrai faire un form dans la page précédente ?
 
Ou tu as une autres solution?
 
Mais je comprend bien que par GET c'est dangereux, il suffirait de taper l'adresse avec un ID au hazard par exemple et boom ca delete

Reply

Marsh Posté le 24-11-2006 à 11:07:45    

Ca fonctionne parfaitement avec POST
 
merci en tout cas pour ces information notamment pour la sécurité
 
A+

Reply

Sujets relatifs:

Leave a Replay

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