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 :

variable désignant le nom du formulaire


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Par défaut variable désignant le nom du formulaire
    Bonjour,
    je suis en train de créer une page contenant plusieurs formulaires. Ces formulaires ont la même page pour cible et j'utilise,pour savoir quel formulaire a était envoyer, ce genre de chose :

    "if(isset($_POST['nom_d'un_champ_du_premier_formulaire']))
    {
    recevoir le premier formulaire
    }
    "if(isset($_POST['nom_d'un_champ_du_deuxième_formulaire']))
    {
    recevoir le deuxième formulaire
    }
    "if(isset($_POST['nom_d'un_champ_du_troisième_formulaire']))
    {
    recevoir le troisième formulaire
    }"

    J'aimerais savoir si il existe une variable désignant le nom du formulaire et non le nom d'un de ses constituants.
    J'espère avoir été assez claire. Merci pour toutes informations...

  2. #2
    Fabouney
    Invité(e)
    Par défaut
    Salut,

    bah met un "nom" différent au boutton submit de chaque formulaire et comme ca tu seras lequel à été envoyé.

    Cordialement.

  3. #3
    Membre éprouvé
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Par défaut
    Tu peux utiliser la variable spéciale $_SERVER['HTTP_REFERER'] qui contient la page appelante du script.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $page = basename(parse_url($_SERVER['HTTP_REFERER'], PHP_URL_PATH));
    if ($page == "premier.php") {
        ...
    } elsif ($page == "deuxieme.php") {
        ...
    } elsif ($page == "troisieme.php") {
        ...
    } else {
        echo "Source inconnue";
    }
    Je n'ai pas testé la solution, reporte-toi à la documentation de la fonction parse_url en cas de problème.

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Non, ça n'existe pas. Le nom du formulaire n'est jamais transmis et même s'il l'était, tu le recevrais comme n'importe quelle autre variable. Je te propose 3 approches pour ton pb :
    1. Utiliser une variable cachée qui contient le nom du formulaire et dans le cas tu utilises un if($_POST['nom_formulaire'] == "formulaire1")
    2. Utiliser un préfixe à toutes tes variables pour identifier le formulaire ("form1.var1", "form1.var2", etc.). Dans ce cas, il faut une boucle sur le nom de tous les paramètres récupérer pour savoir de quel formulaire il s'agit.
    3. Changer ta façon de gérer les formulaires pour utiliser différents scripts par formulaire et utiliser include/require/require_once pour factoriser et mutualiser les traitements.

  5. #5
    Fabouney
    Invité(e)
    Par défaut
    Il n'est pas préférable d'utiliser la variable global HTTP_REFERER :

    'HTTP_REFERER'
    L'adresse de la page (si elle existe) qui a conduit le client à la page courante. Cette valeur est affectée par le client, et tous les clients ne le font pas. Certains navigateurs permettent même de modifier la valeur de HTTP_REFERER, sous forme de fonctionnalité. En bref, ce n'est pas une valeur de confiance.
    et puis pour faire ce qu'il doit faire je trouve la méthode un peu "barbare".

    Cordialement.

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Effectivement, y a aussi la possibilité de mettre un nom différent au bouton submit.

    Quant au referrer, c'est une mauvaise idée car certains navigateurs et/ou proxy ne fournissent jamais d'entête referer pour des raisons de confidentialité des données, donc ce n'est pas une source fiable.

  7. #7
    Membre éprouvé
    Inscrit en
    Mai 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2006
    Messages : 139
    Par défaut
    et puis pour faire ce qu'il doit faire je trouve la méthode un peu "barbare".
    Je reconnais que c'est un peu bourrin, mais c'était une solution lui évitant de modifier trop son code.

    Il n'est pas préférable d'utiliser la variable global HTTP_REFERER
    J'avais oublié que l'information n'était pas forcément fiable.

  8. #8
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Par défaut
    ok merci pour la réponse qui est donc "non il n'existe pas de possibilité de désigné la variable "nom" d'un formulaire qui a été envoyé."
    Et merci beaucoup pour la solution qui sera, pour moi, de désigner le nom du bouton submit, cela m'évitant de changer ma façon de faire.
    Merci aussi pour la rapidité des réponses!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] nom du formulaire en variable
    Par thermo dans le forum IHM
    Réponses: 4
    Dernier message: 19/07/2011, 12h09
  2. [AC-2007] Utilisation d'une variable contenant le nom d'un formulaire
    Par Azuchi dans le forum IHM
    Réponses: 3
    Dernier message: 30/06/2010, 20h26
  3. Variable dans le nom d'un formulaire
    Par Chacha35 dans le forum Windows Forms
    Réponses: 10
    Dernier message: 01/10/2009, 15h10
  4. [FORMULAIRE][VBA]nom de formulaire variable
    Par Sephiroth_ttt dans le forum VBA Access
    Réponses: 3
    Dernier message: 23/05/2007, 15h31
  5. Réponses: 2
    Dernier message: 27/07/2006, 13h57

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