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 29/09/2008, 13h17   #1
Invité de passage
 
Inscription : septembre 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 5
Points : 1
Points : 1
Par défaut Rendre des champs obligatoires

Bonjour à tous, j'ai fait ce formulaire tant bien que mal mais je bloque pour rendre certains champs obligatoires (nom, ville et email), je vous poste mon code php.

Merci d'avance

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
<?php
 
 
$to      = "xxxxxxxx@xxxxx.xx";
$subject = "Information xxxxxxxxxx [xxxxxxx.xxx]";
 
// Consruction du message
$message = "Nom : ".$_POST['nom']."\r\n";
$message .= "Société : ".$_POST['societe']."\r\n";
$message .= "Adresse : ".$_POST['adresse']."\r\n";
$message .= "Ville : ".$_POST['ville']."\r\n";
$message .= "Code postal : ".$_POST['postal']."\r\n";
$message .= "Téléphone : ".$_POST['telephone']."\r\n";
$message .= "Email : ".$_POST['mail']."\r\n";
 
 
 
$message = stripslashes(trim($message)); // nettoyage du message
$message = wordwrap($message, 75 ); // retour à la ligne tout les 75 caractères (pour amélioré la lisibilité du message reçu)
 
$headers = "From: ".$_POST['mail']."\r\n"; // pour avoir l'email de l'expéditeur
$headers .= "Bcc: xxxxx@xxxxx.com"; // pour envoyer une copie cachée à une autre adresse
 
 
 
mail($to, $subject, $message, $headers); // envoi du message
header ("Location: http://www.xxxx.be/merci.html"); // page à afficher quand le message est envoyé
?>
imelda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 13h49   #2
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 453
Points : 5 453
Bonjour et bienvenue sur le forum

Tu peux t'inspirer de cette rubrique de la Contrôler et réafficher un formulaire avec les valeurs déjà saisies
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 15h25   #3
Invité de passage
 
Inscription : septembre 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 5
Points : 1
Points : 1
Merci pour cette réponse mais hélas elle ne m'éclaire pas vraiment plus, je viens de voir plusieurs méthodes différentes et chaque fois que j'en essaye une ça ne fonctionne pas, je penses que je ne mets pas ce qu'il faut au bon endroit.
imelda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 15h32   #4
Membre Expert
 
Avatar de Seb33300
 
Homme Sébastien Alfaiate
Développeur Web
Inscription : janvier 2007
Messages : 1 330
Détails du profil
Informations personnelles :
Nom : Homme Sébastien Alfaiate
Âge : 26
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2007
Messages : 1 330
Points : 1 659
Points : 1 659
En gros tu peux faire :

Code :
1
2
3
4
5
if(($_POST['nom'] != "") and ($_POST['prenom'] != "")){   // Liste des champs obligatoire
    // ici tu place le code que tu as mis dans ton premier post
} else {
    echo 'Vous devez remplir les champs obligatoires.';
}
Seb33300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 15h36   #5
Invité de passage
 
Inscription : septembre 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 5
Points : 1
Points : 1
Merci beaucoup pour cette réponse seb, excuses moi si tu me trouves chiant mais est il possible de faire plutôt apparaitre une popup pour indiquer aux gens qu'ils n'ont pas remplis les champs plutôt qu'une nouvelle page.

En tout cas merci pour ta réponse
imelda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 17h02   #6
Nouveau Membre du Club
 
Inscription : août 2007
Messages : 51
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 51
Points : 39
Points : 39
Si tu veut pas que la page se recharge le problème deviens en javascript et pas en PHP.

Toute soumission de formulaire en PHP te fera obligatoirement rechargée la page.
oOSebOo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 17h11   #7
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 453
Points : 5 453
Citation:
Envoyé par oOSebOo Voir le message
Si tu veut pas que la page se recharge le problème deviens en javascript et pas en PHP.
Sachant qu'une validation en javascript ne remplace jamais une validation en php, puisqu'il suffit à ton utilisateur de désactiver javascript dans son navigateur pour la contourner...

Sinon, imelda, si tu nous donnais un des codes que tu as essayé, on pourrait peut-être t'aider à le déboguer...
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 17h46   #8
Invité de passage
 
Inscription : septembre 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 5
Points : 1
Points : 1
Je penses que je n'ai pas été clair dans ma demande, pour le moment avec la solution donnée j'ai une page qui s'affiche avec:

"Vous devez remplir les champs obligatoires"

Ma question est, serait il possible d'avoir cette phrase qui s'affiche dans une popup sur ma page de contact au lieu d'afficher une page blanche avec juste cette phrase à l'utilisateur.

Pour ce qui est du code le voici

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
if(($_POST['nom'] != "") and ($_POST['prenom'] != "")){   // Liste des champs obligatoire
 
$to      = "xxxx@xxxx.be";
$subject = "Information xxxxx [xxxxxx.be]";
 
// Consruction du message
$message = "Nom : ".$_POST['nom']."\r\n";
$message .= "Société : ".$_POST['societe']."\r\n";
$message .= "Adresse : ".$_POST['adresse']."\r\n";
$message .= "Ville : ".$_POST['ville']."\r\n";
$message .= "Code postal : ".$_POST['postal']."\r\n";
$message .= "Téléphone : ".$_POST['telephone']."\r\n";
$message .= "Email : ".$_POST['mail']."\r\n";
 
 
 
$message = stripslashes(trim($message)); // nettoyage du message
$message = wordwrap($message, 75 ); // retour à la ligne tout les 75 caractères (pour amélioré la lisibilité du message reçu)
 
$headers = "From: ".$_POST['mail']."\r\n"; // pour avoir l'email de l'expéditeur
$headers .= "Bcc: xxxxxx@xxxxxx.com"; // pour envoyer une copie cachée à une autre adresse
 
 
 
mail($to, $subject, $message, $headers); // envoi du message
header ("Location: http://www.xxxxxxx.be/merci.html"); // page à afficher quand le message est envoyé
 
} else {
    echo 'Vous devez remplir les champs obligatoires.';
}
 
?>
imelda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 18h37   #9
Invité de passage
 
Inscription : septembre 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 5
Points : 1
Points : 1
J'ai résolus mon soucis merci à tous pour vos réponses rapides et votre aide
imelda 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 06h45.


 
 
 
 
Partenaires

Hébergement Web