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 :

Redirection avec méthode POST


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de richard_sraing
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2005
    Messages : 483
    Points : 182
    Points
    182
    Par défaut Redirection avec méthode POST
    Bonjour tout le monde,

    Alors voilà, je me suis lancé dans le développement d'une page web en php, et je me retrouve face à mon premier problème qui est relativement simple à comprendre.

    J'ai une première page, qui contient un formulaire (appelons la PageA.php).
    Lors de la validation du formulaire se trouvant sur cette page, je fais appel à une autre page (appelons la PageB.php) qui sera chargée de vérifier les données qui ont été saisie sur PageA.php.

    Alors il y a deux possibilités,
    - les données sont correctes, alors elles seront enregistrées dans la BD (se sera fait au sein de la PageB.php).
    - les données ne sont pas correctes (alpha au lieu de numérique ou autres problèmes), alors je souhaite que PageB.php redirige vers PageA.php et renvoyant le formulaire précédemment créé, de manière à pouvoir réafficher les données dans les différents champs du formulaire (il y a également une série de variable qui sont rajoutées au $_POST de manière à situer les erreurs).

    Lorsque je reviens sur la PageA.php, je vérifie si les variable d'erreur sont initialisées, et en fonction, je change la présentation des labels associés au champ du formulaire.

    Maintenant, ma question est la suivante, est-il possible de faire passer un formulaire de page en page, sans devoir repasser par un formulaire disposant de champs hidden, et de devoir valider celui-ci par Java Script? (Je souhaite éviter l'utilisation de Java Script dans la page).

    J'espère que ma question est claire, et que vous pourrez m'aider à mettre en place un joli petit système

    Ou alors, est ce qu'il serait préférable de créer un fichier php ne contenant une nouvelle fois aucune sortie à l'écran, et de l'include dans la PageA.php, et donc de réaliser la vérification au sein de la page elle même ??
    First step: F.A.Q.
    Second step: Forum -> Recherche
    Thrid step: Forum -> Poser une question
    Fourth step: Forum -> Attendre une réponse
    Fifth step: Forum -> Remercier les personnes ayant répondu et signaler comme résolu

    Simple non ? l'utilisation de developpez.com

  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
    Ca depend de ce que tu dois faire de tes données mais tu peux faire comme ca :
    : Le formulaire retourne sur lui même; si tout est bon, tu rediriges, sinon tu ré-affiches le formulaire.

    Sinon utilise des sessions pour faire voyager tes données.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    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

    J'ai une première page, qui contient un formulaire (appelons la PageA.php).
    Lors de la validation du formulaire se trouvant sur cette page, je fais appel à une autre page (appelons la PageB.php) qui sera chargée de vérifier les données qui ont été saisie sur PageA.php.
    A titre personnel, j'ai jamais adhéré à ce principe. Pour ma part, c'est mélanger 2 choses, donc 2 pages.

    Chacun fait comme il veut, évidemment, de mon coté je recharge la même page, tout simplement
    Donc dans le formulaire, l'action sera la même page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="PageA.php" />
    Le fait de recharger la même page, et bien s'il y a erreur, il n'y pas besoin de retransmettre.
    Suffit d'exploiter les données reçues en POST ou GET.

    Par contre, une fois avoir traité tout ce qui doit être fait grâce à ces données, dans le cas ou il n'y a pas erreur, et bien au bout, on peu faire une redirection avec un header() vers la page PageB.php.

    Ca me semble simple et efficace.


    Pour ce faire, très souvent, je rajoute un champ caché avec comme nom "action" et une valeur qui définira les traitements qui seront à faire.
    Au bout ça donne un truc du genre :
    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
     
    <?php
    $action = (isset($_POST['action']) && !empty($_POST['action'])) ? : NULL;
    //
    if (!empty($action)) {
    	switch ($action) {
    	case 'insertion' :
    		// ... code concernant l'insertion ...
    		if ($error == false) {
    				header('Location: PageB.php');
    		}
    	break;
    	}
    }
    ?>
     
    <html>
    	... partie HTML PageA ...
    </html>
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  4. #4
    Membre habitué Avatar de richard_sraing
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2005
    Messages : 483
    Points : 182
    Points
    182
    Par défaut
    Alors là, je dois dire chapi chapeau RunCodePhp. J'avais pensé aussi à rediriger sur la même page, mais n'avait aucune idée de comment savoir si je venais de valider le formulaire, ou alors si je venais d'une pageX.

    Je pense que je vais songer de plus près à la solution proposée.

    Je laisse le post ouvert tant que le point n'est pas tout à fait fonctionnel (veuillez d'avance m'en excuser).

    Sur-ce, bonne soirée à tous.
    First step: F.A.Q.
    Second step: Forum -> Recherche
    Thrid step: Forum -> Poser une question
    Fourth step: Forum -> Attendre une réponse
    Fifth step: Forum -> Remercier les personnes ayant répondu et signaler comme résolu

    Simple non ? l'utilisation de developpez.com

Discussions similaires

  1. [Toutes versions] Récupérer des données internet générée sous html par un Formulaire avec méthode "POST"
    Par philoul dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 05/08/2013, 15h44
  2. WebService REST avec méthode POST
    Par tetsu no tama dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 18/04/2011, 16h19
  3. Réponses: 26
    Dernier message: 09/07/2009, 09h55
  4. Redirection avec variable POST vers autre domaine
    Par Digiduck dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 11/05/2009, 10h38
  5. Réponses: 3
    Dernier message: 07/03/2005, 15h08

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