Extrait du cours de PHP et PHP Framework.
Contenu de l'extrait :
- Les différents types de stockage des données (navigateur et serveur).
- Qu'est ce que le protocole HTTP ?
- Comment authentifier des utilisateurs de manière sécurisée ?
Pour découvrir nos formations ou en savoir plus, rendez-moi visite sur mon LinkedIn : https://www.linkedin.com/pub/jérémie-campari/55/205/275
El documento presenta un ejemplo de programación orientada a objetos (POO) en PHP para una zapatería. Se define una clase zapatería con propiedades como almacén, materiales, personal y venta. La clase incluye métodos como local(), producto(), trabajador() y zapatos() para verificar el estado de dichas propiedades. Luego, en otra clase principal se hereda la clase zapatería y se instancian objetos para ejecutar los métodos definidos.
Formation AngularJS : http://constellation.tech/formation-angularjs-1
Formation de 3 jours, complète, couvrant toutes les facettes d'AngularJS 1. Idéal pour devenir complètement autonome en Angular.
Ces diapositives ne peuvent en aucun cas être réutilisées sans le consentement écrit préalable de l'auteur.
El documento explica los conceptos básicos de la programación orientada a objetos en PHP, incluyendo las definiciones de clases, propiedades, métodos, herencia e instanciación de objetos. Define una clase como una plantilla para objetos con propiedades y métodos comunes, y proporciona ejemplos de sintaxis básica de clases en PHP usando las palabras clave class, extends, new y include_once.
Le cryptage RSA est-il intrinsèquement inviolable ? Pour le savoir, nous essayons de comprendre comment il fonctionne et sur quelles mathématiques il s'appuie.
Cette présentation à pour but d'expliquer à des néophites les avantages du framework PHP Symfony.
Elle m'a servit en entreprise pour expliquer ses concepts complexe à des non-informaticiens.
Une révision des principaux concepts du langage JavaScript : variables, fonctions, types, fermetures (closures), objets et prototypes, format JSON. De nombreux exemples téléchargeables sur GitHub.
Construire une application sur l'architecture modèle-vue-contrôleur en PHP à partir d'un exemple simple : une liste de choses à faire, avec deux pages types : liste et détails.
Deuxième chapitre d'une formation Symfony 2,
l'Objectif de ce chapitre peut se résumer dans les points suivants :
- Présentation du moteur de template Twig
- Syntaxe et utilisation du moteur de template Twig dans les vues des contrôleurs
- Passer des variables depuis les contrôleurs vers les vues
Troisième chapitre d'une formation Symfony 2,
l'Objectif de ce chapitre peut se résumer dans les points suivants :
- Présentation de l'ORM Doctrine 2
- Génération d'entité et utiliser les annotations pour modéliser une base de donnée relationnelle
- Écriture et Lecture des données.
Premier chapitre d'une formation Symfony 2,
l'Objectif de ce chapitre peut se résumer dans les points suivants :
- Présentation du framework Symfony en sa version 2.x
- Première installation de Symfony, et découvert de son arborescence projet
- Notion des Bundles : Notion de contrôleur et Vue + Réalisation d'un premier contrôleur
- Système des Routes : utilisation des annotations pour définir des routes
Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...pierredargham
Conférence WP-Tech 4 et 5 décembre 2015 à Nantes.
Votre site WordPress est lent ? Ce n’est pas une fatalité ! À travers de nombreux exemples issus de projets en production, cette conférence fera un tour des bonnes pratiques de développement et de configuration pour mettre en place des sites rapides, y compris pour des applications métiers complexes ou e-commerce.
Déterminant pour l’expérience utilisateur, important pour le référencement, les performances de votre site font partie des optimisations inévitables pour booster votre audience sur le web et améliorer votre taux de conversion.
La conférence sera également l’occasion de penser la bonne architecture des applications WordPress, les mécanismes spécifiques de l’outil pour accélérer la génération des pages et l’utilisation optimale de sa base de données.
Au programme :
Optimisations Client (concaténation, expire headers, compression gzip …)
Optimisations Serveur (cache statique, cache opcode, cache objet, transients, serialization …)
Plugins et développements tiers : comment faire le bon choix ?
Exemples de hacks réutilisables
HTTP/2 et PHP 7.0 : ce qui va changer
Le cache côté client, le cache côté serveurs et leur impact sur le SEO et l'expérience utilisateur. Conférence effectuée lors du SEOCamp'us Paris 2017 avec Benoit Chevillot de Divioseo
El documento presenta un ejemplo de programación orientada a objetos (POO) en PHP para una zapatería. Se define una clase zapatería con propiedades como almacén, materiales, personal y venta. La clase incluye métodos como local(), producto(), trabajador() y zapatos() para verificar el estado de dichas propiedades. Luego, en otra clase principal se hereda la clase zapatería y se instancian objetos para ejecutar los métodos definidos.
Formation AngularJS : http://constellation.tech/formation-angularjs-1
Formation de 3 jours, complète, couvrant toutes les facettes d'AngularJS 1. Idéal pour devenir complètement autonome en Angular.
Ces diapositives ne peuvent en aucun cas être réutilisées sans le consentement écrit préalable de l'auteur.
El documento explica los conceptos básicos de la programación orientada a objetos en PHP, incluyendo las definiciones de clases, propiedades, métodos, herencia e instanciación de objetos. Define una clase como una plantilla para objetos con propiedades y métodos comunes, y proporciona ejemplos de sintaxis básica de clases en PHP usando las palabras clave class, extends, new y include_once.
Le cryptage RSA est-il intrinsèquement inviolable ? Pour le savoir, nous essayons de comprendre comment il fonctionne et sur quelles mathématiques il s'appuie.
Cette présentation à pour but d'expliquer à des néophites les avantages du framework PHP Symfony.
Elle m'a servit en entreprise pour expliquer ses concepts complexe à des non-informaticiens.
Une révision des principaux concepts du langage JavaScript : variables, fonctions, types, fermetures (closures), objets et prototypes, format JSON. De nombreux exemples téléchargeables sur GitHub.
Construire une application sur l'architecture modèle-vue-contrôleur en PHP à partir d'un exemple simple : une liste de choses à faire, avec deux pages types : liste et détails.
Deuxième chapitre d'une formation Symfony 2,
l'Objectif de ce chapitre peut se résumer dans les points suivants :
- Présentation du moteur de template Twig
- Syntaxe et utilisation du moteur de template Twig dans les vues des contrôleurs
- Passer des variables depuis les contrôleurs vers les vues
Troisième chapitre d'une formation Symfony 2,
l'Objectif de ce chapitre peut se résumer dans les points suivants :
- Présentation de l'ORM Doctrine 2
- Génération d'entité et utiliser les annotations pour modéliser une base de donnée relationnelle
- Écriture et Lecture des données.
Premier chapitre d'une formation Symfony 2,
l'Objectif de ce chapitre peut se résumer dans les points suivants :
- Présentation du framework Symfony en sa version 2.x
- Première installation de Symfony, et découvert de son arborescence projet
- Notion des Bundles : Notion de contrôleur et Vue + Réalisation d'un premier contrôleur
- Système des Routes : utilisation des annotations pour définir des routes
Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...pierredargham
Conférence WP-Tech 4 et 5 décembre 2015 à Nantes.
Votre site WordPress est lent ? Ce n’est pas une fatalité ! À travers de nombreux exemples issus de projets en production, cette conférence fera un tour des bonnes pratiques de développement et de configuration pour mettre en place des sites rapides, y compris pour des applications métiers complexes ou e-commerce.
Déterminant pour l’expérience utilisateur, important pour le référencement, les performances de votre site font partie des optimisations inévitables pour booster votre audience sur le web et améliorer votre taux de conversion.
La conférence sera également l’occasion de penser la bonne architecture des applications WordPress, les mécanismes spécifiques de l’outil pour accélérer la génération des pages et l’utilisation optimale de sa base de données.
Au programme :
Optimisations Client (concaténation, expire headers, compression gzip …)
Optimisations Serveur (cache statique, cache opcode, cache objet, transients, serialization …)
Plugins et développements tiers : comment faire le bon choix ?
Exemples de hacks réutilisables
HTTP/2 et PHP 7.0 : ce qui va changer
Le cache côté client, le cache côté serveurs et leur impact sur le SEO et l'expérience utilisateur. Conférence effectuée lors du SEOCamp'us Paris 2017 avec Benoit Chevillot de Divioseo
Les différents types de contenu de la présentation :
- Articles by the Jedi Masters
- A monsterstash of API documentation
- Q&A for everything
- Downloads galore
- Videos by geeks and for geeks
- Upcoming events
Optimiser Wordpress : présentation préparée pour le Wordpressday Algérie en décembre 2011 par Jean-François VIAL
La video du screencast : http://vimeo.com/33115346
Licence : CC-By-SA
5. Sommaire
1. Les bases du web
3. Programmation Orientée Objet (POO)
2. Introduction rapide au PHP
6. Sommaire
1. Les bases du web
3. Programmation Orientée Objet (POO)
2. Introduction rapide au PHP
4. Le Framework Symfony 2
7. Sommaire
1. Les bases du web
3. Programmation Orientée Objet (POO)
2. Introduction rapide au PHP
4. Le Framework Symfony 2
5. La sécurité sur le web
8. Sommaire
1. Les bases du web
3. Programmation Orientée Objet (POO)
2. Introduction rapide au PHP
4. Le Framework Symfony 2
5. La sécurité sur le web
6. Projet de groupe : Créez votre framework
12. Deux types de besoins
Information figéeBesoin
Un site internet statiqueSolution
13. Deux types de besoins
Information figéeBesoin
Un site internet statiqueSolution
Technologie HTML, CSS, Javascript
14. Deux types de besoins
Une page dont le contenu
peut changer
Information figéeBesoin
Un site internet statiqueSolution
Technologie HTML, CSS, Javascript
15. Deux types de besoins
Une page dont le contenu
peut changer
Un site internet dynamique
Information figéeBesoin
Un site internet statiqueSolution
Technologie HTML, CSS, Javascript
16. Deux types de besoins
Une page dont le contenu
peut changer
Un site internet dynamique
Information figéeBesoin
Un site internet statiqueSolution
Technologie HTML, CSS, Javascript
HTML, CSS, Javascript, langage
serveur, base de données…
23. Comment se passe une requête sur le web ?
Client
Serveur
Connexion TCP
24. Comment se passe une requête sur le web ?
Client
Serveur
Connexion TCP
Protocole HTTP
25. Qu’est ce que le protocole HTTP ?
http://monsite.com/pass.php?search=a
26. Une syntaxe commune permettant à un client et un
serveur de communiquer.
Qu’est ce que le protocole HTTP ?
http://monsite.com/pass.php?search=a
27. Une syntaxe commune permettant à un client et un
serveur de communiquer.
GET /pass.php/?search=a HTTP/1.1
Host: 94.128.126.14
User-Agent: Mozilla/5.0 (Windows NT 6.1)Firefox/18.0
Referer: http://monsite.com/pass.php
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 30
Qu’est ce que le protocole HTTP ?
http://monsite.com/pass.php?search=a
28. Une syntaxe commune permettant à un client et un
serveur de communiquer.
GET /pass.php/?search=a HTTP/1.1
Host: 94.128.126.14
User-Agent: Mozilla/5.0 (Windows NT 6.1)Firefox/18.0
Referer: http://monsite.com/pass.php
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 30
Qu’est ce que le protocole HTTP ?
http://monsite.com/pass.php?search=a
Type de requête
29. Une syntaxe commune permettant à un client et un
serveur de communiquer.
GET /pass.php/?search=a HTTP/1.1
Host: 94.128.126.14
User-Agent: Mozilla/5.0 (Windows NT 6.1)Firefox/18.0
Referer: http://monsite.com/pass.php
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 30
Qu’est ce que le protocole HTTP ?
IP client
http://monsite.com/pass.php?search=a
Type de requête
30. Une syntaxe commune permettant à un client et un
serveur de communiquer.
GET /pass.php/?search=a HTTP/1.1
Host: 94.128.126.14
User-Agent: Mozilla/5.0 (Windows NT 6.1)Firefox/18.0
Referer: http://monsite.com/pass.php
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 30
Qu’est ce que le protocole HTTP ?
IP client
Navigateur client
http://monsite.com/pass.php?search=a
Type de requête
31. Une syntaxe commune permettant à un client et un
serveur de communiquer.
GET /pass.php/?search=a HTTP/1.1
Host: 94.128.126.14
User-Agent: Mozilla/5.0 (Windows NT 6.1)Firefox/18.0
Referer: http://monsite.com/pass.php
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 30
Qu’est ce que le protocole HTTP ?
IP client
Navigateur client
Page précédente
(courante)
http://monsite.com/pass.php?search=a
Type de requête
32. Une syntaxe commune permettant à un client et un
serveur de communiquer.
GET /pass.php/?search=a HTTP/1.1
Host: 94.128.126.14
User-Agent: Mozilla/5.0 (Windows NT 6.1)Firefox/18.0
Referer: http://monsite.com/pass.php
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 30
Qu’est ce que le protocole HTTP ?
IP client
Navigateur client
Page précédente
(courante)
Conserver connection
http://monsite.com/pass.php?search=a
Type de requête
33. GET /pass.php/?search=a HTTP/1.1
Host: 94.128.126.14
User-Agent: Mozilla/5.0 (Windows NT 6.1)Firefox/18.0
Referer: http://monsite.com/pass.php
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 30
Qu’est ce que le protocole HTTP ?
IP client
Navigateur client
Page précédente
(courante)
Conserver connection
http://monsite.com/pass.php?search=a
Type de requête
34. Qu’est ce que le protocole HTTP ?
http://monsite.com/pass.php?search=a
Sans keep alive Nouvelle connection TCP à chaque requête
Avec keep alive On conserve la connexion TCP entre les différentes requêtes
d’un même navigateur
35. Deux types de requêtes HTTP
GET
POST
Requête une page avec des paramètres dans l’url
http:// bing.fr /search ?search=protocole
Paramètres GETPageDomaineProtocole
Requête une page avec des paramètres dans le body HTTP
http:// bing.fr /connect
PageDomaineProtocole
36. Qu’est ce que le protocole HTTP ?
Génération de la page
37. Qu’est ce que le protocole HTTP ?
Génération de la page
38. HTTP/1.1 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close
<!doctype html><html itemscope="" itemtype=«
http://schema.org/WebPage" lang=« fr"><head>
<meta content="/images/
Qu’est ce que le protocole HTTP ?
39. HTTP/1.1 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close
<!doctype html><html itemscope="" itemtype=«
http://schema.org/WebPage" lang=« fr"><head>
<meta content="/images/
Qu’est ce que le protocole HTTP ?
Code status
40. HTTP/1.1 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close
<!doctype html><html itemscope="" itemtype=«
http://schema.org/WebPage" lang=« fr"><head>
<meta content="/images/
Qu’est ce que le protocole HTTP ?
Encodage des pages
(ISO, UTF-8…)
Code status
41. HTTP/1.1 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close
<!doctype html><html itemscope="" itemtype=«
http://schema.org/WebPage" lang=« fr"><head>
<meta content="/images/
Qu’est ce que le protocole HTTP ?
Code HTML à afficher
Encodage des pages
(ISO, UTF-8…)
Code status
46. Bases de données, Cookies, Sessions et Local Storage
Bases de données serveur
47. Bases de données, Cookies, Sessions et Local Storage
Bases de données serveur
Local Storage HTML 5
Session Storage HTML 5
< 5 Mo / domaine
48. Bases de données, Cookies, Sessions et Local Storage
Bases de données serveur
Local Storage HTML 5
Session Storage HTML 5
< 5 Mo / domaine
Cookie
- Stocke des informations
sur le navigateur
- A une durée de vie limitée
- Editable par le client et le
serveur
49. Bases de données, Cookies, Sessions et Local Storage
Bases de données serveur
Local Storage HTML 5
Session Storage HTML 5
< 5 Mo / domaine
cookies envoyés par HTTP
Cookie
- Stocke des informations
sur le navigateur
- A une durée de vie limitée
- Editable par le client et le
serveur
50. Bases de données, Cookies, Sessions et Local Storage
Bases de données serveur
Local Storage HTML 5
Session Storage HTML 5
< 5 Mo / domaine
cookies envoyés par HTTP
Cookie
- Stocke des informations
sur le navigateur
- A une durée de vie limitée
- Editable par le client et le
serveur
Session
- 1 session / navigateur
- Identifiée par un cookie
- Stocke des informations sur
le serveur
55. Les cookies, concrètement
Liste de cookie
- statisitics 3
- id U3Y7UID
- tokenUser 8879
Liste de cookie
- statisitics 3
- id U3Y7UID
- tokenUser 8879
59. Les sessions, concrètement
1 2 3
jeremie jean alexandre
4
robert
Données sur le
serveur
Client
Set-cookie
- idSession 4
60. Les sessions, concrètement
1 2 3
jeremie jean alexandre
4
robert
Données sur le
serveur
Client
Liste de cookie
- idSession 4
61. Les sessions, concrètement
1 2 3
jeremie jean alexandre
4
robert
Données sur le
serveur
Client
Liste de cookie
- idSession 4
62. Les sessions, concrètement
A la fermeture du navigateur le cookie de session expire. L’id de session
disparait, on ne peut plus authentifier l’utilisateur.
63. Comparaison des stockages sur le client
- Cookies pèsent au maximum quelques Ko
- Cookies sont envoyés dans chaque requêtes
- Le serveur peut lire et éditer les cookies
Les cookies
- Local storage peut prendre jusqu’à 5 Mo
Le local storage
- Session storage peut prendre jusqu’à 5 Mo
Le session storage
- Supprimé à la fermeture de la session
64. 1.3 Etude de cas :
Authentification des utilisateurs
66. - Procéder à l’authentification grâce aux identifiants
Besoins liés à la connexion d’un utilisateur
67. - Procéder à l’authentification grâce aux identifiants
- Conserver la connexion entre deux chargement de page
Besoins liés à la connexion d’un utilisateur
68. - Procéder à l’authentification grâce aux identifiants
- Conserver la connexion entre deux chargement de page
- Se souvenir de l’utilisateur au prochain démarrage du navigateur
Besoins liés à la connexion d’un utilisateur
71. Procéder à l’authentification grâce aux identifiants
1 . L’utilisateur rempli un formulaire et le soumet
2. Pour l’envoi du formulaire une requête de type POST est choisie
72. Procéder à l’authentification grâce aux identifiants
1 . L’utilisateur rempli un formulaire et le soumet
2. Pour l’envoi du formulaire une requête de type POST est choisie
3. Pour éviter l’interception de la requête et le vol du mot de passe et du nom
d’utilisateur, on utilise une connexion HTTPS
73. Procéder à l’authentification grâce aux identifiants
1 . L’utilisateur rempli un formulaire et le soumet
2. Pour l’envoi du formulaire une requête de type POST est choisie
3. Pour éviter l’interception de la requête et le vol du mot de passe et du nom
d’utilisateur, on utilise une connexion HTTPS
4. On hash le mot de passe. On vérifie les données dans la base de donnée du
serveur. Si l’utilisateur existe et que le mot de passe est le bon alors l’utilisateur est
connecté.
75. Conserver la connexion entre deux chargement de page
1 . Lors de la connexion de l’utilisateur on sauvegarde son nom d’utilisateur dans une
session
76. Conserver la connexion entre deux chargement de page
1 . Lors de la connexion de l’utilisateur on sauvegarde son nom d’utilisateur dans une
session
2. On génère un identifiant de session purement aléatoire qui ne doit pas être
prédictible.
77. Conserver la connexion entre deux chargement de page
1 . Lors de la connexion de l’utilisateur on sauvegarde son nom d’utilisateur dans une
session
2. On génère un identifiant de session purement aléatoire qui ne doit pas être
prédictible.
3. On stocke l’identifiant de Session dans un cookie à l’aide du header set-cookie
dans la réponse HTTP. Ce cookie doit être Http-Only.
78. Conserver la connexion entre deux chargement de page
1 . Lors de la connexion de l’utilisateur on sauvegarde son nom d’utilisateur dans une
session
2. On génère un identifiant de session purement aléatoire qui ne doit pas être
prédictible.
3. On stocke l’identifiant de Session dans un cookie à l’aide du header set-cookie
dans la réponse HTTP. Ce cookie doit être Http-Only.
4. Lors de la requête suivante, si un identifiant de session est spécifié dans les
cookies ont l’utilise pour identifier notre utilisateur.
79. Se souvenir de l’utilisateur au prochain démarrage du navigateur
80. Se souvenir de l’utilisateur au prochain démarrage du navigateur
1 . Quand « Remember Me » est coché au moment de la connexion un
cookie additionnel est créé qui permet d’authentifier l’utilisateur si sa session est
supprimée.
81. Se souvenir de l’utilisateur au prochain démarrage du navigateur
1 . Quand « Remember Me » est coché au moment de la connexion un
cookie additionnel est créé qui permet d’authentifier l’utilisateur si sa session est
supprimée.
2. Ce nouveau cookie contient le nom d’utilisateur, un n° serie utilisateur et un token
créé pour l’occasion. Le token et le n° de série sont unique, aléatoire et long. On
stocke le triplet dans la base de donnée serveur.
82. Se souvenir de l’utilisateur au prochain démarrage du navigateur
1 . Quand « Remember Me » est coché au moment de la connexion un
cookie additionnel est créé qui permet d’authentifier l’utilisateur si sa session est
supprimée.
2. Ce nouveau cookie contient le nom d’utilisateur, un n° serie utilisateur et un token
créé pour l’occasion. Le token et le n° de série sont unique, aléatoire et long. On
stocke le triplet dans la base de donnée serveur.
3. Quand un utilisateur non authentifié visite le site et qu’il possède dans son cookie
le triplet on essaie de l’authentifier. On regarde si le triplet existe dans la base de
donnée.
83. Se souvenir de l’utilisateur au prochain démarrage du navigateur
1 . Quand « Remember Me » est coché au moment de la connexion un
cookie additionnel est créé qui permet d’authentifier l’utilisateur si sa session est
supprimée.
2. Ce nouveau cookie contient le nom d’utilisateur, un n° serie utilisateur et un token
créé pour l’occasion. Le token et le n° de série sont unique, aléatoire et long. On
stocke le triplet dans la base de donnée serveur.
3. Quand un utilisateur non authentifié visite le site et qu’il possède dans son cookie
le triplet on essaie de l’authentifier. On regarde si le triplet existe dans la base de
donnée.
3.1. Si le triplet est présent, l’utilisateur est considéré comme authentifié. On
supprime le token et on en génère un nouveau qu’on retourne au client.
84. Se souvenir de l’utilisateur au prochain démarrage du navigateur
1 . Quand « Remember Me » est coché au moment de la connexion un
cookie additionnel est créé qui permet d’authentifier l’utilisateur si sa session est
supprimée.
2. Ce nouveau cookie contient le nom d’utilisateur, un n° serie utilisateur et un token
créé pour l’occasion. Le token et le n° de série sont unique, aléatoire et long. On
stocke le triplet dans la base de donnée serveur.
3. Quand un utilisateur non authentifié visite le site et qu’il possède dans son cookie
le triplet on essaie de l’authentifier. On regarde si le triplet existe dans la base de
donnée.
3.1. Si le triplet est présent, l’utilisateur est considéré comme authentifié. On
supprime le token et on en génère un nouveau qu’on retourne au client.
3.2. Si seul le token ne matche pas, l’utilisateur est menacé. On supprime le
triplet de la base. On prévient l’utilisateur de la menace.
85. Ceci n’est un extrait du cours, contactez-nous pour plus d’informations.
https://www.linkedin.com/pub/jérémie-campari/55/205/275