IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Écraser les variables après un POST


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Points : 68
    Points
    68
    Par défaut Écraser les variables après un POST
    Bonjour à tous,

    J'aimerais savoir si il ya un moyen efficace pour détruire toutes les valeurs envoyées par un post .

    Car en ce moment quand je fait un submit, j'ai le message: "si vous renvoyez les données, toutes actions sera répétée, etc."
    Donc, si l'utilisateur clique sur oui, les valeurs sont envoyés de nouveau, et c'est pas ça que je veux.

    J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $_POST = array();
    unset($_POST);
    Mais ça ne change rien.

    Ya t'il un moyen autre que de rediriger l'utilisateur vers une autre page ?:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location : http://mapage.php")
    car je veux que l'utilisateur reste toujours sur la même page en lui affichant les valeurs qui ont été envoyés.

    Merci

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 250
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 250
    Points : 8 530
    Points
    8 530
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par persia Voir le message
    J'aimerais savoir si il ya un moyen efficace pour détruire toutes les valeurs envoyées par un post .
    unset( ) / array( )

    Car en ce moment quand je fait un submit, j'ai le message: "si vous renvoyez les données, toutes actions sera répétée, etc."
    Donc, si l'utilisateur clique sur oui, les valeurs sont envoyés de nouveau
    C'est le comportement recommandé par le W3C.

    et c'est pas ça que je veux.

    J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $_POST = array();
    unset($_POST);
    Mais ça ne change rien.
    Normal, cela ne fait que vider une variable de ton script. La requête HTTP reste inchangée et est en resoumise à l'identique en cas de rafraichissement.

    Ya t'il un moyen autre que de rediriger l'utilisateur vers une autre page ?:
    Tu peux le rediriger vers la même page

    car je veux que l'utilisateur reste toujours sur la même page en lui affichant les valeurs qui ont été envoyés.
    Et bien quel est le pb dans ce cas ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Points : 68
    Points
    68
    Par défaut

    Tu peux le rediriger vers la même page
    Le problème persiste si je redirige vers la même page.

  4. #4
    Membre habitué Avatar de cynferdd
    Profil pro
    Analyste Développeur .Net, PHP, SQL Server
    Inscrit en
    Avril 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Développeur .Net, PHP, SQL Server

    Informations forums :
    Inscription : Avril 2003
    Messages : 154
    Points : 190
    Points
    190
    Par défaut
    et en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach($_POST as $sup) {
      unset($sup);
    }
    est ce que ça fonctionne?

  5. #5
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 250
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 250
    Points : 8 530
    Points
    8 530
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par persia Voir le message
    Le problème persiste si je redirige vers la même page.
    Non, ou alors montre un petit script fonctionnel illustrant le pb.

  6. #6
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 17
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    Il est plus juste d'écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    foreach($_POST as $clef => $element) {
      unset($_POST[$clef]);
    }
    mais c'est inutile si tu as déjà fait un unset($_POST):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(isset($_POST)){
    if(is_array($_POST)){
    unset($_POST)
    }
    }

    Je te conseille d'utiliser un élément caché pour gérer ton affichage,
    dans ton formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type=hidden name="clef" value="on">
    que tu récupères en variable en $POST:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $clef="off";
    $test=$_POST["clef"];
    Puis que tu utilises pour piloter ton affichage:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if($test=="on"){
    //affichage
    }
    Ainsi tu ne seras pas obligé d'éliminer tes variables de ton $_POST,
    si tu veux quand même le faire:
    va te renvoyer à l'écran son contenu.

    A toi de jouer.

Discussions similaires

  1. toujours les variables apres une boucle
    Par lrgtk dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 05/09/2010, 15h22
  2. Réponses: 4
    Dernier message: 08/09/2008, 15h36
  3. Réponses: 2
    Dernier message: 19/05/2008, 05h28
  4. récupérer toutes les variables post
    Par camyo dans le forum Langage
    Réponses: 2
    Dernier message: 13/03/2008, 14h42
  5. [MySQL] Apostrophe dans les variables postées
    Par Mathieu72 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/02/2007, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo