Vérification formulaire php [Résolu/Fermé]

Signaler
Messages postés
334
Date d'inscription
vendredi 21 décembre 2007
Statut
Membre
Dernière intervention
15 novembre 2012
-
Messages postés
18503
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
27 janvier 2021
-
Bonjour,
j'ai un une page contenant un formulaire de contact en php 5 et une page de traitement et enregistrement des données dans une base de données Mysql, la création du site est faite à l'aide de Dreamweaver 8 et le j'utilise EasyPHP pour tester en local.
ma question est comment vérifier les données du formulaire avec un script php avant de les enregistrer dans la base de données(champ vide, adresse email non correcte)?
merci d'avance pour votre aide.

11 réponses

Oui mais là tu verifie pas que les saisies sont correctes. A dire qu'on peut saisir n'importe quoi dans tes champs (des chiffre dans le nom et meme du code Html) ... As tu pensé a ca ?
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63550 internautes nous ont dit merci ce mois-ci

Messages postés
168
Date d'inscription
vendredi 8 août 2008
Statut
Membre
Dernière intervention
29 octobre 2011
18
Bonsoir

Contrôler si un champ est vide:

if ($tonchamp = "")
{
...
}

bon ça je pense que tu t'en doutais...

Et pour contrôler si un mail est valide:

http://www.commentcamarche.net/forum/affich 4950125 valide adresse mail php

...etc.
Messages postés
334
Date d'inscription
vendredi 21 décembre 2007
Statut
Membre
Dernière intervention
15 novembre 2012
90
merci bien, ou exatement je met ce code c'est à dire dans la page contenent le formulaire ou dans la page de verification.
Messages postés
168
Date d'inscription
vendredi 8 août 2008
Statut
Membre
Dernière intervention
29 octobre 2011
18 >
Messages postés
334
Date d'inscription
vendredi 21 décembre 2007
Statut
Membre
Dernière intervention
15 novembre 2012

Dans la page de vérif.
Messages postés
334
Date d'inscription
vendredi 21 décembre 2007
Statut
Membre
Dernière intervention
15 novembre 2012
90 >
Messages postés
168
Date d'inscription
vendredi 8 août 2008
Statut
Membre
Dernière intervention
29 octobre 2011

ok merci je vérifie ça tou de suite @+
Messages postés
334
Date d'inscription
vendredi 21 décembre 2007
Statut
Membre
Dernière intervention
15 novembre 2012
90
j'ai pas pu adapter ton code à mon formulaire
je poste le code peut etre ça sera plus simple

code formulaire php:

<form action="traitement.php" method="post" enctype="application/x-www-form-urlencoded" name="form1" target="mainFrame" id="form1">
<table width="372" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="right" nowrap="nowrap">
<label>Nom :
<input name="nom" type="text" id="nom" />
</label> </tr>
<tr>
<td align="right" nowrap="nowrap"><label>Prénom :
<input name="prenom" type="text" id="prenom" />
</label></td>
</tr>
<tr>
<td align="right" nowrap="nowrap"><label>Etablissement*:
<input name="etablissement" type="text" id="etablissement" />
</label></td>
</tr>
<tr>
<td align="right" nowrap="nowrap"><label>Adresse :
<input name="adresse" type="text" id="adresse" />
</label></td>
</tr>
<tr>
<td height="24" align="right" nowrap="nowrap"><label> Ville :
<select name="ville" id="ville">
<option value="non défini">—— Selectionner —— </option>
<option value="Ariana">Ariana</option>
<option value="Béja">Béja</option>
<option value="Ben Arous">Ben Arous</option>
<option value="Bizerte">Bizerte</option>
<option value="Gabes">Gabès</option>
<option value="Gafsa">Gafsa</option>
<option value="Jendouba">Jendouba</option>
<option value="Kairouan">Kairouan</option>
<option value="Kasserine">Kasserine</option>
<option value="Kébili">Kébili</option>
<option value="Kef">Kef</option>
<option value="Mahdia">Mahdia</option>
<option value="Manouba">Manouba</option>
<option value="Médenine">Médenine</option>
<option value="Monastir">Monastir</option>
<option value="Nabeul">Nabeul</option>
<option value="Sfax">Sfax</option>
<option value="Sidi Bouzid">Sidi Bouzid</option>
<option value="Siliana">Siliana</option>
<option value="Sousse">Sousse</option>
<option value="Tataouine">Tataouine</option>
<option value="Tozeur">Tozeur</option>
<option value="Tunis">Tunis</option>
<option value="Zaghouan">Zaghouan</option>
</select>
</label></td>
</tr>
<tr>
<td align="right" nowrap="nowrap"><label>Code postal :
<input name="cp" type="text" id="cp" />
</label></td>
</tr>
<tr>
<td align="right" nowrap="nowrap"><label>Tél :
<input name="telephone" type="text" id="telephone" />
</label></td>
</tr>
<tr>
<td align="right" nowrap="nowrap"><label>Fax :
<input name="fax" type="text" id="fax" />
</label></td>
</tr>
<tr>
<td align="right" nowrap="nowrap"><label>E-mail :
<input name="mail" type="text" id="mail" />
</label></td>
</tr>
<tr>
<td align="right" nowrap="nowrap"><label>Profession :
<input name="profession" type="text" id="profession" />
</label></td>
</tr>
<tr>
<td align="right"><label>
<input type="checkbox" name="newsletter" value="checkbox" checked="checked" />
Je souhaite recevoir la lettre d'information (nouveauté, conseils, offres spéciales)</label></td>
</tr>
</table>
<br />
<table width="372" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="68" bgcolor="#E7E7E7">Référence</td>
<td width="233" bgcolor="#E7E7E7">Désignation</td>
<td width="71" bgcolor="#E7E7E7">Quantité</td>
</tr>
<tr>
<td><input name="ref1" type="text" id="ref1" /></td>
<td><input name="designation1" type="text" id="designation1" /></td>
<td><input name="quantite1" type="text" id="quantite1" /></td>
</tr>
<tr>
<td><input name="ref2" type="text" id="ref2" /></td>
<td><input name="designation2" type="text" id="designation2" /></td>
<td><input name="quantite2" type="text" id="quantite2" /></td>
</tr>
<tr>
<td><input name="ref3" type="text" id="ref3" /></td>
<td><input name="designation3" type="text" id="designation3" /></td>
<td><input name="quantite3" type="text" id="quantite3" /></td>
</tr>
<tr>
<td><input name="ref4" type="text" id="ref4" /></td>
<td><input name="designation4" type="text" id="designation4" /></td>
<td><input name="quantite4" type="text" id="quantite4" /></td>
</tr>
<tr>
<td><input name="ref5" type="text" id="ref5" /></td>
<td><input name="designation5" type="text" id="designation5" /></td>
<td><input name="quantite5" type="text" id="quantite5" /></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td colspan="3"><div align="center">Commentaire* :</div></td>
</tr>
<tr>
<td colspan="3"><div align="center">
<textarea name="commentaire" cols="45" rows="4" id="commentaire" dir="ltr" onfocus="if(this.value=='Laissez-nous votre message')this.value='';" >Laissez-nous votre message</textarea>
</div></td>
</tr>
<tr>
<td colspan="3"><div align="center">
<input name="Envoyer" type="submit" value="Envoyer" />
<input type="reset" name="Submit2" value="Réinitialiser" />
</div></td>
</tr>
</table>
<br />
</form>



code de la page traitement.php

<style type="text/css">
<!--
body {
background-color:#EBEBEB;
margin-left: 10%;
margin-top: 5%;
margin-right: 10%;
margin-bottom: 10%;
}
body,td,th {
font-family: Verdana, Helvetica, sans-serif, Arial Black;
color:#0063C6; font-weight: bold;
}
-->
</style><table width="98%" border="5" align="center" cellpadding="10" cellspacing="3" bgcolor="#FFFFFF" style="border-style:inset; border-color:#00FF40; border-width:thick " >
<tr>
<td><?php
$nom = htmlspecialchars ($_POST['nom']);
$prenom = htmlspecialchars ($_POST['prenom']);
$etablissement = htmlspecialchars ($_POST['etablissement']);
$adresse = htmlspecialchars ($_POST['adresse']);
$ville = htmlspecialchars ($_POST['ville']);
$cp = htmlspecialchars ($_POST['cp']);
$telephone = htmlspecialchars ($_POST['telephone']);
$fax = htmlspecialchars ($_POST['fax']);
$mail = htmlspecialchars ($_POST['mail']);
$profession = htmlspecialchars ($_POST['profession']);
$ref1 = htmlspecialchars ($_POST['ref1']);
$designation1 = htmlspecialchars ($_POST['designation1']);
$quantite1 = htmlspecialchars ($_POST['quantite1']);
$ref2 = htmlspecialchars ($_POST['ref2']);
$designation2 = htmlspecialchars ($_POST['designation2']);
$quantite2 = htmlspecialchars ($_POST['quantite2']);
$ref3 = htmlspecialchars ($_POST['ref3']);
$designation3 = htmlspecialchars ($_POST['designation3']);
$quantite3 = htmlspecialchars ($_POST['quantite3']);
$ref4 = htmlspecialchars ($_POST['ref4']);
$designation4 = htmlspecialchars ($_POST['designation4']);
$quantite4 = htmlspecialchars ($_POST['quantite4']);
$ref5 = htmlspecialchars ($_POST['ref5']);
$designation5 = htmlspecialchars ($_POST['designation5']);
$quantite5 = htmlspecialchars ($_POST['quantite5']);
$commentaire = htmlspecialchars ($_POST['commentaire']);


$db = mysql_connect('localhost', 'root');
mysql_select_db('demandedb',$db);
$sql = 'SELECT * FROM `demandes_devis` ';
$sql = "INSERT INTO demandes_devis ( Nom, Prenom, Etablissement, Adresse, Ville, CP, Telephone, Fax, Mail, Profession, Ref1, Designation1, Quantite1, Ref2, Designation2, Quantite2, Ref3, Designation3, Quantite3, Ref4, Designation4, Quantite4, Ref5, Designation5, Quantite5, Commentaire)
VALUES('$nom','$prenom','$etablissement','$adresse','$ville','$cp','$telephone','$fax','$mail','$profession','$ref1','$designation1','$quantite1','$ref2','$designation2','$quantite2','$ref3','$designation3','$quantite3','$ref4','$designation4','$quantite4','$ref5','$designation5','$quantite5','$commentaire')";
mysql_query($sql)
or die('Erreur SQL !'.$sql.'
'.mysql_error());

echo 'message de confirmation';
mysql_close();
?> </td>
</tr>

</table>


<div align="center"><strong>Continuer </strong></div>



merci pour tout vos aide et proposition
Messages postés
334
Date d'inscription
vendredi 21 décembre 2007
Statut
Membre
Dernière intervention
15 novembre 2012
90
merci pour votre réponse
l'enregistrement du formulaire dans la base de données se fait sans aucun problème, je veux juste savoir comment on peut vérifier les données (champ vide, adresse email non correcte) avant de les enregistrer
Messages postés
18503
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
27 janvier 2021
4 251
Oh désolé j'avais pas lu jusqu'au bout.

Pour cela, il faut utiliser des Regex.
Je te dirige vers le Site Du Zer0 pour apprendre.
Messages postés
334
Date d'inscription
vendredi 21 décembre 2007
Statut
Membre
Dernière intervention
15 novembre 2012
90
merci infinément le_boss j'ai enfin pu adapter ton code, maintenant tout va bien.
merci avion-f16 pour l'info sur les Regex, c'est très interressant.
merci à tout les membres du forum, bonne soirée à tous et à toutes
Messages postés
271
Date d'inscription
mardi 16 octobre 2007
Statut
Membre
Dernière intervention
12 décembre 2012
18
Sinon, Ya toujours le javascript pour vérifier qu'un champ est rempli et qu'une adresse mail est valide, avant l'envoi du formulaire.. Mais bon, c'est pas le top. Je voulais juste le mentionner.
Messages postés
334
Date d'inscription
vendredi 21 décembre 2007
Statut
Membre
Dernière intervention
15 novembre 2012
90
Merci pour votre réponse. le contrôle en javascript ne peut pas apporter l'affaire, puisqu'il n'est pas activé par tous les internautes. En faite le problème est résolu. J'ai pu tout contrôler (champs vides, formats de données et les caractères acceptés) par les regex. Merci infinément à avion-f16 pour le conseil. En faite j'ai vu dans le passé le tutoriel du Site du zero https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/916990-les-expressions-regulieres-partie-1-2 concernant Les expressions régulières - les Regex, mais j'ai pas eu le temp de le lire et savoir à quoi ça sert. mais je viens de découvrir qu'on peut faire pas mal de chose grace au regex (vérification des champ vide, appliquer un format bien déterminé aux champs, interdire les caractères spéciaux...).
Voilà donc, Je suis revenu pour poster un grand merci à avion-f16 et à tous les membres du site du zero https://openclassrooms.com/fr/ et du forum Comment ça Marche, merci à tous et à toutes.
Messages postés
18503
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
27 janvier 2021
4 251
Et oui ! On sais tout faire avec les regex (sauf le café mais on y travaille ^^).

Sais-tu qu'avec les regex tu peux créer ton code par exemple si ton site permet de posté des commentaires.
Alors si tu veux, <gras>Gras</gras> donne Gras (exemple pour CCM).

Bonne continuation
Messages postés
334
Date d'inscription
vendredi 21 décembre 2007
Statut
Membre
Dernière intervention
15 novembre 2012
90
merci, je sais pas, mais je vais chercher un peur par tout pour savoir ce qu'on peut faire avec les regex, c'est très serviable. bonne soirée
Messages postés
18503
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
27 janvier 2021
4 251
J'ai un super site qui pourrait t'aider !

C'est ici
Messages postés
18503
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
27 janvier 2021
4 251
Oui mais là tu verifie pas que les saisies sont correctes.

Les Regex servent à vérifier si l'entrée est correcte !


A dire qu'on peut saisir n'importe quoi dans tes champs (des chiffre dans le nom et meme du code Html)

Ne t'inquiète pas : PHP est bien pensé ;)

Fais comme ceci :
<?php
$variable = addslashes(htmlspecialchars($_POST['champ'[));
?>

Ainsi les apostrophes et les guillemets seront remplacée par \' ou \" (un anti-slashe se mettra devant) et certains caractère seront remplacés par leur équivalents HTML (& = & - < = < - ...).
Messages postés
18503
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
27 janvier 2021
4 251
Je te conseille d'installer la solution Wamp (Windows Apache Mysql Php) ou Lamp (Linux Apache Mysql Php).

Ainsi, tu possèdera une base de donnée Mysql en local, à l'adresse http://localhost/ (je suppose que c'est pareil sous EasyPHP)

Pour plus d'info :
Lamp
Wamp