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 :

Valeurs en Post


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut Valeurs en Post
    Bonjour,

    ca faisait très longtemps que je n'était pas passez ici mais la je dois avouer que j'ai besoin de votre aide car je ne vois pas du tout comment faire.

    J'ai un formulaire qui envoye des donner en POST, il s'agit en fait d'un formulaire ou l'on choisit une personne et cela nous affiche des infos sur la personne. Jusque llà aucun problème.
    Sur la page affiché j'ai un bouton qui me permet de modifier une info et qui m'envoye sur une autre page (avec un formulaire etc...). Une fois la modification faite, je voudrais revenir sur la page de la personne sur laquelle j'ai fait la modification mais je ne sais pas comment faire appel à ma page puisque ses parametres d'affichage (identifiant de la personne, période recherchée etc...) sont passés en POST.

    Je sais que ca serait beaucoup plus simple de passer le tout en GET mais je ne trouve pas ca super au niveau sécurité et de plus mon POST contient 5 éléments donc ca ferait une URL à rallonge

    En espérant que vous avez bien compris mon problème
    Merci d'avance a vous tous.
    Benoit

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    pourquoi ne rechargerais-tu pas ta page completement, si tu as l'ID ou autre de la personne tu peux tres bien recharger ta page.

  3. #3
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    j'ai toute les infos identifiant, date de debut, date de fin mais c'était justement ma question, comment je fait pour recharger la page ??

    Et oui on s'apercoit que même quand c'est son métier, qu'on fait ca depuis 3 ans, on ne connait pas tout...

    PS : si ca peut aider voici le contenu de mon post
    Array ( [jour_depart] => 1 [mois_depart] => 5 [annee_depart] => 2008 [jour_fin] => 31 [mois_fin] => 5 [annee_fin] => 2008 [id_salarie] => 24 [visualiser] => Visualiser )

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Une fois que tu as fini de sauver toutes tes infos, tu peux faire un redirect sur ta page affiche_client?id_salarie=24.

  5. #5
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    Pour afficher la page il ne me faut pas que l'id salarie il me faut toutes les infos du post

    et si je les mets dans l'url comme ca c'est du GET donc ma page récupérant des POST ca ne marchera pas ou alors j'ai loupé une étape....

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    C'est moi qui est oublié une étape, dans la mesure ou tu as l'ID du salarié, ne peux-tu pas récupérer en base les autres infos.

  7. #7
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    Les infos a mettre dans le POST je les ai toutes

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Ce process te conviendrait-il ?

    1 - Tu es sur la page d'une personne
    2 - Tu veux modifier une info, tu cliques sur modifier,tu vas sur ta page edition
    3 - Tu modifies les infos...
    4 - Tu cliques sur sauver, tu postes toutes tes infos
    5 - Une fois que tu as enregistré toutes tes infos en base
    6 - Tu fais un redirect sur ta page "personne"
    7 - Comme tu as l'ID tu recharges toutes les infos que tu viens
    d'enregistrer en base

    Tu n'as pas besoin de trimballer ces infos en GET ou en POST.
    L'ID personne suffit.

    Est-ce que c'est bien ca que tu veux ?

  9. #9
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    Jusqu'a l'étape 6 Ok mais l'id de la personne faut que je le passe en post a ma page, c'est la que je ne vois pas comment faire

  10. #10
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Bonjour,

    Ce ne serait pas plus simple d'utiliser les sessions ?
    5- tu enregistres les infos en base et les place en session
    6- tu rediriges vers la page 'personne'
    7- tu affiches les infos en session

    Ou alors, si tu veux pouvoir utiliser la page 'personne' avec juste l'iD
    5- tu enregistres les infos en BDD et mets l'ID en session
    6- tu rediriges
    7- tu récupères l'Id en session et récupère les infos de la base.

  11. #11
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    Non mais toutes les infos du Post sont variables, je ne peut pas les récuperer a partir de l'id, il me les faut toutes, on peut pas envoyer quelques choses en post en meme temps que faire la redirection ?

  12. #12
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Alors mets tout en session. C'est aussi facile que de les mettre dans $_POST.
    Je te déconseille de 'hacker' $_POST pour y mettre des variables, même si ça marchera peut-être. $_POST et $GET sont destinés aux requêtes, et par pour stocker des variables liées à ton script. $_SESSION est là pour ça.

    A moins d'aller vers quelque chose de tordu comme de créer un formulaire invisible, d'y mettre des champs cachés contenant tes variables et de soumettre ce formulaire via javascript, ce qui règle du même coup transport des variables et redirection, mais tu es à la merci d'un visiteur qui désactive javascript et surtout, tes variables sont en clair dans le code source.

    Mais c'est très très tordu, alors qu'il suffit de faire :
    page 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    session_start();
    $_SESSION['var1'] = $var1;
    //redirection
    page2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    session_start();
    $var1 = $_SESSION['var1'];

  13. #13
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    Oui merci je connais les sessions mais a la base j'ai un formulaire qui affiche la page donc des données en Post, comment je peut faire cohabiter les 2...

  14. #14
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Faire cohabiter les deux ?
    A ce stade, je pense qu'il faudrait que tu montres ton code pour éclaircir, et pour parler concrètement.

  15. #15
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    Je vous fait ca des que j'ai un peu de temps et je vous ferait un schéma du cheminement aussi

  16. #16
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    Voila vous trouverez ci-dessous un schéma qui je pense vous aidera a mieux comprendre, ce n'est pas que je veux pas mettre le code mais il est assez long donc si on peut s'en passer pour le moment ça arrangera tout le monde

    Le chemin en noir est le chemin actuel, je souhaiterait moi mettre en place le chemin rouge à la place du chemin noir pour qu'après la modiffication il n'y ai pas besoin de re-choisir les valeurs dans le formulaire pour afficher Page
    2


  17. #17
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Effectivement, avec un schéma, c'est beaucoup plus clair.
    Je n'avais pas compris l'étape de la page 2 qui récupérait les infos en POST.
    J'ai eu à faire un cas similaire, et voici la solution que j'ai choisie. Ce n'est pas la meilleure, mais c'est ce que j'ai trouvé: séparer totalement le traitement de l'affichage dans l'étape 2.
    Donc :
    Page 1 : Formulaire, Variables en POST
    Page 2: Script de traitement des variables depuis POST: filtre, validation et mise en session des variables
    Page 3: Affichage des infos à partir des données en session. Si pas de modification, redirection vers le script d'inscription en BDD, qui puise ses infos depuis la session. SI modification :
    Page 4: Formulaire de modification, prérempli avec les infos en session. Le soumission de ce formulaire par POST renvoit au script de la page 2 (validation, mise en session), puis affichage des infos, et la boucle est bouclée.

    Du coup, tu t'assures que les données ne sont inscrites dans la BDD que lorsque les infos du salarié sont définitives.
    En gros, je déplace votre page 4 (inscription en BDD) après votre page 2 (et ma page 3), c'est-à-dire après affichage des données et acceptation. Si il est nécessaire de modifier la saisie, l'inscription en BDD saute et on repasse directement à la modification. Tout le travail se fait en session, jusqu'à l'acceptation définitive.

    Je ne sais pas si je suis assez clair ...

  18. #18
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    Bah franchement j'ai rien compris

    J'ai pensé a une solution dites moi ce que vous en pensez

    Page 4 une fois mon stockage BDD fait je stocke mes infos dans la session et je renvoye vers Page 2

    Dans la page 2 au début je mets une conditionnel genre if(isset(post))

    Si c'est le cas c'est donc que je viens de la Page 1 donc je remplit mes variables avec ce qui est dans le post

    Si c'est pas le cas je regardes si j'ai mes variables dans la session si c'est le cas je viens de la page 4 et je remplis mes variables avec ce qui est dans la session

    Si ce n'est ni l'un ni l'autre je n'ai pas lieu d'arriver sur cette page donc j'éjecte...

  19. #19
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    C'est un autre moyen, effectivement, et qui marche.
    Le seul petit souci, c'est que tu inscrit tes données en BDD alors même qu'elles peuvent être modifiées dans l'action suivante, ce qui va entraîner un accès BDD supplémentaire (ou plusieurs accès, si l'utilisateur clique plusieurs fois sur modifier).
    D'où mon idée de ne placer l'accès BDD qu'à la fin, quand les données sont définitives :


    Ainsi, l'envoi en post vers page 2 est possible, quelle que soit la page appellante, il n'y a qu'un seul accès BDD, le formulaire de modification est prérempli, etc ...

  20. #20
    Membre actif Avatar de BenoitDenis
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    536
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2005
    Messages : 536
    Points : 237
    Points
    237
    Par défaut
    Vi mais de toutes facon il n'y a qu'un seul utilisateur (login&mdp) qui a acces a cette page donc impossible d'avoir plusieurs access bdd simultanés

    ma solution est plus simple a mettre en place non ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/08/2009, 09h49
  2. [DBNavigator] Vérifier la valeur avant post
    Par jojo86 dans le forum Bases de données
    Réponses: 3
    Dernier message: 13/02/2008, 23h11
  3. [AJAX] Envois de valeur en POST
    Par lermit dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/12/2007, 21h27
  4. [AJAX] Impossible de récupérer les valeurs en Post
    Par Tommyl dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/06/2007, 20h30
  5. passage d'une valeur avec post
    Par yogui41 dans le forum Langage
    Réponses: 6
    Dernier message: 29/11/2006, 18h58

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