Vérification formulaire php

Résolu/Fermé
kadeh Messages postés 334 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 15 novembre 2012 - 21 sept. 2008 à 23:42
avion-f16 Messages postés 18924 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 septembre 2022 - 24 févr. 2009 à 23:56
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
le_boss Messages postés 168 Date d'inscription vendredi 8 août 2008 Statut Membre Dernière intervention 29 octobre 2011 18
22 sept. 2008 à 00:04
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.
0
kadeh Messages postés 334 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 15 novembre 2012 93
22 sept. 2008 à 00:07
merci bien, ou exatement je met ce code c'est à dire dans la page contenent le formulaire ou dans la page de verification.
0
le_boss Messages postés 168 Date d'inscription vendredi 8 août 2008 Statut Membre Dernière intervention 29 octobre 2011 18 > kadeh Messages postés 334 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 15 novembre 2012
22 sept. 2008 à 00:09
Dans la page de vérif.
0
kadeh Messages postés 334 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 15 novembre 2012 93 > le_boss Messages postés 168 Date d'inscription vendredi 8 août 2008 Statut Membre Dernière intervention 29 octobre 2011
22 sept. 2008 à 00:11
ok merci je vérifie ça tou de suite @+
0
kadeh Messages postés 334 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 15 novembre 2012 93
22 sept. 2008 à 01:03
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
0
kadeh Messages postés 334 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 15 novembre 2012 93
22 sept. 2008 à 00:04
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
0
avion-f16 Messages postés 18924 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 septembre 2022 4 426
22 sept. 2008 à 00:06
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kadeh Messages postés 334 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 15 novembre 2012 93
22 sept. 2008 à 01:53
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
0
moicjm Messages postés 271 Date d'inscription mardi 16 octobre 2007 Statut Membre Dernière intervention 12 décembre 2012 18
22 sept. 2008 à 12:01
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.
0
kadeh Messages postés 334 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 15 novembre 2012 93
23 sept. 2008 à 00:32
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.
0
avion-f16 Messages postés 18924 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 septembre 2022 4 426
23 sept. 2008 à 19:10
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
0
kadeh Messages postés 334 Date d'inscription vendredi 21 décembre 2007 Statut Membre Dernière intervention 15 novembre 2012 93
23 sept. 2008 à 21:03
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
0
avion-f16 Messages postés 18924 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 septembre 2022 4 426
24 sept. 2008 à 23:05
J'ai un super site qui pourrait t'aider !

C'est ici
0
avion-f16 Messages postés 18924 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 septembre 2022 4 426
24 févr. 2009 à 23:56
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 (& = & - < = < - ...).
0
avion-f16 Messages postés 18924 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 septembre 2022 4 426
21 sept. 2008 à 23:58
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
-2