Posez votre question Signaler

Vérification formulaire PHP [Résolu]

sethyy 31Messages postés 25 octobre 2008Date d'inscription - Dernière réponse le 28 oct. 2009 à 13:33
Bonjour,
Je désirerais faire une vérification d'un formulaire en PHP. Je m'explique : j'ai deux fichiers, formulaire.php et traitement.php
Comme vous le devinez, formulaire.php envoie les informations des champs remplis à traitement.php.
Seulement voila : dans formulaire.php, je souhaiterais établir un script qui vérifie si un champs obligatoire a été rempli, et si ce n'est pas le cas, afficher un message d'erreur juste à coté du champ... Enfin, si l'utilisateur a bien rempli tous les champs obligatoires, les données sont transmises à traitement.php
Voici le code de formulaire.php :
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="traitement.php">
<p>
Nom * :
<input type="text" name="nom" id="textfield" />
<?php
if(isset($_REQUEST["envoyer"]))
{
if(!isset($_REQUEST["nom"]) || $_REQUEST["nom"]=="")
{
die ("Ce champ doit être renseigné.");
}
}
?>
</p>
<p>
Prénom * :
<input type="text" name="prenom" id="textfield" />
<?php
if(isset($_REQUEST["envoyer"]))
{
if(!isset($_REQUEST["prenom"]) || $_REQUEST["prenom"]=="")
{
die ("Ce champ doit être renseigné.");
}
}
?>
</p>
<p>
<input type="submit" name="envoyer" id="button" value="Envoyer" />
</p>
</form>
</body>
</html>
Merci d'avance pour votre aide !!
Lire la suite 

Vérification formulaire PHP »

13 réponses
Réponse
+3
moins plus
bonsoir voila un bout de code qui peut t'aider : ( simple avec un code claire )

if(isset($_POST["envoyer"]))
{

if(!isset($_POST["nom"]) || $_POST["nom"]=="")
{
$nom = "Ce champ doit être renseigné.";
}
elseif(!isset($_POST["prenom"]) || $_POST["prenom"]=="")
{
$prenom = "Ce champ doit être renseigné.";
}
else {

header('location:traitement.php');

}

}

~~~~~~~~~~
by Muska92
http://www.easy-ocas.com
Ajouter un commentaire
Réponse
+0
moins plus
tu veux pas faire ça en javascript c'est (pour moi) pour approprié ?
Ajouter un commentaire
Réponse
+0
moins plus
Bonsoir Soadmystic,

Non je préfère le faire en PHP, au cas où l'utilisateur désactive le JS...
Ajouter un commentaire
Réponse
+0
moins plus
bon bah j'ai trouvé :

<?php
if(isset($_POST["envoyer"])) {

if(!isset($_POST["nom"]) || $_POST["nom"]=="") {
$nom = "Ce champ doit être renseigné.";
} else {
$nom = "";
}

if(!isset($_POST["prenom"]) || $_POST["prenom"]=="") {
$prenom = "Ce champ doit être renseigné.";
} else {
$prenom = "";
}

if (($nom == "") && ($prenom == "")) {
header('location:traitement.php');
}
}
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="#">
<p>
Nom * :
<input name="nom" type="text" id="textfield" value="<?php
if (isset ($_POST['nom'])) {
echo $_POST['nom'];
}
?>" />
<?php
if(isset($_POST["envoyer"])) {
echo $nom;
}
?>
</p>
<p>
Prénom * :
<input name="prenom" type="text" id="textfield" value="<?php
if (isset ($_POST['prenom'])) {
echo $_POST['prenom'];
}
?>" />
<?php
if(isset($_POST["envoyer"])) {
echo $prenom;
}
?>
</p>
<p>
<input type="submit" name="envoyer" id="button" value="Envoyer" />
</p>
</form>
</body>
</html>

RoCk n' RoLL !
Ajouter un commentaire
Réponse
+0
moins plus
Rectification! Il y a un problème...

Les messages d'erreurs s'affichent, ca ok. Mais aucune information n'est envoyée à traitement.php !

Aidez-moiiiiiiii j'en peux plus :(:(:(
Ajouter un commentaire
Réponse
+0
moins plus
Personne pour m'aider ? :(
Ajouter un commentaire
Réponse
+0
moins plus
merci beaucoup ca a marché!!!
Ajouter un commentaire
Réponse
+0
moins plus
il faut que utilise le language javascript parceque c'est un language client (il s'exécute chez le client donc ta pas besoin d'envoyer les données au serveur).
c'est la solution la plus fiable.
Ajouter un commentaire
Réponse
+0
moins plus
si tu veux utiliser le php donc tu dois apprendre l'ajax.
leica69 - 7 janv. 2009 à 17:09
Il a raison de vouloir le faire ne php au cas où l'utilisateur aurait désactivé je JS.Ajax utilise du JavaScript, donc inutile dans son cas.

Il faudrait idéalement faire une vérification:
- JS avant l'envoi du formulaire
- php après l'envoi mais avant l'enregistrement
Ajouter un commentaire
Réponse
+0
moins plus
bonjour svp sethyy comment ça a marché moi il m'affiche pas les erreurs :s , je dois faire la meme chose svp répondez :(
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,


Je suis débutant et je n'arrive pas a faire fonctionner mon formulaire newsletter. Pouvez vous me donner un coup de main sur ce problème de premier choix.

Je ne reçois pas l' Email de confirmation

Pouvez-vous adapter <?php……?> avec <form>……</form>


Le lien de ma page: http://www.cijoint.fr/cjlink.php?file=cj200910/cijyw5NMrK.txt


<head>

<?php if($_POST['action'] == "formok")
{
$e_mail = $_POST['email'];
if($e_mail == ""|| $e_mail == "e-mail")
{
$txt = " votre e-mail";
}
else
{
$destinataire= "bwba@hotmail.fr";
$objet = "Demande d'inscription";
$headers = "From: bwba@hotmail.fr \n\r";
$headers.= "Content-Type: text/html; charset=utf-8";
$headers .= "MIME-Version: 1.0 ";
$msg = "Nous vous informons d'une demande d'inscription suivant : ". $e_mail ."";
$msg = nl2br($msg);
mail($destinataire, $objet, $msg, $headers);
$msg2= "
Nous avons bien pris en compte votre demande d'inscription ? la newsletter.
Pour vous d?sinscrire, contactez nous

";
mail($e_mail, $objet, $msg2, $headers);
$txt = "Vous avez un message";
}
}
?>
</head>





<style type="text/css">
body {
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:60%;
margin:50px;
color:#666666;}
.fieldset {
width:300px;
border: 0px solid red;
}
.fieldset label {
text-align:right;
width:70px;
float:left;
padding:0.2em;
margin:0;
margin-top:0.3em;
}
.fieldset .nobr {display:none;} .fieldset .textfield {
margin:3px;
height:20px;
width:200px;
border:solid 1px #8caf10;
background: transparent url("http://") no-repeat;
}
.fieldset .textarea {
margin:3px;
height:165px;
width:200px;
border:solid 0 #fff;
}
.submit {
margin:3px;
height:20px;
border:solid 1px #8caf10;
width:80px;
font:1.1em Verdana, Arial, Helvetica, sans-serif;
color:#000000;
text-transform:uppercase;
background: transparent url("http://") no-repeat;
}
}
</style>




<body>

<form action="" method="post">
<fieldset class="fieldset"><br>
<span class="" style="direction: ltr; text-align: left;"><label
for="email"></label></span> <br class="nobr">
<input name="email" class="textfield" id="email"
type="text"> <span class=""
style="direction: ltr; text-align: left;"><br>
<span class="" style="direction: ltr; text-align: left;">
<br class="nobr">
<br>
<label for="submit"> </label><br
class="nobr">
<input name="submit" class="submit" id="submit"
value="envoyer" type="submit"></span></span></fieldset>
</form>

</body>
leica69 - 28 oct. 2009 à 13:33
Tu ne mets pas d'action dans ton formulaire <form action="mapage.php" ...>
Le formulaire ne sait dont pas quelle page charger pour le traitement des données.

Si tu as toujours de problèmes, essaie de faire des "echo" pour voir o?u en est le traitement des données


<?php
echo "Début de l'analyse";
if($_POST['action'] == "formok")
{
echo "Le formulaire est OK";
...
}
...
?>
...
Ajouter un commentaire
Ce document intitulé « Vérification formulaire PHP » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?