Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/04/2011, 11h29   #1
Membre du Club
 
Inscription : mai 2007
Messages : 209
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 209
Points : 50
Points : 50
Par défaut Supprimer valeur GET dans Url

Bonjour,
Dans un tableau qui liste mes articles j'ai pour chaque article un bouton supprimer.
en cliquant dessus, j'envoie l'id de l'article en GET pour être utiliser dans ma requête d'update (monsite.com/article.php?supp=1).

Le problème est que si je fait F5 cela relance la requête, et j'aime pas trop ça.
J'ai testé en ajoutant un "header location" a la fin du script de mise a jour, mais cela empêche l'affichage du message de réussite ou d'erreur.

Je ne souhaite pas passer par un formulaire pour l'envoie en POST.
Connaissez vous une astuce pour virer la valeur de la variable après exécution du traitement ?

Merci
christobale est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 11h37   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Tu peux passer un message (ou un numéro de message) en paramètre dans ta redirection.

Au passage, le problème est le même avec POST.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/04/2011, 11h52   #3
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
Exemple :

index.php possédant le lien vers supp.php?id=1
supp.php fait la suppression, met en session un message (erreur ou réussite), redirige vers index.php qui affiche le message et supprime ensuite la variable de session

index.php
Code :
1
2
3
4
5
6
7
8
9
10
<?php
session_start();
?>
...
<a href="supp.php?id=1">supprimer le 1</a>
...
<p><?php echo $_SESSION['messageretour'];?></p>
...
<?php
unset($_SESSION['messageretour']);
supp.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
<?php
session_start();
$id = $_GET['id'];
// vérif de l'id contre les injections
?>
...
// requête de suppression
if($request)
     $_SESSION['messageretour'] = $id." a bien été supprimé";
else
     $_SESSION['messageretour'] = "Erreur lors de la suppression de ".$id;
header('Location: index.php');
en gros.
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 12h07   #4
Membre du Club
 
Inscription : mai 2007
Messages : 209
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 209
Points : 50
Points : 50
J'avais déjà pensé a toutes ces solutions, mais cela ne va pas avec mon système d'affichage des messages.
Ça peux sembler con, mais j'ai fait un système d'information en POO et je ne souhaiterais pas faire une bidouille pour palier a ce type de déconvenue.
Bah c'est pas grave.
Merci a vous
christobale est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 12h08   #5
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
Si tu nous indiquais ton système d'affichage de message on pourrait t'aider
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 13h26   #6
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 709
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 709
Points : 3 279
Points : 3 279
Salut

Citation:
Le problème est que si je fait F5 cela relance la requête, et j'aime pas trop ça.
J'ai testé en ajoutant un "header location" a la fin du script de mise a jour, mais cela empêche l'affichage du message de réussite ou d'erreur.
Normalement ça ne devrait pas être le cas.

Vu que tu utilise une session pour stocker le message de retour (réussite ou erreur), c'est que lorsque ce message est affiché la 1ère fois, la variable de session "messageretour" ne serait pas détruite, elle serait donc toujours présente.
Détruit la ou alors réinitialise la en lui mettant une chaine vide.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 13h53   #7
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
@RunCodePHP : je crois que tu as lu la conversation à l'envers
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 14h58   #8
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 709
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 709
Points : 3 279
Points : 3 279
Citation:
Envoyé par Shikiryu
@RunCodePHP : je crois que tu as lu la conversation à l'envers
Effectivement, je fais allusion à ton code pensant que c'était le sien.

Vu comme tu le dis qu'on ne sait pas comment il a fait son système de messagerie, ma remarque peut très bien l'aider quand même pour peu qu'il ait fait quelque s'approchant à ton code.
Pas si hors sujet que ça finalement, non ?


M'enfin, c'est pas bien grave, il le dit lui même d'ailleurs.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h09.


 
 
 
 
Partenaires

Hébergement Web