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 12/08/2007, 23h52   #1
Nouveau Membre du Club
 
Inscription : août 2006
Messages : 86
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : août 2006
Messages : 86
Points : 29
Points : 29
Par défaut question pour empty ($_POST

Bonjour,

j'ai plusieur champs de formulaire mais pour eviter les continuels "Notice: Undefined index: Date4 in C:\Program Files\EasyPHP 2.0b1\www\releve\picture.php on line 465" je fais un contrôle préalable sur mes variables.

Mais voilà le script se rallonge car je suis contraint de les faire champs par champs.

Comment faire pour regrouper ces instructions ?

voilà mon code actuel :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$type = '';
$type_acte = '';
$Date1 = '';
 
if (!empty ($_POST['type'])) {
$type = $_POST['type'];
}
 
if (!empty ($_POST['Date1'])){ 
$Date1 = $_POST['Date1']; //jour
}
 
if (!empty ($_POST['Date2'])){
$Date2 = $_POST['Date2']; //mois
}
j'ai mis un raccourci mais mon formulaire comporte plus de 30 champs !!

Merci de votre aide

Aurore
breizhgen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2007, 00h00   #2
Membre habitué
 
Avatar de mimagyc
 
Inscription : novembre 2006
Messages : 310
Détails du profil
Informations personnelles :
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : novembre 2006
Messages : 310
Points : 115
Points : 115
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
if (!empty ($_POST['type'])) {
$type = $_POST['type'];
} else { $type=''; }
 
if (!empty ($_POST['Date1'])){ 
$Date1 = $_POST['Date1']; //jour
} else { $Date1 = ''; }
 
if (!empty ($_POST['Date2'])){
$Date2 = $_POST['Date2']; //mois
} else {$Date2 = ''; }
Ou bien
Code :
1
2
3
4
5
6
7
8
9
10
 
if (!empty ($_POST['type']) && !empty ($_POST['Date1']) && !empty ($_POST['Date2'])) {
$type = $_POST['type'];
$Date1 = $_POST['Date1'];
$Date2 = $_POST['Date2'];
} else {
$type = '';
$Date1 = '';
$Date2 = '';
}
mimagyc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2007, 00h12   #3
Nouveau Membre du Club
 
Inscription : août 2006
Messages : 86
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : août 2006
Messages : 86
Points : 29
Points : 29
Bonsoir,

j'avais déjà essayé ta seconde méthode, mais le soucis c'est que si on ne remplit pas un des champs les variables ne sont pas prises en compte.

Par contre pour première c'est vrai que cela fait plus propre.

Je reste toujours bloqué

Merci quand même

Aurore
breizhgen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2007, 00h33   #4
Membre habitué
 
Avatar de mimagyc
 
Inscription : novembre 2006
Messages : 310
Détails du profil
Informations personnelles :
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : novembre 2006
Messages : 310
Points : 115
Points : 115
je comprend pas ce que tu veus faire,
selon ton code, si la personne n'as pas donner d'information au champs, il sera vide, ...
mais tu n'as pas besoin de le vérifier?
exemple:
si la personne remplie le champ1 , mais pas le champ2
le champ1 aura comme donné sont contenue, mais le champ2 sera vide mais existera quand meme . donc ca donnera ca $_POST['champ1'] = "donnée"; et $_POST['champ2'] = ""; .
apres si tu as des champs obligatoire, la tu fait tes vérifications .
?
mimagyc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2007, 00h37   #5
Nouveau Membre du Club
 
Inscription : août 2006
Messages : 86
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : août 2006
Messages : 86
Points : 29
Points : 29
Tu as raison mais le problème c'est que si je ne fais pas ces verifs j'obtient pour chaque variable cette erreur :

Code :
Notice: Undefined index:
breizhgen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2007, 00h53   #6
Membre habitué
 
Avatar de mimagyc
 
Inscription : novembre 2006
Messages : 310
Détails du profil
Informations personnelles :
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : novembre 2006
Messages : 310
Points : 115
Points : 115
Ha oui ...

Et bien la ... tu n'as pas bcp de solution .. enfin du peu que je connaisse .. dsl,

si tes champs sont numéroté ou quelque chose comme ca , tu peu le faire avec un 'for' .
(ce que je propose par la suite .. je l'ai jamais tester ni essayé ...)
Tu peux au sinon rentré le nom de tes champs dans un array avec des clé numéroté.
ensuite avec un for tu les vérifie.
mimagyc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2007, 08h29   #7
Nouveau Membre du Club
 
Inscription : août 2006
Messages : 86
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : août 2006
Messages : 86
Points : 29
Points : 29
désolé aucun changement.

Merci quand même
breizhgen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2007, 09h39   #8
Expert Confirmé
 
Avatar de trotters213
 
Inscription : janvier 2005
Messages : 2 572
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2005
Messages : 2 572
Points : 2 605
Points : 2 605

Fais une fonction, ça sera toujors mieux :
Code :
1
2
3
4
5
6
7
8
test($var)
{
  if (!empty ($var)) return $var;
  else return '';
}
 
$type = test($_POST['type']);
$Date1= test($_POST['Date1']);
et tu peux même coupler ceci aux variables dynamiques.
Voici un exemple tout simple d'utilisation
Code :
1
2
3
4
5
6
7
8
9
10
<?php
$out=array('var1'=>10, 'var2'=>'rsdg', 'autre_var'=>true );
print_r($out);
echo '<br />';
 
foreach ($out as $key=>$val) $$key=$val;
echo '**'.$var1.'**<br />';
echo '**'.$var2.'**<br />';
echo '**'.$autre_var.'**';
?>
__________________
Pensez au tag
Les règles du Forum

Dev. Web : FAQ (X)HTML/CSS | Tutos (X)HTML | Tutos CSS

PHP : FAQ PHP | Tutos PHP | Benchmark PHP 5

SQL : Cours SQL
trotters213 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2007, 09h12   #9
Membre régulier
 
Inscription : septembre 2006
Messages : 138
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 138
Points : 81
Points : 81
Envoyer un message via MSN à phpiste
Salut
tu peut utiliser les variables dynamiques avec une boucle pour declarer tous les variables issue de ton formulaire :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$tab=array('nom','prenom','age','login','password') ;
//definir les variables à déclarer 
$count=count($tab);
$source=$_POST	; //la source de tes variables : methode d'envoi du formulaire
 
for($i=0;$i<$count;$i++)
{
	$$tab[$i]=(!empty($source[$tab[$i]]))?$source[$tab[$i]]:'' ;
}
 
echo "nom : ".$nom."<br>" ;
echo "prenom : ".$prenom."<br>" ;
echo "age : ".$age."<br>" ;
echo "login : ".$login."<br>" ;
echo "password : ".$password."<br>" ;
voila malgré que ton formulaire comporte 30 champs il sefit d'ajouter le nom du champs dans le tableau
phpiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 14h10   #10
Nouveau Membre du Club
 
Inscription : août 2006
Messages : 86
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : août 2006
Messages : 86
Points : 29
Points : 29
Salut,

merci beaucoup tout fonctionne impeccable,

merci pour ce tuyau.

@+

Aurore
breizhgen 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 23h33.


 
 
 
 
Partenaires

Hébergement Web