begin process at 2012 05 27 20:51:14
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaires

 > VÉRIFICATION DE FORMULAIRE EN PHP

VÉRIFICATION DE FORMULAIRE EN PHP


 Information sur la source

Note :
Aucune note
Catégorie :Formulaires Classé sous :php, formulaire, vérification, contrôle, sécurité Niveau :Débutant Date de création :02/08/2011 Date de mise à jour :13/08/2011 11:32:04 Vu / téléchargé :3 841 / 459

Auteur : psonic13

Ecrire un message privé
Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

 Description

Ce code est une vérification de formulaire. L'algo est basé sur une première vérification en javascript. Le code est commenté afin de faciliter sa compréhension.

Source

  • <?php
  • // Affiche les variables transmises
  • /*if(isset($_POST['btn_envoi'])){
  • echo var_dump($_POST);
  • }*/
  • // VERIFICATION FORMULAIRE
  • if(isset($_POST['btn_envoi'])){
  • $societe=trim($_POST['societe']);
  • $civi=trim($_POST['civi']);
  • $nom=trim($_POST['nom']);
  • $prenom=trim($_POST['prenom']);
  • $mail=trim($_POST['mail']);
  • $tel=trim($_POST['tel']);
  • $mob=trim($_POST['mob']);
  • $obj=trim($_POST['obj']);
  • $dmd=trim($_POST['dmd']);
  • $antispam=trim($_POST['antispam']);
  • if(!empty($societe) && !empty($nom) && !is_numeric($nom) && !empty($prenom) && !is_numeric($prenom) && !empty($dmd) && $antispam=='2' ){
  • // Sécurisation : convertir les caractères spéciaux en texte et éviter les \ devant les '
  • $societe=htmlspecialchars(stripcslashes($societe));
  • $nom=htmlspecialchars(stripcslashes($nom));
  • $prenom=htmlspecialchars(stripcslashes($prenom));
  • $mail=htmlspecialchars(stripcslashes($mail));
  • $tel=htmlspecialchars(stripcslashes($tel));
  • $mob=htmlspecialchars(stripcslashes($mob));
  • $obj=htmlspecialchars(stripcslashes($obj));
  • $dmd=htmlspecialchars(stripcslashes($dmd));
  • // Conception du message
  • $mail_dest='mon_adresse@gmail.com';
  • $sujet=$obj.' via monsite.com';
  • $message='Vous avez reçu un message de la société : '.$societe.'<br />'.$civi.' '.$prenom.' '.$nom.'<br />'.$mail.'<br />Téléphone : '.$tel.'<br />Portable : '.$mob.'<br />Message : '.$dmd;
  • // Permet d'envoyer le mail au format HTML + obtenir le mail utilisateur
  • $headers='to: '.$mail."\r\n";
  • $headers.='from: <'.$mail.'>'."\r\n";
  • $headers.='MIME-VERSION:1.0'."\r\n";
  • $headers.='content-type: text/html; charset="iso-8859-1"'."\r\n";
  • $message=wordwrap($message,70);
  • // Envoi du mail (utilisation de la fonction mail de php)
  • if(mail($mail_dest,$sujet,$message,$headers)){
  • echo '<center>Mail envoyé, merci</center>';
  • }else{
  • echo '<center>Mail non envoyé, merci de réessayer plus tard</center>';
  • }
  • // L'utilisateur n'est pas passé par le contrôle Javascript
  • }else{
  • echo '<center>Merci de réactiver les scripts</center>' ;
  • }
  • }
  • ?>
				<?php
					// Affiche les variables transmises
					/*if(isset($_POST['btn_envoi'])){
						echo var_dump($_POST);
					}*/

					// VERIFICATION FORMULAIRE
					if(isset($_POST['btn_envoi'])){
						$societe=trim($_POST['societe']);
						$civi=trim($_POST['civi']);						
						$nom=trim($_POST['nom']);
						$prenom=trim($_POST['prenom']);
						$mail=trim($_POST['mail']);						
						$tel=trim($_POST['tel']);
						$mob=trim($_POST['mob']);	
						$obj=trim($_POST['obj']);	
						$dmd=trim($_POST['dmd']);
						$antispam=trim($_POST['antispam']);							
						
						if(!empty($societe) && !empty($nom) && !is_numeric($nom) && !empty($prenom) && !is_numeric($prenom) && !empty($dmd) && $antispam=='2' ){
							
							// Sécurisation : convertir les caractères spéciaux en texte et éviter les \ devant les '
							$societe=htmlspecialchars(stripcslashes($societe));
							$nom=htmlspecialchars(stripcslashes($nom));
							$prenom=htmlspecialchars(stripcslashes($prenom));
							$mail=htmlspecialchars(stripcslashes($mail));
							$tel=htmlspecialchars(stripcslashes($tel));
							$mob=htmlspecialchars(stripcslashes($mob));
							$obj=htmlspecialchars(stripcslashes($obj));
							$dmd=htmlspecialchars(stripcslashes($dmd));
							
							
							// Conception du message
							$mail_dest='mon_adresse@gmail.com';
							$sujet=$obj.' via monsite.com';
							$message='Vous avez reçu un message de la société : '.$societe.'<br />'.$civi.' '.$prenom.' '.$nom.'<br />'.$mail.'<br />Téléphone : '.$tel.'<br />Portable : '.$mob.'<br />Message : '.$dmd;
							
							// Permet d'envoyer le mail au format HTML + obtenir le mail utilisateur
							$headers='to: '.$mail."\r\n";
							$headers.='from: <'.$mail.'>'."\r\n";
							$headers.='MIME-VERSION:1.0'."\r\n";
							$headers.='content-type: text/html; charset="iso-8859-1"'."\r\n";
							$message=wordwrap($message,70);
							
							// Envoi du mail (utilisation de la fonction mail de php)
							if(mail($mail_dest,$sujet,$message,$headers)){
								echo '<center>Mail envoyé, merci</center>';
							}else{
								echo '<center>Mail non envoyé, merci de réessayer plus tard</center>';
							}
							
					// L'utilisateur n'est pas passé par le contrôle Javascript
					}else{
						echo '<center>Merci de réactiver les scripts</center>' ;
						}
					}		
				?>

 Conclusion

Ce code permet de faire une vérification simple de formulaire afin d'éviter les injection de script.
Il est préférable de faire un contrôle en amont en JS (je mettrais le code en ligne prochainnement) afin d'éviter le rechargement de la page en cas d'erreur sur la page.
Ce code est fonctionnel, c'est d'ailleurs celui que j'utilise sur mon site perso.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

02 août 2011 21:59:45 :
Modif : remplacer les champs mail + site. Chp antispam = champs dans lequel on propose un calcul simple, ex: 1+1
02 août 2011 22:05:08 :
Modif du zip non effectué avant

 Sources de la même categorie

Source avec Zip Source avec une capture VALIDATEUR DE FORMULAIRE par Reldan
Source avec Zip SUIVI SERVICE CLIENT PHP par hige52
Source avec Zip POO - FORMULAIRE NEWSLETTER PHP - PROFESSEUR-PHP.COM par mtrix000
Source avec Zip Source avec une capture SELECTEUR DE NOTE par Reldan
Source avec Zip Source avec une capture ESPACE MEMBRE , AVEC CASE OPTIONNEL , SANS MYSQL par sartoz

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture VALIDATEUR DE FORMULAIRE par Reldan
Source avec Zip POO - FORMULAIRE NEWSLETTER PHP - PROFESSEUR-PHP.COM par mtrix000
Source avec Zip Source avec une capture PHPJSVFORM : DES CLASSES PHP, DES JAVASCRIPTS POUR CRÉER FAC... par synanceia
Source avec Zip PDS-PERTINENCE par bcmfr
SÉCURISATION FORMULAIRE (SELECT ET OPTION) par fafa1510

Commentaires et avis

Commentaire de cod57 le 02/08/2011 23:24:45

bonsoir
initié ?
foreach($_POST as $k => $v){
          if(isset($_POST[$k]) && !empty($_POST[$k])){
          $v=htmlspecialchars(stripcslashes(trim($v)));
          }else{          
          }
          $_POST[$k]=$v;
          }
          extract($_POST);

ça doit faire la même chose ...
a++

Commentaire de phpAnonyme le 03/08/2011 03:42:02

+1 COD57,

Sinon pour le fun et surtout parce que je me fais chi**, on peut faire comme ceci :
-----------------------------------------------------------------------------------
function filter($string)
{
return strip_tags($string);
}
$_POST = array_map("filter", $_POST);
-----------------------------------------------------------------------------------


Ou encore, pour récupérer les valeurs que l'on souhaite :
-----------------------------------------------------------------------------------
/* @param array $arrayKeys clés de valeurs que l'on souhaite récupérer */
function arrayFilter($arrayKeys)
{
$datas=array();
foreach($arrayKeys AS $pKey) {
if(array_key_exists($pKey, $_POST))
$datas[] = $_POST[$pKey];
}
return  $datas;
}

function filter($string)
{
return strip_tags($string);
}
$array_filter = arrayFilter(array_flip($_POST));
list($societe, $civi, $nom, $prenom, $mail,....) = array_map("filter", $array_filter);

@psonic13 : voir list() et array_map(), pour l'utilisation
-----------------------------------------------------------------------------------


Bref, tout ça pour démontrer qu'un niveau INITIE n'est naturellement pas justifié ici !


P.S : la balise <center> est morte, enterrée, brûlée, et jetée à la mer depuis fort longtemps....

Commentaire de coucou747 le 05/08/2011 10:33:05 administrateur CS

Bonjour,

Je suis du même avis : cette source n'est pas travaillée, elle ne vaut pas le niveau initié.

Commentaire de lubixx le 07/08/2011 17:47:55

bonjour
pas du tiut mal, mais ça passe bien sur un site perso! pouquoi etre parti du Java?

Commentaire de coucou747 le 13/08/2011 11:33:00 administrateur CS

Je ne sais pas ou tu vois du java.

J'ai passé la source en débutant.

Commentaire de MagicGilles le 18/08/2011 13:50:25

Tu ne peux pas te baser sur JavaScript pour valider tes données (par exemple l'email) car JavaScript n'est pas obligatoire et l'utilisateur à la possibilité de le désactiver dans son navigateur.
Un autre truc, il se passe quoi si je fais mon propre formulaire et que je décide d'envoyer autre chose ou d'omettre des champs. ça plante.
Bref faut revoir la copie car là c'est inutilisable.

Commentaire de pierreSabatier le 11/09/2011 18:17:12

Je suis un peu de cet avis, la source est très orientée. A ce compte-là, poste également le formulaire, comme ça, on a "l'unité fonctionnelle" complète.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Formulaire PHP + Script de contrôle... Ca ne marche pas! Pourquoi? [ par johann1 ] Bonjour tout le monde! Je viens de commencer &#224; m'initier au php,et depuis que je l'ai immiscer dans mon formulaire plus rien ne va! Y aurait-il u vérification de formulaire [ par nino69 ] Bonjour, j'ai cr&eacute;e un formulaire et une v&eacute;rification en PHP. Si l'un des champs est mal rempli, le code PHP envoye un message &agrave; l Sécurité Formulaire php. Dangereux ou pas? [ par KcHeY ] Bonjour all, J'ai entendu parler de faille(s) php et j'aurai souhaiter savoir si j'était concerné. J'ai un formulaire et un bouton (sur une page html Affichage formulaire avec jquery [ par samn1 ] Bonjour, Je débute avec Jquery et ajax mais j'ai la base html,php,js et puis je je voudrais que si je clique sur un bouton, un formulaire s'affiche t Bug accent champs formulaire php [ par Dsens ] Bonjour, je ne reçois pas correctement les réponses de mon formulaire php quand les utilisateurs tapent des accents dans les champs texte, avez-vous l Mon formulaire ne s'affiche pas dans ma page php [ par brfrance ] Bonjour, Bonjour, Mon formulaire html (voir ci dessous) ne s'affiche pas dans ma page php. formulaire :[code=html] " name="commentaire"> Options pour formulaire de contact Php [ par paikan06 ] Bonjour à tous ! Je suis admin réseau de formation et je me lance tout doucement dans le php ([^^sad2]pas très simple !!) Je viens de créer un formula soucis de formulaire d'envoie de fichier et checkbox [ par belzebate ] Bonjour/bonsoir tout le monde, Alors voici ma situation: J'ai un formulaire d'envoi de fichier suivis, dans ce même formulaire, d'une liste de 6 che plusieurs submit dans un seul formulaire [ par smahaneAAI ] Salut tout l monde!! j'ai crée un formulaire qui poste à une seule page .php . dans mon formulaire j'ai 4 bouton normalement : 1=>affichage 2=>modific HELP ME [ par benoitdu69 ] Je cherche un code php pour formulaire de connexion (QUI FONCTIONNE!!!) avec BDD pour le formulaire suivant (connexion): Identifiant: Mot de P


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,732 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales