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 :

Utilisation de $_POST


Sujet :

Langage PHP

  1. #1
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut Utilisation de $_POST
    Bonsoir,

    J'ai une page - assez compliquée - que je souhaite simplifier !
    En fait, il y a 4 étapes qu'une classe itération gère plutôt mal que bien mais mon problème n'est pas là
    .
    J'ai décidé que d'une page donc d'une transaction ou programme, d'en faire 4.
    Je me basais sur le fait qu'il existe le tableau $_POST.

    Après la découpe en 4, je me suis rendu compte que soit je me trompais du tout au tout soit le $_POST ne réagissait pas comme je le croyais.
    J'avais tout perdu de l'étape I vers I+1 .....

    Je ne m'explique pas cela et il y a trop de variables pour utiliser $_SESSION enfin c'est ce que l'on ma toujours dit... que l'espace réservé à cet usage est limité !

    Voilà, vous me direz qu'une solution est de sauver sur disque, c'est ce que j'envisage si je ne trouve rien d'autre mais même cela, ce n'est pas si trivial, si facile qu'on le pense....

    Voilà mon problème, avez vous des idées à me communiquer ?

    Merci à vous car j'ai plusieurs transactions dans le genre.....

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il n'y a pas de limite de taille de session au niveau de PHP à ma connaissance.

    Cependant, si tu as besoin de faire transiter beaucoup de données d'une page à une autre, tu as peut etre plutot un problème de conception de ton site.

  3. #3
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut $_POST
    Le problème n'est pas la taille de $_SESSION mais au départ du tableau GLOBAL $_POST !
    Cette "croyance" date de mes débuts dans le WEB et jamais personne ne m'a dit le contraire alors.. vous ètes le 1er !

    On m'a tjs dit et mes lectures le confirment que le $_POST conservait les données tant qu'on ne quitte le navigateur ou contraire de $_SESSION et des cookie mais qui ont une période de conservation...

    Je me suis trompé où il y a qlqchose que je ne connais pas !
    Car si je n'uilise pas le $_POST, j'ai à cette heure les solutions suivantes:

    1) Utiliser $_SESSION

    2) Faire un swap-in swap-out des variables sur disque entre chaque étapes...

    3) Autre suggestion qui ne vient pas....

    Mais je reste otimiste, on y arrivera.....

    Merci à tous....

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu dis que tu ne veux pas utiliser de session a cause d'un probleme de taille, je te dis que ce n'est pas le cas.
    Je n'ai pas dit un mot sur la méthode post.

    Ce que tu décris a côté, c'est ce que fait une session.

  5. #5
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut $_POSt versus $_SESION
    Je ne pense pas avoir dit que je ne veux pas utiliser $_SESS, je dis que j'ai appris le WEB avec qlqun'un d'autre et ce qlqu'un m'a tjs fit que....
    Et je n'ai jms entendu le contraire sauf hier !
    Pour la 1ère X

    Et je t'ai posé la question sur $POST que j'utilise dans ce contexte sans pb (mais fans la même "session" de travail sur PC), ce que j'en pense est'il correcte ou non, ou bien j'ai eu du pot dans ces pages là ?

    Bonne jounée

  6. #6
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    Citation Envoyé par ETVigan Voir le message
    On m'a tjs dit et mes lectures le confirment que le $_POST conservait les données tant qu'on ne quitte le navigateur ou contraire de $_SESSION et des cookie mais qui ont une période de conservation...
    Bonjour,
    il est fort possible que le navigateur garde les $_POST en cas de retour arrière. Mais le contenu de $_POST n'est accessible que sur la page d'action du formulaire

    par exemple dans le cas suivant :
    un formulaire poste vers page1.php et on redirige vers page2.php.


    page1.php aura les données en post, mais pas page2.php.

    Si tu veux avoir les données de la page1 dans la page2, tu dois remettre un formulaire avec des champs hidden dans la page1 qui lui postera dans la page 2.

    Et je t'ai posé la question sur $POST que j'utilise dans ce contexte sans pb (mais fans la même "session" de travail sur PC), ce que j'en pense est'il correcte ou non, ou bien j'ai eu du pot dans ces pages là ?
    Je pense que tu as eu du pot dans ces pages.

    Sinon les sessions ont bien une durée de vie, mais tant qu'il y a de l'activité celle ci est prolongée.

    1) Utiliser $_SESSION

    2) Faire un swap-in swap-out des variables sur disque entre chaque étapes...

    3) Autre suggestion qui ne vient pas....
    La solution 3 pourrait être de remettre en caché tous tes champs reçus en post. Au final sur ta dernière page, tu récupère toutes les données dans ton $_POST.

  7. #7
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut $_POST $_SESSION & Cash
    Que veux-tu dire par mettre en cash.... ?

  8. #8
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    Je suis pas sur d'avoir compris ta question, mais si cela correspond a mettre en caché le post, tu devrais avoir le code suivant

    en supposant que page1 recoit les paramètres params1 et params2.
    Le code de la page2 serait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <form>
    <?php 
    	foreach ($_POST as $key => $value)
    	{
    		echo '<input type="hidden" name="' . $key . '" value="' . $value . '"/>';
    	}
    ?>
     
    <input type="text" name="params3"/>
    ...
    </form>

  9. #9
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut Cash..... $_POST $_SESSION
    Je suis de la vieille école de l'informatique, les grosses bécannes et autres... sortit bac+5 en 78 et pour moi la mémoire cash est une sorte de RAM (comme sur un PC d'ailleurs) ou l'OS sauve de façon temporaire ces données et modules appelés par les prog user.....

    Alors je ne fais pas la relation avec ton explication, sorry :

  10. #10
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    Ok
    je pensais que tu parlais de mettre en cache.
    Donc je n'ai pas du tout compris ta question, c'etait en rapport de la mémorisation du $_post ou de la session ?

  11. #11
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut Cash..... $_POST $_SESSION
    Bon, on tourne autour du pot mais on se comprend... avec le temps !

    Je ne sais toujours pas si je vais découper ma transaction en 4 en passant les valeurs par $_SESSION ou par transfert sur disque (à développer).....

    Pour le moment, je ne vois pas et suis malgré tout novice (bof, pas trop...) en PHP que je ne mange pas encore comme du chocolat belge....

    @suivre..... merci

  12. #12
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    En même temps la session c'est aussi un fichier écrit automatiquement par le serveur.

    Apres si ta crainte d'utiliser une session est la perte de données, tant que l'utilisateur sera actif, tu ne perdras rien.
    Apres s'il part pendant une heure en plein milieu du remplissage de son formulaire, la oui tu risque des perdre la session.

  13. #13
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut $_POST $_SESSION & Cash
    Ok, je vais changer tout mes $_POST en $_SESSION sauf si je devais changer l'architecture de cette transaction mais cela a des impacts sur d'autres.
    Enfin, je veux dire cette nouvelle façon de travailler.... pas + !

    @moi de voir..... merci bien !

  14. #14
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 241
    Points
    20 241
    Par défaut
    Comme cela à déjà été dis $_SESSION n'as pas de réel limite de taille (si ce n'est sans doute la limite fixer à php ).

    Pour faire un script en plusieurs étapes il y'a en gros deux solutions (qui t'ont été proposer précédemment , mais ca semble pas clair)

    1- Full $_POST

    Ta page 1 contient le premier formulaire , tu le soumet et tu sérialise le résultat. Tu arrives alors sur la page 2. La page 2 contient son formulaire et en plus un champs caché avec les données du formulaire précédent (ces données que tu auras sérialisé). La page 3 contiendra son formulaire et les données des pages 1 et 2 et ainsi de suite , jusqu' à arriver sur ta page de traitement finale qui récupère le dernier formulaire et dé-sérialise toutes les données des étapes précédente.

    2- Mix $_SESSION / $_POST

    C'est le même principe que précédemment sauf qu'au lieu de stocker les données dans des champs caché tu les places en session. Ça à l'avantage de pouvoir reprendre à une étape intermédiaire si jamais ta gestion de session le permet.

  15. #15
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut $_POST $_SESSION & Cash
    Merci G....

    Cela ouvre qlques perspectives mais les données de l'I sont affichées et I+1... ect....

    Donc serialize/unserialize à chaque début/fin de transaction puisque le contenu est tjs affiché et susceptible d'être modifié (cela me pose le problème de revenir à l'étape I-x si il y a eu modification...... mais ceci est une autre histoire)

    Je résume....
    Dans tous les cas, je serialize/unserialize.....

    Soit:

    1° Je mets le résultat dans une et une seule varaible de session

    2° Soit je le mets dans un champ HIDDEN de mon formulaire

    C'est bien cela ? Je crois avoir bien pigé......

  16. #16
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 241
    Points
    20 241
    Par défaut
    Citation Envoyé par ETVigan Voir le message

    C'est bien cela ? Je crois avoir bien pigé......
    Oui c'est bien cela même si pour les session la serialisation est optionnelle (tu peux très bien faire $_SESSION['monformX'] = $_POST

  17. #17
    Membre averti
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Avril 2007
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Avril 2007
    Messages : 234
    Points : 338
    Points
    338
    Par défaut
    Pour un formulaire en plusieurs étapes, je pense qu'il vaut mieux mettre les données en session.
    Les données dans les champs hidden sont trop facilement modifiable.

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/07/2011, 16h25
  2. [MySQL] utiliser fonction count($_POST) javascript
    Par Shivas dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 23/06/2010, 16h00
  3. Réponses: 5
    Dernier message: 14/03/2007, 11h39
  4. Utiliser $HTTP_POST_VARS['variable'] ou $_POST['variable']
    Par Alexandrebox dans le forum Langage
    Réponses: 8
    Dernier message: 22/02/2007, 08h55
  5. Utilisation de $_POST[$variable]
    Par ThunderBolt_ dans le forum Langage
    Réponses: 2
    Dernier message: 05/02/2007, 02h31

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