PHP Valider un formulaire avec variable
Fermé
philrouge
Messages postés
12
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
23 juillet 2013
-
14 sept. 2007 à 00:26
philrouge Messages postés 12 Date d'inscription vendredi 14 septembre 2007 Statut Membre Dernière intervention 23 juillet 2013 - 14 sept. 2007 à 10:57
philrouge Messages postés 12 Date d'inscription vendredi 14 septembre 2007 Statut Membre Dernière intervention 23 juillet 2013 - 14 sept. 2007 à 10:57
A voir également:
- PHP Valider un formulaire avec variable
- Formulaire de réclamation facebook - Guide
- Easy php - Télécharger - Divers Web & Internet
- Formulaire de reclamation instagram - Guide
- Confirmer le nouvel envoi du formulaire err_cache_miss ✓ - Forum PHP
- Problème avec Google Chrome - Forum Google Chrome
7 réponses
Salut
je n 'ai pas de serveur sous la main pour tester ton code, mais déja il faut que tu récup_re les variables de la ligne de commande par "$_GET"
petit récapitulatif :
$_GET["toto"] -> récupère la variable venant d'une requete get (ex: page.php?toto=1)
$_POST["toto"] -> récupère la variable venant d'une requete post (d'un champ de formulaire appelé toto)
$_REQUEST["toto"] -> récupère la variable venant d'une requete get ou post
si le mode "register_globals" est activé sur tons erveur PHP, alors tu n'a pas besoin d'utiliser ces instructions et la $toto est automatiquement créée, mais ce mode est désacivé chez tous les hébergeurs et par defaut dans les dernières versions de PHP,
car non sécurisé.
j'espère que déja ca t'aidera, sinon poste ton code complet, je ne voit pas par exemple d'ou vient ton champ "monchoix" ou la fonction "est_selectionne_version()"
je n 'ai pas de serveur sous la main pour tester ton code, mais déja il faut que tu récup_re les variables de la ligne de commande par "$_GET"
petit récapitulatif :
$_GET["toto"] -> récupère la variable venant d'une requete get (ex: page.php?toto=1)
$_POST["toto"] -> récupère la variable venant d'une requete post (d'un champ de formulaire appelé toto)
$_REQUEST["toto"] -> récupère la variable venant d'une requete get ou post
si le mode "register_globals" est activé sur tons erveur PHP, alors tu n'a pas besoin d'utiliser ces instructions et la $toto est automatiquement créée, mais ce mode est désacivé chez tous les hébergeurs et par defaut dans les dernières versions de PHP,
car non sécurisé.
j'espère que déja ca t'aidera, sinon poste ton code complet, je ne voit pas par exemple d'ou vient ton champ "monchoix" ou la fonction "est_selectionne_version()"
philrouge
Messages postés
12
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
23 juillet 2013
14 sept. 2007 à 01:00
14 sept. 2007 à 01:00
Merci
j'ai bien essayé sur ma page B :
j'ai bien la valeur qui s'affiche mais quand je valide le formulaire le champs de la table qui correspond à idtitre est vide.
Est ce que monde est dans le bon ordre?
j'ai bien essayé sur ma page B :
if (isset($_GET['idtitre'])) $idtitre = $_GET['idtitre']; if (isset($_GET['titre'])) $titre = $_GET['titre'];j'ai même fait un echo "$idtitre, $titre";
j'ai bien la valeur qui s'affiche mais quand je valide le formulaire le champs de la table qui correspond à idtitre est vide.
Est ce que monde est dans le bon ordre?
ah ok, ce que je voit de ton formulaire n'envoie que le champ "version", le formulaire ne transmettra pas la variable idtitre lors de la validation automatiquement, il faut dans ce cas que tu utilise un champ caché entre les balises "form" du formulaire :
<input type="hidden" name="idtitre" value="<?=$idtitre?>">
<input type="hidden" name="toto" value="<?=$toto?>">
etc...
si j'ai bien compris ton problème ;)
<input type="hidden" name="idtitre" value="<?=$idtitre?>">
<input type="hidden" name="toto" value="<?=$toto?>">
etc...
si j'ai bien compris ton problème ;)
philrouge
Messages postés
12
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
23 juillet 2013
14 sept. 2007 à 01:37
14 sept. 2007 à 01:37
J'ai mis les 2 input text
A l'ouverture de la page ils sont bien rempli mais quand je valid ils sont vide !!!
voilà le schéma de mon code sur la page B :
- je récupère la variable : if (isset($_GET['idtitre'])) ...
- je teste $version et si il n'est pas vide j'écris dans la table
- je récupère les données entrées dans la table
- j'affiche le formulaire qui contient les 2 input type text + les autres éléments du formulaire
- mon bouton submit
ici mon formulaire est fermé
A l'ouverture de la page ils sont bien rempli mais quand je valid ils sont vide !!!
voilà le schéma de mon code sur la page B :
- je récupère la variable : if (isset($_GET['idtitre'])) ...
- je teste $version et si il n'est pas vide j'écris dans la table
- je récupère les données entrées dans la table
- j'affiche le formulaire qui contient les 2 input type text + les autres éléments du formulaire
- mon bouton submit
ici mon formulaire est fermé
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
de quel input type text tu parle ? tu utilise bien un champ caché ? (hidden)
attention, la 2eme fois (quand le formulaire est posté), il faut utiliser $_POST['idtitre'] et non $_GET['idtitre'],
car les données proviennent d'un formulaire (method="POST")
utilise donc $_REQUEST["idtitre"] au lieu de $_GET ca sera + simple.
si je repond encore a coté, poste le code complete de ta page stp, parceque j'avour que j'ai du mal a comprendre :)
attention, la 2eme fois (quand le formulaire est posté), il faut utiliser $_POST['idtitre'] et non $_GET['idtitre'],
car les données proviennent d'un formulaire (method="POST")
utilise donc $_REQUEST["idtitre"] au lieu de $_GET ca sera + simple.
si je repond encore a coté, poste le code complete de ta page stp, parceque j'avour que j'ai du mal a comprendre :)
un exemple :
// verifie si un id, sinon on quitte
if (!isset($_REQUEST['idtitre'])) die("erreur interne");
// ------------ le fomulaire a été posté, on enregistre
if (isset($_POST['version'])) {
// on recupere chaque variable envoyée par le formulaire
$idtitre = addslashes($_POST["idtitre"]);
$version = addslashes($_POST["version"]);
etc, pareil pour tous les champs...
$sql = "INSERT INTO version_dvd(id,id_titre, version, langue, sous_titre, langue_sous_titre, public, region, compatibilite, format, nbre_disque, bonus, format_image, format_original, audio, son, bande_annonce)
VALUES('','$idtitre','$version','$langue','$sous_titre','$langue_sst','$public','$region','$compatibilite','$format','$nbdisq','$bonus','$f_image','$f_original','$audio','$son','$b_annonce')";
}
// ------------ on récupère les infos pour la fiche "idtitre"
// note : a partir d'ici, on utilise $_REQUEST au lieu de get, car les variables proviennent soit de l'url(get) ou du formulaire(post)
$sql = mysql_query('SELECT titres.* FROM titres WHERE id_titre = '.$_REQUEST["idtitre"].'');
if (mysql_num_rows($sql) > 0){
$res = mysql_fetch_array($sql);
$id = $res['id'];
$idtitre = $res['id_titre'];
$version = $res['version'];
...
$titre = $res['titre'];
}
<form name='dvd' method='POST'>
... on met un champ caché pour transmettre l'id ...
<input type="hidden" name="idtitre" value="<?=$_REQUEST["idtitre"]?>">
...et les autres champ, avec les variables recupérées de sql
<input type="text" name="titre" value="<?=$titre?>">
</form>
// verifie si un id, sinon on quitte
if (!isset($_REQUEST['idtitre'])) die("erreur interne");
// ------------ le fomulaire a été posté, on enregistre
if (isset($_POST['version'])) {
// on recupere chaque variable envoyée par le formulaire
$idtitre = addslashes($_POST["idtitre"]);
$version = addslashes($_POST["version"]);
etc, pareil pour tous les champs...
$sql = "INSERT INTO version_dvd(id,id_titre, version, langue, sous_titre, langue_sous_titre, public, region, compatibilite, format, nbre_disque, bonus, format_image, format_original, audio, son, bande_annonce)
VALUES('','$idtitre','$version','$langue','$sous_titre','$langue_sst','$public','$region','$compatibilite','$format','$nbdisq','$bonus','$f_image','$f_original','$audio','$son','$b_annonce')";
}
// ------------ on récupère les infos pour la fiche "idtitre"
// note : a partir d'ici, on utilise $_REQUEST au lieu de get, car les variables proviennent soit de l'url(get) ou du formulaire(post)
$sql = mysql_query('SELECT titres.* FROM titres WHERE id_titre = '.$_REQUEST["idtitre"].'');
if (mysql_num_rows($sql) > 0){
$res = mysql_fetch_array($sql);
$id = $res['id'];
$idtitre = $res['id_titre'];
$version = $res['version'];
...
$titre = $res['titre'];
}
<form name='dvd' method='POST'>
... on met un champ caché pour transmettre l'id ...
<input type="hidden" name="idtitre" value="<?=$_REQUEST["idtitre"]?>">
...et les autres champ, avec les variables recupérées de sql
<input type="text" name="titre" value="<?=$titre?>">
</form>
philrouge
Messages postés
12
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
23 juillet 2013
14 sept. 2007 à 10:57
14 sept. 2007 à 10:57
Je te remercie pour ton aide.
J'ai utilisé $_REQUEST et ça a l'air de marché, le champ de ma table contient bien idtitre
Je refais des tests et je reviens si problème.
Merci encore
J'ai utilisé $_REQUEST et ça a l'air de marché, le champ de ma table contient bien idtitre
Je refais des tests et je reviens si problème.
Merci encore