Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 10/11/2011, 09h36   #1
Futur Membre du Club
 
Inscription : octobre 2009
Messages : 49
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 49
Points : 16
Points : 16
Par défaut vérification de valeur dans champ de formulaire

Bonjour à tous,
je reviens encore vers vous pour un problème que je n'arrive pas à solutionner.
Surement une erreur toute bête mais bon...
Dans un fichier php traitant l'envoi d'un mail après saisie dans un formulaire,
je veux vérifier la valeur de 5 champs, puis j'envoie un mail avec les infos si tout est ok. Sinon, retour au formulaire. Le problème, c'est que si je remplis au moins 4 champs, ça envoi quand même le mail.
surement un problème de fin de boucle mais où ???


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
function precedent() 
{ 
document.write('<form><input type="button" value="Retour" onclick="history.back();"></form>'); 
} 
--> 
</script> 
 
<?php
 
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement 
remplis :<br/><br/>";
 
// vérification des champs
 
if (empty($_POST['Auteur'])) {
$message .= "Veuillez remplir le champ Auteur<br/>";
}
if (empty($_POST['choix'])) {
$message .= "Veuillez indiquer la nature de l'opération<br/>";
}
if (empty($_POST['Nature'])) {
$message .= "Veuillez indiquer le type du matériel<br/>";
}
if (empty($_POST['Serie'])) {
$message .= "Veuillez indiquer le numéro de série<br/>";
}
if (empty($_POST['Copernic'])) {
$message .= "Veuillez indiquer le champ test<br/>";
}
 
// si un champ est vide, on affiche le message d'erreur et on stoppe le script
if (strlen($message) > strlen($msg_erreur)) {
	echo $message;
	echo '<br><br>';
	echo '<script language="JavaScript">precedent()</script>'; 
	die();
}
 
.....
?>
merci pour le coup de main
kck61 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 10h12   #2
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Bonjour,

tu peux le faire éventuellement avec un tableau :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
$tabError = array();
 
if (empty($_POST['Auteur'])) {
$tabError['Auteur'] = "Veuillez remplir le champ Auteur<br/>";
}
if (empty($_POST['choix'])) {
$tabError['choix'] = "Veuillez indiquer la nature de l'opération<br/>";
}
if (empty($_POST['Nature'])) {
$tabError['Nature'] = "Veuillez indiquer le type du matériel<br/>";
}
if (empty($_POST['Serie'])) {
$tabError['Serie'] .= "Veuillez indiquer le numéro de série<br/>";
}
if (empty($_POST['Copernic'])) {
$tabError['Copernic'] = "Veuillez indiquer le champ test<br/>";
}
 
if ( empty($tabError) ) {
// envoi mail
}
else {
// Affichage erreur
 
foreach($tabError as $val) {
 
echo $val, '<br />';
 
}
 
}
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 10h41   #3
Futur Membre du Club
 
Inscription : octobre 2009
Messages : 49
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 49
Points : 16
Points : 16
Merci de t'intéresser à mon pb.
le code marche impec' en ce qui concerne la validation des 5 champs obligatoires.
seulement, il me retourne pas le nom des champs à remplir dès qu'on en a oublié un.
$val ?
kck61 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 11h07   #4
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Oui,

$val dans le foreach te renverra les messages.

normalement la boucle foreach te renverra les messages contenus dans le tableau

fais :

Code :
1
2
3
4
5
6
7
// Affichage erreur
 
echo '<pre>';
print_r($tabError);
echo '</pre>';
 
foreach($tabError as $val) {
tu verras les messages à afficher
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/11/2011, 11h21   #5
Futur Membre du Club
 
Inscription : octobre 2009
Messages : 49
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 49
Points : 16
Points : 16
ça marche nickel
Merci beaucoup syl2095
bonne journée à toi

+1 bien entendu
kck61 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 06h26.


 
 
 
 
Partenaires

Hébergement Web