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 :

$_POST['nom_variable'] = $variable ?


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 11
    Points : 8
    Points
    8
    Par défaut $_POST['nom_variable'] = $variable ?
    Bonjour,

    Je cherche à savoir s'il est possible, comme pour les variables de session, d'affecter une valeur (en utilisant une variable) à une variable $_POST, comme indiqué dans le titre et ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_POST['nom_variable'] = $variable;
    Le tout est donc de savoir s'il est possible de faire ça, sans formulaire et sans variables de session bien sûr !

    Pour info, cette ligne est immédiatement suivie dans mon code d'un header qui renvoie vers une autre page, laquelle doit pouvoir récupérer la valeur de la variable $_POST définie.

    Si quelqu'un peut m'aiguiller... merci !

  2. #2
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Le tout est donc de savoir s'il est possible de faire ça, sans formulaire et sans variables de session bien sûr !
    A ma connaissance non.

    Et en paramètre dans le header (en GET au final) ?
    Aussi, en quoi les sessions n'iraient pas ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    il s'agit d'un retour vers un formulaire d'inscription avec différents... je n'aime pas utiliser les GET quand il y a plusieurs variables contenant pour certaines des caractères spéciaux qui plus est.
    Du coup, même motif pour les variables de session, et au stade de l'inscription aucune session n'est ouverte.

    Tant pis, si ça n'existe pas ! Merci pour cette réponse

  4. #4
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Ton programme demande une certaine persistance au niveau des données, et les sessions sont justement faites pour ça.

    C'est donc toi qui te restreint à ce que la persistance ne soit opérationnelle que lorsqu'une identification soit effective.

    Troquer un GET au lieu sessions, par contre là, faut voir.


    Ton problème ne serait il pas lié quand une erreur est détectée (pas d'identification donc), de devoir retourner (header) à la page précédent avec les info saisies pour les ré afficher ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Absolument si, c'est tout à fait ce que je voudrais pouvoir faire...

  6. #6
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    c'est tout à fait ce que je voudrais pouvoir faire...
    Le moyen de faire sans avoir besoin de retransmettre quoi que ce soit (donc ni GET, POST, SESSION) c'est que le formulaire appel la même page.

    Si par exemple la page d'identification c'est lohin.php, alors au niveau de l'attribut action (balise <form>) on met login.php.
    Ensuite, tant qu'on détecte une erreur, telle quelle soit, on ne redirige pas (pas de header ou autre), on reste dans la même page, ce qui fait que les données obtenues en POST seront toujours dispo.

    Ce n'est que lorsque tout est Ok, donc les sessions initialisées (créés) (insertion BDD pourquoi pas, etc ...) qu'on effectuera un header().

    En quelque sorte, on effectue les choses de manières inverse.


    Faut voir si cela peu se faire de ton coté, du moins, que ça ne bouscule pas trop les choses, car dans l'absolue ça devrait pouvoir ce faire.
    Le seul truc, c'est que ça demande à ce que toutes les vérifs soient faites très tôt, et surtout avant le moindre echo ou autre balise HTML.
    Il suffit de stocker les messages d'erreurs au fur et à mesure par exemple, un simple tableau peu suffire, et à la fin, la partie HTML, suffit de boucler sur le tableau des erreurs.

    Pour les données, une simple alternative sur l'existence des éléments dans $_POST suffit pour les ré-afficher.

  7. #7
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Pour un traitement dans une page différente de celle contenant le formulaire, on a un code du genre :

    form.php (Formulaire)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    // Démarrage de la session
    session_start();
     
    // Récuperation de l'éventuelle information mémorisée par verif.php
    $pseudo=(isset($_SESSION['pseudo']))?$_SESSION['pseudo']:'';
     
    // Suppression de la session
    session_destroy();
     
    // ...
    ?>
    verif.php (traitement)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <?php
    // Démarrage de la session
    session_start();
     
    // Récuperation de l'information provenant du formulaire
    $pseudo=(isset($_POST['pseudo']))?$_POST['pseudo']:'';
     
    // Appel d'une fonction testant la validité de l'information
    $ok=(is_good($pseudo));
     
    if($ok){
    	// Si c'est correct
    	session_destroy(); // Suppression de la session
     
    	// Traitement des données
    	// ...
    }else{
    	// Sinon
    	$_SESSION['pseudo']=$pseudo; // Mémorisation de l'information pour form.php
    	session_write_close(); // Fermeture de la session
    }
     
    // Redirection
    header('Location: form.php');
    ?>

Discussions similaires

  1. [PHP 5.3] $_POST[] et variable à afficher
    Par ETVigan dans le forum Langage
    Réponses: 6
    Dernier message: 17/09/2010, 18h37
  2. $_POST[variable] ou $variable dans lien de confimation ?
    Par psychoBob dans le forum Langage
    Réponses: 6
    Dernier message: 09/05/2006, 14h08
  3. $_POST['...'] + variable aleatoire
    Par snipes dans le forum Langage
    Réponses: 14
    Dernier message: 10/04/2006, 14h48
  4. Variable $_POST[]
    Par gwen-al dans le forum Langage
    Réponses: 10
    Dernier message: 17/01/2006, 11h48
  5. Recuperer les variables $_POST
    Par casa13 dans le forum Langage
    Réponses: 15
    Dernier message: 03/01/2006, 16h33

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