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 :

Garder la variable POST malgrés des redirections


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de sarah65536
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2006
    Messages : 93
    Par défaut Garder la variable POST malgrés des redirections
    Bonjour. mon problème n'est pas simple du tout . Je vais essayer d'expliquer cela clairement, mais si vous ne comprenez pas, n'hésitez pas à me demander plus de détails.

    Je créé un site internet en PHP XHTML, avec un BDD mysql.

    Ce site contient une partie d'administration ou l'on peut activer ou désactiver de utilisateurs. ( je precise qu'au lancement du site, il y aura déjà environ 5 000 utilisateurs)

    Ma page d'administration est composé de deux partie. la partie haute ou je propose de rechercher des utilisateurs. ( exemple par nom, code postal, departement etc... )
    et la partie basse ou j'affiche le resultat de ma requete. C'est a dire tous les utiisateurs correspondant aux criteres de ma recherche.

    afin de différencier au mieux le php et le html, j'utilise une classe CUtilisateur, qui recupere les données post, les traite les réaffiche etc...
    jusque la, c'est simple. Tout fonctionne.
    Voila en gros ce que donne la partie basse :
    User1 User1 (actif) desactiver
    User2 User2 (desactif) activer
    User3 User3 (actif) desactiver
    User4 User4 (actif) desactiver
    User5 User5 (actif) desactiver
    Mais, la ca se complique :

    la ou j'affiche ma liste, a cote de chaque ligne, je met un lien, pour activer/desactiver l'utilisateur.

    ce lien m'emmene vers une nouvelle page ou je change l'enregistrement dans ma BDD. Puis, me ramène sur mon formulaire. Le probleme avec cette methode c'est que je perds le resultat de ma requete de recherche. donc si l'administrateur veut desactiver plusieurs utilisateurs, il ne peut qu'apres les avoir recherchés.

    - - - - - - - - - -- - - - - - - - - -- - - - - - - - - -- - - - - - - - - -- - - - -
    Comment faire pour que je puisse garder mes données post lorsque j'active ou desactive mes utilisateurs ?
    j'ai essayer de mettre des input type submit a la place des liens, mais je ne sais pas comment recuperer l'ID de l'utilisateur à modifier. Alors qu'avec la methode du lien, je le passais en GET.

    Je n'ai pas le droit d'afficher la requete dans l'URL.

    J'ai pensé a utiliser les variables de sessions, mais je ne vois pas vraiment comment je pourrais faire.

    L'ideal, serait de conserver les valeur de la variable POST malgres le changement de pages. Mais ca, je ne crois pas non plus que ce soit possible.

    Quelqu'un peut-il m'aider à y voir plus clair ?

    PS, qi quelqu'un a un meilleur titre pour le sujet qu'il me le dise aussi pke je savais pas vraiment quoi mettre.

  2. #2
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    Salut,
    Une question simple et bete : cette page te sert uniquement a mofiqier ta base de donnée ?
    Si tel est le cas,
    - pourquoi ne pas réafficher directement le resultat de ta recherche, avec la ligne modifier ?
    Et donc traiter la modification dans ta base avant d'afficher les informations.

    Autre solution, et a mes yeux la plus simple et la plus ergonomique :
    utiliser de l'AJAX pour realiser la modification, et la repartcuter directement dans ta page.

    Z.

  3. #3
    Membre confirmé Avatar de sarah65536
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2006
    Messages : 93
    Par défaut
    - pourquoi ne pas réafficher directement le resultat de ta recherche, avec la ligne modifier ?
    Et donc traiter la modification dans ta base avant d'afficher les informations.
    Je ne peut pas modifer avant, car les criteres de recherches servent juste à l'administrateur a faire le tri parmis les 5000 utilisateurs. au lieu d'avoir une liste de 5000 il en voit plus que 100 par exemple. et il ne veut pas forcemement tous les désactiver.

    Autre solution, et a mes yeux la plus simple et la plus ergonomique :
    utiliser de l'AJAX pour realiser la modification, et la repartcuter directement dans ta page.
    pas de javascript dans mon site ! C'est formellement interdit par le cahier des charges. seulement PHP.

    Mais merci quand même pour tes propositions.

  4. #4
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    Par curiosité :
    Pourquoi le javascript est-il interdit, alors qu'il apporte énormément a une application web ?

    Pour revenir a ton probleme :
    Le plus simple est d'utiliser les variables de sessions.
    Et le plus lourd est d'utiliser une ou plusieurs variables de formulaires cachées contenant toutes les données.

    Et pour 'le faire avant' :
    Je voulais dire : faire la modif dans la base de données, et refaire la meme recherche (passée dans uen variable de fomulaire cachée)

    Z.

  5. #5
    Membre confirmé Avatar de sarah65536
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2006
    Messages : 93
    Par défaut
    Par curiosité :
    Pourquoi le javascript est-il interdit, alors qu'il apporte énormément a une application web ?
    Et bien parce que si la personne qui va sur le site ne l'a pas activé dans son navigateur, cela ne marchera pas. Je ne veut pas qu'on m'appelle pour me dire "j'arrive pas a faire ça... ni ça... etc" à cause du javascript. J'essaie de limiter les problèmes, pour me faire gagner du temps sur la "hotline"....

    Sinon j'ai en partie réglé mon problème. j'ai utilisé une variable de session, dans laquelle je stocke ma requête. en arrivant sur la page, je test si elle est vide. Si c'est le cas, je ne fais rien, sinon je ré affiche le résultat. Bien sur, j'ai veillé a ce que quand je quitte la partie d'administration, la variable se vide.

    Le problème qui reste n'est pas très gênant. j'en ai parlé à mon chef de projet, je peux ne pas le résoudre, mais ça serai bien d'y remedier, ne serait ce que par conscience professionnelle.

    Avec cette méthode, je recharge la page. Donc, tous les champs que l'utilisateur à rempli pour afficher seulement le résultat de son choix, partent ( normal, il n'y a plus de données dans $_POST) je ne peux pas faire une variable de session par champs... Imaginez si j'en avais 1000... Pas top top.
    Il faudrait donc trouver un moyen pour garder ces données quelque part et les ré afficher à chaque fois.

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 191
    Par défaut
    tu ne trouvera pas de solution miracle pour transmettre tes informations de page en page.
    la méthode get risque de pas être terrible tous passe en claire
    la méthode post pose un problème sur la gestion des boutons activé/désativé surtout sans javascript.
    la méthode des varibles de session semble la plus approprié.
    comme tu poste des champs à la limite suffit d'une boucle que met tous les POST dans la session.

  7. #7
    Membre émérite
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Par défaut
    Citation Envoyé par >>> $@r@h <<< Voir le message
    Et bien parce que si la personne qui va sur le site ne l'a pas activé dans son navigateur, cela ne marchera pas. Je ne veut pas qu'on m'appelle pour me dire "j'arrive pas a faire ça... ni ça... etc" à cause du javascript. J'essaie de limiter les problèmes, pour me faire gagner du temps sur la "hotline"....
    Tu pourrais tester si le javascript est activé, et proposé un lien vers une page d'explication pour l'installer, le cas echeant.
    Personnellement, j'ai deja exigé pour une appli que les utilisateurs aient javascript sur leur becane.

    Citation Envoyé par Helfima
    la méthode get risque de pas être terrible tous passe en claire
    De toute facon, le protocole http n'est pas crypté, donc la page html apparait en claire, y compris le login a l'application. Get est pas envisageable car il y a une limite en taille imposée par le serveur. Post aussi a une limite, mais beaucoup plus large.

    Citation Envoyé par >>> $@r@h <<< Voir le message
    je ne peux pas faire une variable de session par champs... Imaginez si j'en avais 1000... Pas top top.
    tu peux faire une seul variable (session ou post) contenant toutes informations e utilisant des fonctions php de serialisation telles que serialize ou json, et leur inverse pour recuperer ces données.

    Z.

Discussions similaires

  1. Variables POST dans redirection
    Par Julio_del_pueblo dans le forum Zend Framework
    Réponses: 19
    Dernier message: 28/03/2008, 13h27
  2. récupération des noms des variables POST
    Par taffMan dans le forum Langage
    Réponses: 2
    Dernier message: 19/02/2008, 21h13
  3. [cURL] Variable POST et redirection
    Par Stouille89 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 16/08/2007, 19h58
  4. [MySQL] problème avec la récupération des valeurs des variables POST
    Par Jasmine80 dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 11/05/2007, 16h08
  5. Réponses: 22
    Dernier message: 17/03/2006, 21h42

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