Soumettre la recherche
Mettre en ligne
Gestion de formulaires en PHP
•
1 j'aime
•
21,173 vues
Jean-Marie Renouard
Suivre
Présentation de la gestion des formulaires en PHP5
Lire moins
Lire la suite
Ingénierie
Affichage du diaporama
Signaler
Partager
Affichage du diaporama
Signaler
Partager
1 sur 52
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
JWT-spring-boot-avancer.pdf
JWT-spring-boot-avancer.pdf
Jaouad Assabbour
Fondamentaux java
Fondamentaux java
Ines Ouaz
Support de cours Spring M.youssfi
Support de cours Spring M.youssfi
ENSET, Université Hassan II Casablanca
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
slimyaich3
Rapport PFE: Gestion de Parc Informatique
Rapport PFE: Gestion de Parc Informatique
Eric Maxime
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
Lilia Sfaxi
Cours design pattern m youssfi partie 5 adapter
Cours design pattern m youssfi partie 5 adapter
ENSET, Université Hassan II Casablanca
Examen principal - PHP
Examen principal - PHP
Ines Ouaz
Recommandé
JWT-spring-boot-avancer.pdf
JWT-spring-boot-avancer.pdf
Jaouad Assabbour
Fondamentaux java
Fondamentaux java
Ines Ouaz
Support de cours Spring M.youssfi
Support de cours Spring M.youssfi
ENSET, Université Hassan II Casablanca
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
slimyaich3
Rapport PFE: Gestion de Parc Informatique
Rapport PFE: Gestion de Parc Informatique
Eric Maxime
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
Lilia Sfaxi
Cours design pattern m youssfi partie 5 adapter
Cours design pattern m youssfi partie 5 adapter
ENSET, Université Hassan II Casablanca
Examen principal - PHP
Examen principal - PHP
Ines Ouaz
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications Java
Antoine Rey
Partie 9: Fonctions Membres — Programmation orientée objet en C++
Partie 9: Fonctions Membres — Programmation orientée objet en C++
Fabio Hernandez
Examen principal- php - correction
Examen principal- php - correction
Ines Ouaz
cours java complet-2.pdf
cours java complet-2.pdf
Jaouad Assabbour
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014
Ippon
Cours JavaScript
Cours JavaScript
Olivier Le Goaër
Support programmation orientée objet c# .net version f8
Support programmation orientée objet c# .net version f8
ENSET, Université Hassan II Casablanca
Angular Avancé
Angular Avancé
Nizar MAATOUG -ISET Sidi Bouzid
Algebre relationelle
Algebre relationelle
hnsfr
Afficher des Données Issues de Plusieurs Tables : SQL Oracle
Afficher des Données Issues de Plusieurs Tables : SQL Oracle
webreaker
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
ENSET, Université Hassan II Casablanca
Administration ubuntu-serveur-installation-ftp-serveur
Administration ubuntu-serveur-installation-ftp-serveur
TECOS
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
ENSET, Université Hassan II Casablanca
Cours php & Mysql - 2éme partie
Cours php & Mysql - 2éme partie
kadzaki
alphorm.com - Formation VMware vSphere 5
alphorm.com - Formation VMware vSphere 5
Alphorm
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
Pierre Faure
Cours php
Cours php
Narûtö Bàl'Sèm
diagramme de séquence UML
diagramme de séquence UML
Amir Souissi
Cours développement côté serveur
Cours développement côté serveur
Houda TOUKABRI
Tp java ee.pptx
Tp java ee.pptx
Eric Bourdet
Email et PHP5
Email et PHP5
Jean-Marie Renouard
SQL et MySQL
SQL et MySQL
Jean-Marie Renouard
Contenu connexe
Tendances
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications Java
Antoine Rey
Partie 9: Fonctions Membres — Programmation orientée objet en C++
Partie 9: Fonctions Membres — Programmation orientée objet en C++
Fabio Hernandez
Examen principal- php - correction
Examen principal- php - correction
Ines Ouaz
cours java complet-2.pdf
cours java complet-2.pdf
Jaouad Assabbour
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014
Ippon
Cours JavaScript
Cours JavaScript
Olivier Le Goaër
Support programmation orientée objet c# .net version f8
Support programmation orientée objet c# .net version f8
ENSET, Université Hassan II Casablanca
Angular Avancé
Angular Avancé
Nizar MAATOUG -ISET Sidi Bouzid
Algebre relationelle
Algebre relationelle
hnsfr
Afficher des Données Issues de Plusieurs Tables : SQL Oracle
Afficher des Données Issues de Plusieurs Tables : SQL Oracle
webreaker
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
ENSET, Université Hassan II Casablanca
Administration ubuntu-serveur-installation-ftp-serveur
Administration ubuntu-serveur-installation-ftp-serveur
TECOS
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
ENSET, Université Hassan II Casablanca
Cours php & Mysql - 2éme partie
Cours php & Mysql - 2éme partie
kadzaki
alphorm.com - Formation VMware vSphere 5
alphorm.com - Formation VMware vSphere 5
Alphorm
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
Pierre Faure
Cours php
Cours php
Narûtö Bàl'Sèm
diagramme de séquence UML
diagramme de séquence UML
Amir Souissi
Cours développement côté serveur
Cours développement côté serveur
Houda TOUKABRI
Tp java ee.pptx
Tp java ee.pptx
Eric Bourdet
Tendances
(20)
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications Java
Partie 9: Fonctions Membres — Programmation orientée objet en C++
Partie 9: Fonctions Membres — Programmation orientée objet en C++
Examen principal- php - correction
Examen principal- php - correction
cours java complet-2.pdf
cours java complet-2.pdf
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014
Cours JavaScript
Cours JavaScript
Support programmation orientée objet c# .net version f8
Support programmation orientée objet c# .net version f8
Angular Avancé
Angular Avancé
Algebre relationelle
Algebre relationelle
Afficher des Données Issues de Plusieurs Tables : SQL Oracle
Afficher des Données Issues de Plusieurs Tables : SQL Oracle
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Administration ubuntu-serveur-installation-ftp-serveur
Administration ubuntu-serveur-installation-ftp-serveur
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
Cours php & Mysql - 2éme partie
Cours php & Mysql - 2éme partie
alphorm.com - Formation VMware vSphere 5
alphorm.com - Formation VMware vSphere 5
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
Cours php
Cours php
diagramme de séquence UML
diagramme de séquence UML
Cours développement côté serveur
Cours développement côté serveur
Tp java ee.pptx
Tp java ee.pptx
En vedette
Email et PHP5
Email et PHP5
Jean-Marie Renouard
SQL et MySQL
SQL et MySQL
Jean-Marie Renouard
Fichier XML et PHP5
Fichier XML et PHP5
Jean-Marie Renouard
Le client HTTP PHP5
Le client HTTP PHP5
Jean-Marie Renouard
Les structures de données PHP5
Les structures de données PHP5
Jean-Marie Renouard
Le client FTP de PHP5
Le client FTP de PHP5
Jean-Marie Renouard
Configuration PHP5
Configuration PHP5
Jean-Marie Renouard
PHP5 et les fichiers
PHP5 et les fichiers
Jean-Marie Renouard
Manuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur Linux
Jean-Marie Renouard
Ssh cookbook
Ssh cookbook
Jean-Marie Renouard
Syntaxe du langage PHP
Syntaxe du langage PHP
Jean-Marie Renouard
Présentation de PHP
Présentation de PHP
Jean-Marie Renouard
PHP 5 et la programmation objet
PHP 5 et la programmation objet
Jean-Marie Renouard
Sécurité et Quaité de code PHP
Sécurité et Quaité de code PHP
Jean-Marie Renouard
MVC / Frameworks PHP
MVC / Frameworks PHP
Jean-Marie Renouard
Client base de données en PHP5
Client base de données en PHP5
Jean-Marie Renouard
Javascript et JQuery
Javascript et JQuery
Jean-Marie Renouard
Structure de données en PHP
Structure de données en PHP
Jean-Marie Renouard
Tutorial 1 ahp_relative_model_ver_2.2.x
Tutorial 1 ahp_relative_model_ver_2.2.x
elenau12
Regex php
Regex php
Bertrand day
En vedette
(20)
Email et PHP5
Email et PHP5
SQL et MySQL
SQL et MySQL
Fichier XML et PHP5
Fichier XML et PHP5
Le client HTTP PHP5
Le client HTTP PHP5
Les structures de données PHP5
Les structures de données PHP5
Le client FTP de PHP5
Le client FTP de PHP5
Configuration PHP5
Configuration PHP5
PHP5 et les fichiers
PHP5 et les fichiers
Manuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur Linux
Ssh cookbook
Ssh cookbook
Syntaxe du langage PHP
Syntaxe du langage PHP
Présentation de PHP
Présentation de PHP
PHP 5 et la programmation objet
PHP 5 et la programmation objet
Sécurité et Quaité de code PHP
Sécurité et Quaité de code PHP
MVC / Frameworks PHP
MVC / Frameworks PHP
Client base de données en PHP5
Client base de données en PHP5
Javascript et JQuery
Javascript et JQuery
Structure de données en PHP
Structure de données en PHP
Tutorial 1 ahp_relative_model_ver_2.2.x
Tutorial 1 ahp_relative_model_ver_2.2.x
Regex php
Regex php
Similaire à Gestion de formulaires en PHP
Programmation Android - 09 - Web services
Programmation Android - 09 - Web services
Yann Caron
php2 : formulaire-session-PDO
php2 : formulaire-session-PDO
Abdoulaye Dieng
Meet up symfony 11 octobre 2016 - Les formulaire
Meet up symfony 11 octobre 2016 - Les formulaire
Julien Vinber
Quoi de neuf dans Zend Framework 1.10 ?
Quoi de neuf dans Zend Framework 1.10 ?
Mickael Perraud
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
corsonr
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
Hugo Hamon
HTML5
HTML5
Neovov
HTML5 en projet
HTML5 en projet
Normandy JUG
Atelier WordPress: Création d’extension WordPress
Atelier WordPress: Création d’extension WordPress
IZZA Samir
Sécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défense
Antonio Fontes
Persona: un système d'identité pour le Web
Persona: un système d'identité pour le Web
Francois Marier
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
Vincent Composieux
vue j'avais pas vu !!
vue j'avais pas vu !!
Manuel Adele
Vue, j’avais pas vu !
Vue, j’avais pas vu !
Bruno Bonnin
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec Symfony
Hugo Hamon
Créer une barre de progression grâce à PHP 5.4
Créer une barre de progression grâce à PHP 5.4
🏁 Pierre-Henry Soria 💡
Cours php -partie 1.pdf
Cours php -partie 1.pdf
ssuserc46a93
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHP
julien pauli
Application web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrap
Bassem ABCHA
Service WEB de type REST avec Java
Service WEB de type REST avec Java
Francois ANDRE
Similaire à Gestion de formulaires en PHP
(20)
Programmation Android - 09 - Web services
Programmation Android - 09 - Web services
php2 : formulaire-session-PDO
php2 : formulaire-session-PDO
Meet up symfony 11 octobre 2016 - Les formulaire
Meet up symfony 11 octobre 2016 - Les formulaire
Quoi de neuf dans Zend Framework 1.10 ?
Quoi de neuf dans Zend Framework 1.10 ?
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
HTML5
HTML5
HTML5 en projet
HTML5 en projet
Atelier WordPress: Création d’extension WordPress
Atelier WordPress: Création d’extension WordPress
Sécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défense
Persona: un système d'identité pour le Web
Persona: un système d'identité pour le Web
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
vue j'avais pas vu !!
vue j'avais pas vu !!
Vue, j’avais pas vu !
Vue, j’avais pas vu !
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec Symfony
Créer une barre de progression grâce à PHP 5.4
Créer une barre de progression grâce à PHP 5.4
Cours php -partie 1.pdf
Cours php -partie 1.pdf
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHP
Application web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrap
Service WEB de type REST avec Java
Service WEB de type REST avec Java
Dernier
mémoire genie civil presenté lors de la soutenance de mémoire
mémoire genie civil presenté lors de la soutenance de mémoire
EzechiasSteel
le probleme de la planification JSP exposee (2) (2).pptx
le probleme de la planification JSP exposee (2) (2).pptx
imaneeaouattahee
pdfcoffee.com_4-production-fond-des-puits-completion-pdf-free.pdf
pdfcoffee.com_4-production-fond-des-puits-completion-pdf-free.pdf
MedAbdelhayeSidiAhme
Algo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigés
Sana REFAI
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
Institut de l'Elevage - Idele
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Ville de Châteauguay
Dernier
(6)
mémoire genie civil presenté lors de la soutenance de mémoire
mémoire genie civil presenté lors de la soutenance de mémoire
le probleme de la planification JSP exposee (2) (2).pptx
le probleme de la planification JSP exposee (2) (2).pptx
pdfcoffee.com_4-production-fond-des-puits-completion-pdf-free.pdf
pdfcoffee.com_4-production-fond-des-puits-completion-pdf-free.pdf
Algo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigés
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Gestion de formulaires en PHP
1.
Jean-Marie Renouard LightPath
2014©
2.
Le logo PHP
est du domaine public http://commons.wikimedia.org/wiki/File:PHP-logo.svg Ce document est licencié sous licence ◦Attribution-NonCommercial-ShareAlike ◦CC BY-NC-SA Plus de détails: http://creativecommons.org/licenses/by-nc-sa/3.0/fr/ LightPath 2014© - http://www.jmrenouard.fr 2
3.
Elément de sécurité
au transfert Validation côté client Validation côté serveur Format des données Restriction des données Formulaires anti-robots Protection des données côté serveur LightPath 2014© - http://www.jmrenouard.fr 3
4.
2 types de
formulaire Structure d’un formulaire Contenu d’un formulaire Elément d’un formulaire Cas de l’upload de fichiers Récupération des données d’un formulaire Récupération des fichiers uploadés LightPath 2014© - http://www.jmrenouard.fr 4
5.
LightPath 2014© -
http://www.jmrenouard.fr 5
6.
Formulaire type GET
◦ Récupération d’information ◦ Les éléments constituent les paramètres. ◦<FORM METHOD=« GET » … Formulaire type POST ◦ Envoi d’information ◦ Les éléments constituent les données à traiter. ◦<FORM METHOD=« POST » … LightPath 2014© - http://www.jmrenouard.fr 6
7.
LightPath 2014© -
http://www.jmrenouard.fr 7
8.
METHOD: Méthode de
transfert ACTION: URL d’envoi ENCTYPE: Type d’encodage ELEMENTS: Ensemble d’élément du formulaire ◦ Zone d’échange d’information ◦Ne sont transmis qu’à la validation du formulaire LightPath 2014© - http://www.jmrenouard.fr 8
9.
<FORM method=« post
» action=« post.php"> Login: <INPUT type=« text » name=« login" /> <br/> Password: <INPUT type=« password » name=« password" /> <br/> <INPUT type="submit" value="Envoyer"> </FORM> LightPath 2014© - http://www.jmrenouard.fr 9
10.
LightPath 2014© -
http://www.jmrenouard.fr 10
11.
Les entrées Les
sélecteurs Les zones de texte LightPath 2014© - http://www.jmrenouard.fr 11
12.
Une ligne de
saisie Déclaration du type d’entrée ◦Attribut type ◦<input type=« xxx » Définition d’un nom à chaque entrée ◦Attribut name ◦<input name=« nom » …/> LightPath 2014© - http://www.jmrenouard.fr 12
13.
Assignation d’une valeur
par défaut ◦Attribut value ◦<input value=« moi » …/> Assignation d’une taille ◦Attribut size ◦<input size=« 10 » …/> LightPath 2014© - http://www.jmrenouard.fr 13
14.
Text: Saisie non
masquée de texte Password: Saisie masquée de texte Hidden: Champ caché à l’affichage File: Champ de sélection de fichier LightPath 2014© - http://www.jmrenouard.fr 14
15.
Radio: case type
radio/choix exclusif Checkbox: case type case à cocher LightPath 2014© - http://www.jmrenouard.fr 15
16.
submit: Bouton d’envoi
de formulaire reset: Bouton de remise à zéro image: Bouton d’envoi de formulaire ◦Attribut src ◦<input type=« image » src=« envoi.png » … LightPath 2014© - http://www.jmrenouard.fr 16
17.
Menu type drop
down <SELECT><option>…</option>…</SELECT> Définition d’un nom du sélecteur ◦<Select name=« menu » …</select> Activation de la sélection multiple ◦<Select multiple=« 1 » …</select> LightPath 2014© - http://www.jmrenouard.fr 17
18.
Une option d’un
sélecteur ◦<option>…</option> Affectation d’un valeur à une option ◦Attribut value ◦<option value=« pierre »>Pierre</option> Sélection par défaut ◦Attribut selected ◦<option SELECTED >Pierre</option> LightPath 2014© - http://www.jmrenouard.fr 18
19.
Zone de texte
libre non masquée ◦<TEXTAREA></TEXTAREA> Définition d’un nom du sélecteur ◦Attribut name ◦<TEXTAREA name=« menu »></ TEXTAREA > Définition de la taille en colonne et ligne ◦Attributs cols et rows ◦<TEXTAREA cols=« 10 » rows=« 10 » ></ TEXTAREA > LightPath 2014© - http://www.jmrenouard.fr 19
20.
LightPath 2014© -
http://www.jmrenouard.fr 20
21.
Entrée type file
◦<input type=« file » name=«fichier »/> La balise form avec un attribut enctype ◦<form enctype=« multipart/form- data »>…</form> Autorisation de transmission en plusieurs Requêtes HTTP (multipart ). LightPath 2014© - http://www.jmrenouard.fr 21
22.
Envoi de plusieurs
valeurs Utilisation des crochets dans l’attribut name ◦<input name =« fichier[] » …> ◦<input name =« fichier[] » …> Valable pour toutes les types d’entrée ◦Ex: option LightPath 2014© - http://www.jmrenouard.fr 22
23.
LightPath 2014© -
http://www.jmrenouard.fr 23
24.
Tout est dans
le tableau $_GET Les attributs name des éléments servent directement comme clé du tableau. foreach ($_GET as $k => $v) echo « $k = $v »; LightPath 2014© - http://www.jmrenouard.fr 24
25.
Tout est dans
le tableau $_POST Les attributs name des éléments servent directement comme clé du tableau. foreach ($_POST as $k => $v) echo « $k = $v »; . LightPath 2014© - http://www.jmrenouard.fr 25
26.
LightPath 2014© -
http://www.jmrenouard.fr 26
27.
Tout est dans
le tableau $_FILE Chaque entrée du tableau correspond à un fichier La clé est le nom de l’entrée Chaque élément du tableau contient: ◦Le nom du fichier d’origine: $_FILES[‘fichier1’][‘name’] ◦Le type mime : $_FILES[‘fichier1’][‘type’] ◦La taille du fichier: $_FILES[‘fichier1’][‘size’] ◦Le nom du fichier temporaire local: $_FILES[‘fichier1’][‘tmp_name’] ◦Le code d’erreur du fichier : $_FILES[‘fichier1’][‘error’] . LightPath 2014© - http://www.jmrenouard.fr 27
28.
LightPath 2014© -
http://www.jmrenouard.fr 28
29.
Passage en HTTPS
Le site est souvent en HTTPs intégral. <form ACTION=« https://serveur.com/post.php » …></form> LightPath 2014© - http://www.jmrenouard.fr 29
30.
LightPath 2014© -
http://www.jmrenouard.fr 30
31.
Réalisation par script
JS Peu fiable ( attaque ) Inutile si Javascript désactivé Facilitation de contournement. LightPath 2014© - http://www.jmrenouard.fr 31
32.
<form onsubmit="return valide_form
( );" …> A l’envoi, la fonction valide_form est invoqué: ◦Si true est renvoyé par la méthode JS, le formulaire est envoyé. ◦Sinon, il faut effectuer une nouvelle soumission. LightPath 2014© - http://www.jmrenouard.fr 32
33.
<form name=« formulaire»
method="post" action=« post.php" onsubmit="return valide_form ( );"> <h1>Entrer Votre Nom</h1> <p>Votre Nom: <input type="text" name="nom"></p> <p><input type="submit" name="send" value=« Envoyer"></p> </form> LightPath 2014© - http://www.jmrenouard.fr 33
34.
<script type="text/javascript"> <!–
function valide_form ( ) { valid = true; if ( document.formulaire.nom.value == "" ) { alert ( « Remplisser le nom." ); valid = false; } return valid; } //--> </script> LightPath 2014© - http://www.jmrenouard.fr 34
35.
LightPath 2014© -
http://www.jmrenouard.fr 35
36.
Fiable car contrôlé
par l’application L’utilisateur ne peut altérer le comportement. Il peut le détourner seulement. Si les données ne sont pas correctes, ◦Pas de traitement des données ◦Renvoi d’un nouveau formulaire avec les erreurs LightPath 2014© - http://www.jmrenouard.fr 36
37.
LightPath 2014© -
http://www.jmrenouard.fr 37
38.
Vérification de la
taille des chaînes ◦if (count($_POST[‘nom’] > 255) { …} Vérification du type ◦is_array, is_bool, is_callable, is_double, is_float, is_int, is_integer, is_long, is_null, isset, is_numéric, is_object, is_real, is_resource, is_scalar, is_string LightPath 2014© - http://www.jmrenouard.fr 38
39.
Vérification format email:
◦if (!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9- ]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $email)){ …} Vérification d’une date ◦If (!preg_match( '`^d{1,2}/d{1,2}/d{4}$`' , $value ) ) {…} LightPath 2014© - http://www.jmrenouard.fr 39
40.
La fonction filter_var
permet la validation de certains formats: ◦FILTER_VALIDATE_BOOLEAN ◦FILTER_VALIDATE_EMAIL ◦FILTER_VALIDATE_FLOAT ◦FILTER_VALIDATE_INT ◦FILTER_VALIDATE_IP ◦FILTER_VALIDATE_REGEXP ◦FILTER_VALIDATE_URL LightPath 2014© - http://www.jmrenouard.fr 40
41.
LightPath 2014© -
http://www.jmrenouard.fr 41
42.
$allow=array(‘nom ’, ‘comments’);
foreach ($_POST as $key => $val) { if (! in_array($allow, $key) { unset($_POST[$key]); } } LightPath 2014© - http://www.jmrenouard.fr 42
43.
LightPath 2014© -
http://www.jmrenouard.fr 43
44.
Utilisation d’un catcha
Image avec formulaire de saisie Blocage de tous les robots sans OCR. Élimination de 99% des spams LightPath 2014© - http://www.jmrenouard.fr 44
45.
Génération d’une chaîne
aléatoire Stockage de la clé MD5 de la chaîne en SESSION ($_SESSION) Création de l’image de la chaîne Envoi du résultat. LightPath 2014© - http://www.jmrenouard.fr 45
46.
Récupération de la
valeur du catcha Calcul de la clé MD5 de la valeur Comparaison avec la valeur en session. Si pas identique, régénérer une image. Si identique, supprimer l’entrée en session LightPath 2014© - http://www.jmrenouard.fr 46
47.
LightPath 2014© -
http://www.jmrenouard.fr 47
48.
Retrait de tous
les caractères sensibles Encodage des caractères sensibles But est d’éviter les attaques: ◦Empêcher les attaques de XSS Risques: ◦Redirection ◦Vol d’information ◦Ralentissement ◦Exécution d’action non désirée en fond LightPath 2014© - http://www.jmrenouard.fr 48
49.
Retrait de balises
HTML: strip_tags Encodage html: htmlentities Encode url: urlencode LightPath 2014© - http://www.jmrenouard.fr 49
50.
La fonction filter_var
permet l’épuration ◦FILTER_SANITIZE_EMAIL ◦FILTER_SANITIZE_ENCODED ◦FILTER_SANITIZE_MAGIC_QUOTES ◦FILTER_SANITIZE_NUMBER_FLOAT ◦FILTER_SANITIZE_NUMBER_INT ◦FILTER_SANITIZE_SPECIAL_CHARS ◦FILTER_SANITIZE_STRING ◦FILTER_SANITIZE_STRIPPED ◦FILTER_SANITIZE_URL ◦FILTER_UNSAFE_RAW LightPath 2014© - http://www.jmrenouard.fr 50
51.
Documentation du PHP
http://www.php.net/docs LightPath 2014© - http://www.jmrenouard.fr 51
52.
LightPath: ◦Société de
conseil et d’ingénierie ◦Formations, Conseil, Audit et mise en oeuvre ◦jmrenouard@lightpath.fr Jean-Marie RENOUARD ◦jmrenouard@gmail.com ◦Twitter: @jmrenouard ◦http://www.jmrenouard.fr LightPath 2014© - http://www.jmrenouard.fr 52
Télécharger maintenant