Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/05/2007, 15h25   #1
Invité de passage
 
Étudiant
Inscription : mai 2007
Messages : 5
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 5
Points : 2
Points : 2
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...
Zikriek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 15h36   #2
Fabouney
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Salut,

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

Cordialement.
  Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 15h38   #3
Membre habitué
 
Inscription : mai 2006
Messages : 139
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mai 2006
Messages : 139
Points : 137
Points : 137
Tu peux utiliser la variable spéciale $_SERVER['HTTP_REFERER'] qui contient la page appelante du script.
Code :
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.
gk14fire est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 15h42   #4
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 306
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 306
Points : 8 590
Points : 8 590
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.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 15h42   #5
Fabouney
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Il n'est pas préférable d'utiliser la variable global HTTP_REFERER :

Citation:
'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.
  Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 15h43   #6
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 306
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 306
Points : 8 590
Points : 8 590
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.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 15h46   #7
Membre habitué
 
Inscription : mai 2006
Messages : 139
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mai 2006
Messages : 139
Points : 137
Points : 137
Citation:
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.

Citation:
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.
gk14fire est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 09h48   #8
Invité de passage
 
Étudiant
Inscription : mai 2007
Messages : 5
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 5
Points : 2
Points : 2
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!
Zikriek est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h24.


 
 
 
 
Partenaires

Hébergement Web