Différences entre versions de « PHP (Fiche) »
(130 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | + | * [[Fichier:elephant-php-logo.png|100px]][[Fichier:elipse-php-logo.png|100px]] | |
− | [[ | ||
− | = | + | = C'est quoi ? = |
− | [[ | + | * '''Définition''' : [[PHP]] (sigle de PHP: Hypertext Preprocessor) est un langage de [[scripts]] libre principalement utilisé pour produire des pages Web dynamiques via un [[serveur]] HTTP, mais pouvant également fonctionner comme n'importe quel langage interprété de façon locale, en exécutant les programmes en ligne de commande. PHP est un [[langage impératif]] disposant depuis la version 5 de fonctionnalités de modèle objet complètes. En raison de la richesse de sa bibliothèque, on désigne parfois PHP comme une [[plateforme]] plus qu'un simple [[langage informatique]]. |
− | [[ | + | * '''Traduction''' |
+ | * '''Licence ou Copyright''': [[Licence : Logiciel libre]] / [[Licence : Gratuit]] | ||
+ | * '''Système d'exploitation''': [[Multiplateforme]] | ||
+ | * '''Influencé par''': [[Perl]] / [[C]] / [[C++]] / [[Java]] | ||
+ | * '''Téléchargement et Démonstration''' | ||
− | = | + | = Principe via un serveur = |
− | + | [[Fichier:Php-principe-via-serveur.png|vignette]] | |
− | + | Quand vous créez des sites web avec PHP par exemple, vous associez le langage avec un serveur web HTTP comme Apache ou Nginx. Chacun se répartit les rôles : | |
− | |||
− | = | + | * Apache gère les demandes de connexion HTTP au serveur. C'est lui qui fait en quelque sorte la circulation et qui gère les entrées/sorties. |
− | * [[ | + | * PHP exécute le code des fichiers .php et renvoie le résultat à Apache, qui se charge à son tour de l'envoyer au visiteur. |
+ | |||
+ | Comme plusieurs visiteurs peuvent demander une page en même temps au serveur, Apache se charge de les répartir et de les exécuter en parallèle dans des threads différents. Chaque thread utilise un processeur différent sur le serveur (ou un noyau de processeur) : | ||
+ | |||
+ | = Concepts associés ? = | ||
+ | * [[Programmation impérative]] / [[Programmation orientée objet]] / [[Programmation fonctionnelle]] | ||
+ | |||
+ | = Web Définitions = | ||
+ | * [[Php - Wikipedia]] / [[Php - Phpmyvisites.net]] / [[Php - Dicodunet]] / [[Php - Codes-sources]] | ||
+ | |||
+ | = Documentation et utilitaires nécessaires = | ||
+ | Liste non exhaustive de logiciels, de programmes ou d'interfaces permettant une utilisation simplifiée et optimisée: | ||
+ | |||
+ | == Documentation == | ||
+ | La documentation PHP est très complète, bien organisée, gratuite, disponible sur Internet, et traduite dans de très nombreuses langues (dont le français). | ||
+ | :- '''Liste des fonctions classées par thèmes''' : https://www.php.net/manual/fr/funcref.php | ||
+ | :- '''Présentation d'une fonction dont on connaît le nom et que l'on veux comprendre''' : Pour accéder directement à la présentation d'une fonction, tapez l'adresse suivante dans votre navigateur : php.net/nom_de_la_fonction (exemple pour comprendre la fonction maxdb_prepare il suffit de mettre dans le navigateur l'url suivante: php.net/maxdb_prepare ) | ||
+ | :- Tutoriel pour utiliser la documentation PHP [https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/918372-utilisez-la-documentation-php] : Le but de cette annexe est de montrer comment la doc' fonctionne, afin d'être capables de trouver facilement et seul l'information recherchées. | ||
+ | |||
+ | = Exemples, Applications, Utilisations = | ||
+ | Bon pour commencer : | ||
+ | * https://www.youtube.com/playlist?list=PLjwdMgw5TTLVDv-ceONHM_C19dPW1MAMD | ||
+ | * https://www.tutorialrepublic.com/php-examples.php | ||
+ | |||
+ | Un Rappel et une intro: PHP For Beginners HTML/CSS/PHP - Sample Tutorial For Easy Understanding | ||
+ | * https://www.youtube.com/watch?time_continue=580&v=zexDCbd4--M | ||
+ | |||
+ | == Exemples généraux == | ||
+ | * [[Php Logiciel - Guidephp]] | ||
+ | * Relation entre tables: https://www.developpez.net/forums/d1922294/php/php-base-donnees/php-mysql/creer-relation-entre-tables/ | ||
+ | |||
+ | Plusieurs exemples rapide à comprendre : | ||
+ | : Quelques bases simples et avancées: https://www.sitedudev.com/cours/php | ||
+ | : Débutant : https://www.bonbache.fr/formation-technique-php-debutant-3-7-1.html | ||
+ | : Avancé : https://www.bonbache.fr/formation-technique-php-debutant-3-7-2.html | ||
+ | : Du simple au complexe : https://www.primfx.com/tutos/php/ | ||
+ | |||
+ | * Créer des articles : Système d'articles en PHP - | ||
+ | :: 1- Rédaction et Affichage: https://www.primfx.com/systeme-articles-php-1-redaction-affichage-467/ | ||
+ | :: 2- Edition et Suppression: https://www.primfx.com/systeme-articles-php-2-edition-suppression-468/ | ||
+ | :: 3- Miniatures: https://www.primfx.com/systeme-articles-php-3-miniatures-469/ | ||
+ | |||
+ | Comment insérer plusieurs données dans Mysql en PHP | ||
+ | * en utilisant le champ TextArea : https://www.webslesson.info/2019/06/how-to-insert-multiple-data-into-mysql-in-php-using-textarea-field.html | ||
+ | |||
+ | Sécurités quelques exemples | ||
+ | * Validation des formulaires : https://www.pierre-giraud.com/php-mysql-apprendre-coder-cours/securiser-valider-formulaire/ | ||
+ | * Création de captcha: https://www.supinfo.com/articles/single/4025-captcha-recaptcha-php | ||
+ | * Protegez-vos-répertoires : https://openclassrooms.com/fr/courses/2091901-protegez-vous-efficacement-contre-les-failles-web/3005121-protegez-vos-répertoires | ||
+ | * PHPauth : https://phpauth.github.io/PHPAuth/ | ||
+ | * Exemple de class sur phpclasses: https://www.phpclasses.org/package/7103-PHP-Manage-accounts-and-authenticate-users.html | ||
+ | Liste de nombreuses failles et exemples de sécurités : | ||
+ | * https://openclassrooms.com/fr/courses/2091901-protegez-vous-efficacement-contre-les-failles-web/2873202-protegez-les-donnees | ||
+ | * https://openclassrooms.com/fr/courses/2091901-protegez-vous-efficacement-contre-les-failles-web/2680162-nayez-jamais-confiance | ||
+ | |||
+ | == Notions de sessions == | ||
+ | * Via des exemples de page membre (une section membre): | ||
+ | ::* http://www.lephpfacile.com/cours/18-les-sessions | ||
+ | |||
+ | ::* Script Espace membre | ||
+ | ::* https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/917948-tp-creez-un-espace-membres | ||
+ | |||
+ | :::* PHP: http://www.c2script.com/scripts/script-espace-membre-php-s33.html | ||
+ | :::* https://www.primfx.com/tuto-php-creer-espace-membre-1-3-inscription-156/ | ||
+ | :::* https://www.primfx.com/tuto-php-creer-espace-membre-2-3-profil-connexion-deconnexion-158/ | ||
+ | :::* https://www.primfx.com/tuto-php-creer-espace-membre-3-3-edition-profil-162/ | ||
+ | |||
+ | ::* Script Espace administrateur | ||
+ | :::* https://www.primfx.com/tuto-php-espace-administration-470/ | ||
+ | ::* http://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/4239476-session-cookies | ||
+ | ::* https://github.com/Espace-administration/basic-admin-php | ||
+ | |||
+ | :: Script de connexion PHP utilisant PDO avec Session : https://www.webslesson.info/2016/06/php-login-script-using-pdo-with-session.html | ||
+ | |||
+ | ::* Créer un captcha: https://www.primfx.com/tuto-php-creer-captcha-438/ | ||
+ | |||
+ | == Notion de class == | ||
+ | * https://www.youtube.com/watch?v=KWKrxf7ydpU | ||
+ | * simple : http://phpdebutant.org/article42.php | ||
+ | * syntaxe de base : https://www.php.net/manual/fr/language.oop5.basic.php | ||
+ | |||
+ | Notion d'Objet - Classe - Encapsulation - Héritage - Polymorphisme - Agrégation: | ||
+ | * https://www.pierre-giraud.com/php-mysql-apprendre-coder-cours/introduction-programmation-orientee-objet/ | ||
+ | * https://openclassrooms.com/fr/courses/1665806-programmez-en-oriente-objet-en-php | ||
+ | * http://www.lephpfacile.com/cours/24-la-programmation-objet-concepts-fondamentaux | ||
+ | * https://apprendre-php.com/tutoriels/tutoriel-29-les-classes-et-objets.html | ||
+ | * Méthode magique Set et Get : https://apprendre-php.com/tutoriels/tutoriel-49-mthodes-magiques-set-et-get.html | ||
+ | * Méthode magique Call: https://apprendre-php.com/tutoriels/tutoriel-48-mthodes-magiques-call.html | ||
+ | * Méthode magique Clone: https://apprendre-php.com/tutoriels/tutoriel-74-mthodes-magiques-clone.html | ||
+ | * Méthode magique Sleep et Wakeup: https://apprendre-php.com/tutoriels/tutoriel-75-mthodes-magiques-sleep-et-wakeup.html | ||
+ | * Classes abstraites et finales : https://apprendre-php.com/tutoriels/tutoriel-44-les-classes-abstraites-et-finales.html | ||
+ | * Classe native Exception: | ||
+ | :: https://apprendre-php.com/tutoriels/tutoriel-41-les-exceptions-1re-partie.html | ||
+ | :: https://apprendre-php.com/tutoriels/tutoriel-42-les-exceptions-2me-partie.html | ||
+ | * dépendances et couplage des classes poo: | ||
+ | https://blog.developpez.com/rawsrc/p10377/conception/dependances_et_couplage_des_classes_poo | ||
+ | |||
+ | Exemples: | ||
+ | * Pour les mails : http://www.lephpfacile.com/cours/25-la-programmation-objet-premiere-approche | ||
+ | * Pour créer un captcha : https://www.primfx.com/forum/programmation/php/tutoriel-captcha-maison-34/ | ||
+ | * Projet d'un espace administration avec du PHP Orienté Objet. Ce projet n'utilise pas de MVC : https://github.com/Espace-administration/ | ||
+ | * Authentification : | ||
+ | :: exemple 1: https://alexwebdevelop.com/user-authentication/ | ||
+ | :: exemple 2: https://github.com/delight-im/PHP-Auth | ||
+ | ::: voir le cas de la class Role : https://github.com/delight-im/PHP-Auth/blob/master/src/Role.php | ||
+ | ::: Bon exemple sur la gestion selon les roles: https://www.sitepoint.com/role-based-access-control-in-php/ | ||
+ | * identification par création de jetons : https://www.linux-professionnel.net/programmation/php---codes-divers/re-identification-par-jeton | ||
+ | :: avec JWT: https://github.com/lcobucci/jwt | ||
+ | :: Goodbye PHP Sessions, Hello JSON Web Tokens : https://coderwall.com/p/8wrxfw/goodbye-php-sessions-hello-json-web-tokens | ||
+ | |||
+ | Exemple complet avec Espace membre et admin | ||
+ | * Espace membre version 3 en php 5 : | ||
+ | :: Pour comprendre : https://codes-sources.commentcamarche.net/source/54940-espace-membre-version-3-en-php-5 | ||
+ | :: Pour installer : instructions: Comme le site a disparu voici son ancienne version | ||
+ | https://web.archive.org/web/20130304105812/http://dbmwebdesign.fr/Modules/espace-membre/creer-espace-membre.html | ||
+ | :: Télécharger et installer l'exemple puis l'adapter à votre activité: | ||
+ | https://web.archive.org/web/20140811153451if_/http://dbmwebdesign.fr/Modules/espace-membre/medias/ESPACE_MEMBRE_V3-Par%20Jejescript_et_dbmwebdesign.rar | ||
+ | :: localisation sur notre machine : C:\xampp\htdocs\lina\Exercicesurlesclasses\ESPACE_MEMBRE_V3-complete | ||
+ | login : lina mot de pass: tu le connais comme d'habitude | ||
+ | les classes sont toutes dans un seul fichier : function.php | ||
+ | elles sont appelées via le fichier header.php | ||
+ | Comprendre avec des cas simples : | ||
+ | ::: avatar.php ( C:\xampp\htdocs\lina\Exercicesurlesclasses\ESPACE_MEMBRE_V3-complete\membre\avatar.php ou C:\xampp\htdocs\lina\Exercicesurlesclasses\ESPACE_MEMBRE_V3-complete\administrateur\avatar.php) qui appel la classe avatar du fichier function.php | ||
+ | ::: regarder le cas de la class Smiley qui est appelé dans la page C:\xampp\htdocs\lina\Exercicesurlesclasses\ESPACE_MEMBRE_V3-complete\administrateur\messageAll.php | ||
+ | ::: aussi voir la class captcha qui est appelé dans | ||
+ | |||
+ | |||
+ | Ressources pour les class: | ||
+ | * https://www.phpclasses.org | ||
+ | * exemple: https://www.phpclasses.org/package/10087-PHP-Register-and-login-users-in-a-database-with-PDO.html | ||
+ | |||
+ | == Exemples de Gestion PHP et MySQL == | ||
+ | Des exemples en PDO: | ||
+ | :: PHP Pdo Code : How To Insert Data Into MySQL Database Form Inputs Text Using Php: http://1bestcsharp.blogspot.com/2015/10/php-mysql-insert-data-from-form-pdo.html | ||
+ | :: Comment insérer plusieurs données dans Mysql en PHP en utilisant le champ TextArea : https://www.webslesson.info/2019/06/how-to-insert-multiple-data-into-mysql-in-php-using-textarea-field.html | ||
+ | |||
+ | == Créer un moteur de recherche en PHP et mysql == | ||
+ | :* '''En PDO''' | ||
+ | :::* Php Code To Search Data In Mysql Database Table And Dispaly Results In Inputs Using PDO: http://1bestcsharp.blogspot.com/2015/10/php-mysql-search-data-by-id-using-pdo.html | ||
+ | :::* Php : How To Search And Filter Data In Html Table With Select Options Using Php And MySQL : http://1bestcsharp.blogspot.com/2016/07/php-html-table-filter-data.html | ||
+ | |||
+ | * '''Pagination des résultats de recherche''': https://zestedesavoir.com/tutoriels/351/paginer-avec-php-et-mysql/ | ||
+ | |||
+ | * '''Autres exemples de création de recherche''': | ||
+ | :* https://www.243tech.com/creer-une-barre-de-recherche-sur-son-site-php-mysql/ | ||
+ | :* https://www.bonbache.fr/moteur-de-recherche-web-en-php-370.html | ||
+ | :* https://www.bonbache.fr/resultats-approchants-de-moteur-de-recherche-php-372.html | ||
+ | :* Php Add , Edit , Remove , Find In MySQL Database Using Php With Source Code : http://1bestcsharp.blogspot.com/2015/10/php-insert-update-delete-search-mysql-database-code.html | ||
+ | :* Exemple en vidéo | ||
+ | :::- https://www.youtube.com/watch?v=fWnty4p5v5M | ||
+ | :::- https://www.youtube.com/watch?v=OxCCOSmyYxY | ||
+ | :* Moteur complet php5 à php7 (mis à jour 2018): http://blog.internet-formation.fr/2013/09/moteur-de-recherche-php-objet-poo-complet-pagination-surlignage-fulltext/ | ||
+ | :: des sous partie de ce travail : | ||
+ | :::* https://blog.axe-net.fr/tuto-mysql-fulltext-in-boolean-mode/ | ||
+ | :::* http://www.finalclap.com/faq/133-mysql-index-fulltext-moteur-recherche | ||
+ | :::* Implémenter une recherche FULLTEXT avec InnoDB en mode NATURAL ou BOOLEAN : | ||
+ | ::::: http://blog.axe-net.fr/recherche-pertinence-mysql-fulltext/ | ||
+ | ::::: http://blog.axe-net.fr/tuto-mysql-fulltext-in-boolean-mode/ | ||
+ | |||
+ | |||
+ | |||
+ | == Préférences == | ||
+ | * Un gestionnaire de présence absence d'étudiants expliqué de A à Z : | ||
+ | https://www.webslesson.info/2019/05/online-student-attendance-system-project-in-php.html | ||
+ | * Un gestionnaire de bibliothèque: | ||
+ | :: Complet avec les codes : https://github.com/tarikulislam786/OLMS | ||
+ | :: Un autre concurrent sans les codes: https://www.youtube.com/watch?time_continue=204&v=tr0mtdknOKQ | ||
+ | |||
+ | * Tutoriel avec le plus populaires des framework PHP: [[Symfony]] exemple pour Jobeet: [[Jobeet Symfony]] | ||
+ | |||
+ | = Cours et Tutoriels = | ||
+ | * Cours complet PHP MySQL : https://www.drametio.com/index.html | ||
+ | * [[Php Tutoriel - Php.developpez]] | ||
+ | ** [[Php Cours - G-rossolini]] | ||
+ | ** [[Php Cours - S-vauthier]] | ||
+ | * [[Php - Siteduzero]] | ||
+ | * [[Php - Phpdebutant.org]] | ||
+ | * [[Php - Viaphp.net]] | ||
+ | * [[Php - Apprendre-php]] | ||
+ | * [[Php - Phpsources.org]] - Fr | ||
+ | * [[Php - Oseox.fr]] - Fr | ||
+ | * [[Php - Learnphp-tutorial]] - En | ||
+ | * [[Php - Freewebmasterhelp]] - En | ||
+ | * https://www.pierre-giraud.com/php-mysql-apprendre-coder-cours | ||
+ | * Quelques conseils : | ||
+ | :* https://codes-sources.commentcamarche.net/faq/php-105 | ||
+ | |||
+ | = Comparaisons, Difficultés, Questions = | ||
+ | * Exemple de comparaisons de 2005 des éditeurs PHP encore d'actualité: [https://php.developpez.com/comparatifs/editeurs/] | ||
+ | * PHP5 versus PHP7: [https://www.lije-creative.com/php-7-vs-php-5-x-quelles-sont-les-differences/] | ||
+ | |||
+ | = Sites Internet = | ||
+ | * [[Php.net]] : Site officiel et son manuel en français : https://www.php.net/manual/fr/index.php | ||
+ | |||
+ | = Avec Visual Studio Code = | ||
+ | Préliminaire : https://code.visualstudio.com/docs/languages/php | ||
+ | |||
+ | * Dans le cas de xampp, pour indiquer le chemin du php.exe il faut mettre dans le settings.json : | ||
+ | { "php.validate.executablePath": "C:/xampp/php/php.exe"} | ||
+ | |||
+ | Utilitaire a mettre: | ||
+ | * '''PHP Extension Pack''' | ||
+ | * '''PHP Debug''' | ||
+ | * Pour formater le code : | ||
+ | :: '''phpfmt - PHP formatter''' Grande notoriété : Dans le cas de xampp, mettre le chemin du php.exe dans le settings.json | ||
+ | { "phpfmt.php_bin": "C:/xampp/php/php.exe"} | ||
+ | :: '''PHP Formatter''' Moins puissante et en plus pour formateur le code nécessite un PHP-CS-Fixer et des librairies | ||
+ | |||
+ | * '''Open PHP/HTML/JS In Browser''' : Dans le cas de xampp, mettre le chemin du serveur dans le settings.json | ||
+ | {"open-php-html-js-in-browser.selectedBrowser": "Chrome", | ||
+ | "open-php-html-js-in-browser.customUrlToOpen": "http://localhost:8888/${relativeDirnameDocumentRoot}/${fileBasename})", | ||
+ | "open-php-html-js-in-browser.documentRootFolder": "C:\\xampp\\htdocs\\"} | ||
+ | |||
+ | * '''php-class-helper''' : pour créer plus rapidement des class | ||
+ | (remarque: Il y a deux versions la plus récente a moins de popularité mais c'est une dérivée de la première) | ||
+ | :: Plus ancienne et plus populaire : php-class-helper de predrag-nikolic.php-class-helper | ||
+ | :: Plus récente, moins populaire mais plus : Class Helper de tiansin.php-class-helper | ||
+ | Quelques astuces en plus: | ||
+ | * Méthode archaïque : How to run php file in visual studio code with xampp :https://www.youtube.com/watch?v=ADicfQ2WAiQ | ||
+ | |||
+ | = PHP & API = | ||
+ | * Un bon exemple PHP-API-JSON: [https://www.lije-creative.com/tuto-application-php-api-json/] | ||
+ | = Espace programmeurs et développeurs = | ||
+ | * Nombreuses Questions / Réponses : https://www.ipgirl.com/ip/php | ||
+ | * Très bons exemples : | ||
+ | ** https://phppot.com | ||
+ | ** https://www.webslesson.info/search/label/php et particulièrement: http://demo.webslesson.info | ||
+ | => https://www.webslesson.info/2016/03/read-excel-data-and-insert-into-mysql-database-using-php.html | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
= Bibliographie et Webographie = | = Bibliographie et Webographie = | ||
− | |||
− | |||
− | |||
[[Category: PHP]] | [[Category: PHP]] | ||
Ligne 38 : | Ligne 250 : | ||
[[Category: Langage de programmation]] | [[Category: Langage de programmation]] | ||
[[Category: Langage de programmation (Fiche)]] | [[Category: Langage de programmation (Fiche)]] | ||
+ | [[Category: Informatique - Cours & Tutoriels]] |
Version actuelle datée du 10 octobre 2019 à 09:39
C'est quoi ?
- Définition : PHP (sigle de PHP: Hypertext Preprocessor) est un langage de scripts libre principalement utilisé pour produire des pages Web dynamiques via un serveur HTTP, mais pouvant également fonctionner comme n'importe quel langage interprété de façon locale, en exécutant les programmes en ligne de commande. PHP est un langage impératif disposant depuis la version 5 de fonctionnalités de modèle objet complètes. En raison de la richesse de sa bibliothèque, on désigne parfois PHP comme une plateforme plus qu'un simple langage informatique.
- Traduction
- Licence ou Copyright: Licence : Logiciel libre / Licence : Gratuit
- Système d'exploitation: Multiplateforme
- Influencé par: Perl / C / C++ / Java
- Téléchargement et Démonstration
Principe via un serveur
Quand vous créez des sites web avec PHP par exemple, vous associez le langage avec un serveur web HTTP comme Apache ou Nginx. Chacun se répartit les rôles :
- Apache gère les demandes de connexion HTTP au serveur. C'est lui qui fait en quelque sorte la circulation et qui gère les entrées/sorties.
- PHP exécute le code des fichiers .php et renvoie le résultat à Apache, qui se charge à son tour de l'envoyer au visiteur.
Comme plusieurs visiteurs peuvent demander une page en même temps au serveur, Apache se charge de les répartir et de les exécuter en parallèle dans des threads différents. Chaque thread utilise un processeur différent sur le serveur (ou un noyau de processeur) :
Concepts associés ?
Web Définitions
Documentation et utilitaires nécessaires
Liste non exhaustive de logiciels, de programmes ou d'interfaces permettant une utilisation simplifiée et optimisée:
Documentation
La documentation PHP est très complète, bien organisée, gratuite, disponible sur Internet, et traduite dans de très nombreuses langues (dont le français).
:- Liste des fonctions classées par thèmes : https://www.php.net/manual/fr/funcref.php
- - Présentation d'une fonction dont on connaît le nom et que l'on veux comprendre : Pour accéder directement à la présentation d'une fonction, tapez l'adresse suivante dans votre navigateur : php.net/nom_de_la_fonction (exemple pour comprendre la fonction maxdb_prepare il suffit de mettre dans le navigateur l'url suivante: php.net/maxdb_prepare )
- - Tutoriel pour utiliser la documentation PHP [1] : Le but de cette annexe est de montrer comment la doc' fonctionne, afin d'être capables de trouver facilement et seul l'information recherchées.
Exemples, Applications, Utilisations
Bon pour commencer :
- https://www.youtube.com/playlist?list=PLjwdMgw5TTLVDv-ceONHM_C19dPW1MAMD
- https://www.tutorialrepublic.com/php-examples.php
Un Rappel et une intro: PHP For Beginners HTML/CSS/PHP - Sample Tutorial For Easy Understanding
Exemples généraux
- Php Logiciel - Guidephp
- Relation entre tables: https://www.developpez.net/forums/d1922294/php/php-base-donnees/php-mysql/creer-relation-entre-tables/
Plusieurs exemples rapide à comprendre :
- Quelques bases simples et avancées: https://www.sitedudev.com/cours/php
- Débutant : https://www.bonbache.fr/formation-technique-php-debutant-3-7-1.html
- Avancé : https://www.bonbache.fr/formation-technique-php-debutant-3-7-2.html
- Du simple au complexe : https://www.primfx.com/tutos/php/
- Créer des articles : Système d'articles en PHP -
- 1- Rédaction et Affichage: https://www.primfx.com/systeme-articles-php-1-redaction-affichage-467/
- 2- Edition et Suppression: https://www.primfx.com/systeme-articles-php-2-edition-suppression-468/
- 3- Miniatures: https://www.primfx.com/systeme-articles-php-3-miniatures-469/
Comment insérer plusieurs données dans Mysql en PHP
- en utilisant le champ TextArea : https://www.webslesson.info/2019/06/how-to-insert-multiple-data-into-mysql-in-php-using-textarea-field.html
Sécurités quelques exemples
- Validation des formulaires : https://www.pierre-giraud.com/php-mysql-apprendre-coder-cours/securiser-valider-formulaire/
- Création de captcha: https://www.supinfo.com/articles/single/4025-captcha-recaptcha-php
- Protegez-vos-répertoires : https://openclassrooms.com/fr/courses/2091901-protegez-vous-efficacement-contre-les-failles-web/3005121-protegez-vos-répertoires
- PHPauth : https://phpauth.github.io/PHPAuth/
- Exemple de class sur phpclasses: https://www.phpclasses.org/package/7103-PHP-Manage-accounts-and-authenticate-users.html
Liste de nombreuses failles et exemples de sécurités :
- https://openclassrooms.com/fr/courses/2091901-protegez-vous-efficacement-contre-les-failles-web/2873202-protegez-les-donnees
- https://openclassrooms.com/fr/courses/2091901-protegez-vous-efficacement-contre-les-failles-web/2680162-nayez-jamais-confiance
Notions de sessions
- Via des exemples de page membre (une section membre):
- PHP: http://www.c2script.com/scripts/script-espace-membre-php-s33.html
- https://www.primfx.com/tuto-php-creer-espace-membre-1-3-inscription-156/
- https://www.primfx.com/tuto-php-creer-espace-membre-2-3-profil-connexion-deconnexion-158/
- https://www.primfx.com/tuto-php-creer-espace-membre-3-3-edition-profil-162/
- Script de connexion PHP utilisant PDO avec Session : https://www.webslesson.info/2016/06/php-login-script-using-pdo-with-session.html
- Créer un captcha: https://www.primfx.com/tuto-php-creer-captcha-438/
Notion de class
- https://www.youtube.com/watch?v=KWKrxf7ydpU
- simple : http://phpdebutant.org/article42.php
- syntaxe de base : https://www.php.net/manual/fr/language.oop5.basic.php
Notion d'Objet - Classe - Encapsulation - Héritage - Polymorphisme - Agrégation:
- https://www.pierre-giraud.com/php-mysql-apprendre-coder-cours/introduction-programmation-orientee-objet/
- https://openclassrooms.com/fr/courses/1665806-programmez-en-oriente-objet-en-php
- http://www.lephpfacile.com/cours/24-la-programmation-objet-concepts-fondamentaux
- https://apprendre-php.com/tutoriels/tutoriel-29-les-classes-et-objets.html
- Méthode magique Set et Get : https://apprendre-php.com/tutoriels/tutoriel-49-mthodes-magiques-set-et-get.html
- Méthode magique Call: https://apprendre-php.com/tutoriels/tutoriel-48-mthodes-magiques-call.html
- Méthode magique Clone: https://apprendre-php.com/tutoriels/tutoriel-74-mthodes-magiques-clone.html
- Méthode magique Sleep et Wakeup: https://apprendre-php.com/tutoriels/tutoriel-75-mthodes-magiques-sleep-et-wakeup.html
- Classes abstraites et finales : https://apprendre-php.com/tutoriels/tutoriel-44-les-classes-abstraites-et-finales.html
- Classe native Exception:
- dépendances et couplage des classes poo:
https://blog.developpez.com/rawsrc/p10377/conception/dependances_et_couplage_des_classes_poo
Exemples:
- Pour les mails : http://www.lephpfacile.com/cours/25-la-programmation-objet-premiere-approche
- Pour créer un captcha : https://www.primfx.com/forum/programmation/php/tutoriel-captcha-maison-34/
- Projet d'un espace administration avec du PHP Orienté Objet. Ce projet n'utilise pas de MVC : https://github.com/Espace-administration/
- Authentification :
- exemple 1: https://alexwebdevelop.com/user-authentication/
- exemple 2: https://github.com/delight-im/PHP-Auth
- voir le cas de la class Role : https://github.com/delight-im/PHP-Auth/blob/master/src/Role.php
- Bon exemple sur la gestion selon les roles: https://www.sitepoint.com/role-based-access-control-in-php/
- identification par création de jetons : https://www.linux-professionnel.net/programmation/php---codes-divers/re-identification-par-jeton
- avec JWT: https://github.com/lcobucci/jwt
- Goodbye PHP Sessions, Hello JSON Web Tokens : https://coderwall.com/p/8wrxfw/goodbye-php-sessions-hello-json-web-tokens
Exemple complet avec Espace membre et admin
- Espace membre version 3 en php 5 :
- Pour comprendre : https://codes-sources.commentcamarche.net/source/54940-espace-membre-version-3-en-php-5
- Pour installer : instructions: Comme le site a disparu voici son ancienne version
- Télécharger et installer l'exemple puis l'adapter à votre activité:
- localisation sur notre machine : C:\xampp\htdocs\lina\Exercicesurlesclasses\ESPACE_MEMBRE_V3-complete
login : lina mot de pass: tu le connais comme d'habitude
les classes sont toutes dans un seul fichier : function.php elles sont appelées via le fichier header.php Comprendre avec des cas simples : ::: avatar.php ( C:\xampp\htdocs\lina\Exercicesurlesclasses\ESPACE_MEMBRE_V3-complete\membre\avatar.php ou C:\xampp\htdocs\lina\Exercicesurlesclasses\ESPACE_MEMBRE_V3-complete\administrateur\avatar.php) qui appel la classe avatar du fichier function.php ::: regarder le cas de la class Smiley qui est appelé dans la page C:\xampp\htdocs\lina\Exercicesurlesclasses\ESPACE_MEMBRE_V3-complete\administrateur\messageAll.php ::: aussi voir la class captcha qui est appelé dans
Ressources pour les class:
- https://www.phpclasses.org
- exemple: https://www.phpclasses.org/package/10087-PHP-Register-and-login-users-in-a-database-with-PDO.html
Exemples de Gestion PHP et MySQL
Des exemples en PDO:
- PHP Pdo Code : How To Insert Data Into MySQL Database Form Inputs Text Using Php: http://1bestcsharp.blogspot.com/2015/10/php-mysql-insert-data-from-form-pdo.html
- Comment insérer plusieurs données dans Mysql en PHP en utilisant le champ TextArea : https://www.webslesson.info/2019/06/how-to-insert-multiple-data-into-mysql-in-php-using-textarea-field.html
Créer un moteur de recherche en PHP et mysql
- En PDO
- Php Code To Search Data In Mysql Database Table And Dispaly Results In Inputs Using PDO: http://1bestcsharp.blogspot.com/2015/10/php-mysql-search-data-by-id-using-pdo.html
- Php : How To Search And Filter Data In Html Table With Select Options Using Php And MySQL : http://1bestcsharp.blogspot.com/2016/07/php-html-table-filter-data.html
- Pagination des résultats de recherche: https://zestedesavoir.com/tutoriels/351/paginer-avec-php-et-mysql/
- Autres exemples de création de recherche:
- https://www.243tech.com/creer-une-barre-de-recherche-sur-son-site-php-mysql/
- https://www.bonbache.fr/moteur-de-recherche-web-en-php-370.html
- https://www.bonbache.fr/resultats-approchants-de-moteur-de-recherche-php-372.html
- Php Add , Edit , Remove , Find In MySQL Database Using Php With Source Code : http://1bestcsharp.blogspot.com/2015/10/php-insert-update-delete-search-mysql-database-code.html
- Exemple en vidéo
- Moteur complet php5 à php7 (mis à jour 2018): http://blog.internet-formation.fr/2013/09/moteur-de-recherche-php-objet-poo-complet-pagination-surlignage-fulltext/
- des sous partie de ce travail :
- https://blog.axe-net.fr/tuto-mysql-fulltext-in-boolean-mode/
- http://www.finalclap.com/faq/133-mysql-index-fulltext-moteur-recherche
- Implémenter une recherche FULLTEXT avec InnoDB en mode NATURAL ou BOOLEAN :
Préférences
- Un gestionnaire de présence absence d'étudiants expliqué de A à Z :
https://www.webslesson.info/2019/05/online-student-attendance-system-project-in-php.html
- Un gestionnaire de bibliothèque:
- Complet avec les codes : https://github.com/tarikulislam786/OLMS
- Un autre concurrent sans les codes: https://www.youtube.com/watch?time_continue=204&v=tr0mtdknOKQ
- Tutoriel avec le plus populaires des framework PHP: Symfony exemple pour Jobeet: Jobeet Symfony
Cours et Tutoriels
- Cours complet PHP MySQL : https://www.drametio.com/index.html
- Php Tutoriel - Php.developpez
- Php - Siteduzero
- Php - Phpdebutant.org
- Php - Viaphp.net
- Php - Apprendre-php
- Php - Phpsources.org - Fr
- Php - Oseox.fr - Fr
- Php - Learnphp-tutorial - En
- Php - Freewebmasterhelp - En
- https://www.pierre-giraud.com/php-mysql-apprendre-coder-cours
- Quelques conseils :
Comparaisons, Difficultés, Questions
Sites Internet
- Php.net : Site officiel et son manuel en français : https://www.php.net/manual/fr/index.php
Avec Visual Studio Code
Préliminaire : https://code.visualstudio.com/docs/languages/php
- Dans le cas de xampp, pour indiquer le chemin du php.exe il faut mettre dans le settings.json :
{ "php.validate.executablePath": "C:/xampp/php/php.exe"}
Utilitaire a mettre:
- PHP Extension Pack
- PHP Debug
- Pour formater le code :
- phpfmt - PHP formatter Grande notoriété : Dans le cas de xampp, mettre le chemin du php.exe dans le settings.json
{ "phpfmt.php_bin": "C:/xampp/php/php.exe"}
- PHP Formatter Moins puissante et en plus pour formateur le code nécessite un PHP-CS-Fixer et des librairies
- Open PHP/HTML/JS In Browser : Dans le cas de xampp, mettre le chemin du serveur dans le settings.json
{"open-php-html-js-in-browser.selectedBrowser": "Chrome", "open-php-html-js-in-browser.customUrlToOpen": "http://localhost:8888/${relativeDirnameDocumentRoot}/${fileBasename})", "open-php-html-js-in-browser.documentRootFolder": "C:\\xampp\\htdocs\\"}
- php-class-helper : pour créer plus rapidement des class
(remarque: Il y a deux versions la plus récente a moins de popularité mais c'est une dérivée de la première)
- Plus ancienne et plus populaire : php-class-helper de predrag-nikolic.php-class-helper
- Plus récente, moins populaire mais plus : Class Helper de tiansin.php-class-helper
Quelques astuces en plus:
- Méthode archaïque : How to run php file in visual studio code with xampp :https://www.youtube.com/watch?v=ADicfQ2WAiQ
PHP & API
- Un bon exemple PHP-API-JSON: [4]
Espace programmeurs et développeurs
- Nombreuses Questions / Réponses : https://www.ipgirl.com/ip/php
- Très bons exemples :
- https://phppot.com
- https://www.webslesson.info/search/label/php et particulièrement: http://demo.webslesson.info
=> https://www.webslesson.info/2016/03/read-excel-data-and-insert-into-mysql-database-using-php.html