name: inverse layout: true class: center, middle, inverse --- # Developpement Web - CM 6 ## Inès de Courchelle ## 2022-2023 ![image](../img/CY-tech.png) --- layout: false # PHP ## Définition - **H**ypertext **P**reprocessor - Interprété par un serveur PHP (Apache, IIS) - Date de création : 1990 par Rasmus Lerdorf ## Objectifs - Réaliser des traitements (fonctions, boucles, insertions...) - Générer dynamiquement du contenu HTML, CSS, Javascript - Factoriser le code HTML --- # PHP ## Le fichier PHP
## Où on se trouve ?
--- # Comment on en fait ? ## Pas comme avant en tout cas #### Démonstration
## Mais comment ? Il nous faut un environnement d'exécution --- # Plusieurs solutions ## À l'école #### solution 1 : utilisation php cli 1. Ouvrir un terminal 2. Se placer dans le répertoire où on a enregistré nos fichiers php 3. Exécuter la commande : ```shell php -S localhost:8080 ``` 4. Ouvrir un navigateur web à l'adresse : http://localhost:8080/monFic.php #### solution 2 : utilisation de webetu 1. Créer un répertoire appelé **public_html** dans son répertoire ~ 2. Vérifier les droits (exécution et lecture) 3. Ajouter les fichier php à l'intérieur 4. Ouvrir un navigateur web à l'adresse : http://webetu.pau.eisti.fr/~tonIdentifiant/monFic.php --- # Plusieurs solutions ## Chez moi - solution 1 : Installation de PHP cli (aussi) - solution 2 : Installation d'un serveur wamp, mamp ... ## Quelques tutos - [Openclassroom](https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/4237816-preparez-votre-environnement-de-travail) => Windows, Mac, Linux - [doc Ubuntu](https://doc.ubuntu-fr.org/lamp) => UBUNTU --- # Éléments de langage ## Les bases - Orienté objet - Interprété - Sensible à la casse - Inspiré de C++ - NON TYPÉ !! - Insertion par balise - Fin d'une instruction : ne pas oublier le ; --- # Éléments de langage ## Mon premier programme ```html ``` ## Remarques - un fichier php possède l'extension .php - Le programme php doit être encadré par les balises "" --- # Éléments de langage ## Les variables - Une variable en php commence toujours par un $ - Il n'y a pas besoin de type - Il faut connaître le type - Pour concatener une chaîne de caractères il faut utiliser le . ```php ``` --- # La démonstration ## Ça marche ! #### Démonstration
#### VAR
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.
--- # La démonstration ## Ça marche pô ! #### Démonstration
## Il faut lire les erreurs dans la console
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.
--- # Éléments de langage ## Les opérateurs | appelation | symbole | | -- | --- | | Opérateurs Mathématiques | +, ... | | Opérateurs de comparaisons | !=, ==, ... | | Opérateur booléens | &&, ... | | Opérateurs de concaténation | . | ## Les Tests | appelation | symbole | | -- | --- | | Tester si une variable est définie | defined($var) | | Tester si la variable est null | isset($var) | | Tester si la variable est vide | empty($var) | | Tester le type de la variable | is_string ($var), ... | --- # La doc ## C'est votre ami pour la vie !
C'est ICI
--- # Éléments de langage ## Les conditions ```php ```
--- # La démonstration ## VAR
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.
--- # Éléments de langage ## isset .pull-left[ ##### Le code ```php ``` ] .pull-right[ ##### Le résultat ```shell Ikus arte ```
]
.pull-left[ ##### Le code ```php ``` ] .pull-right[ ##### Le résultat ```shell Egun on ```
] --- # La démonstration ## VAR
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.
--- # Éléments de langage ## Les Tableaux ##### Le code ```php ``` ##### Le résultat ```script I like Volvo, BMW and Toyota. ``` #### La concaténation de chaines de caractères - En php => on utilise le point - En Javascript => on utilise le plus --- # Éléments de langage ## Les Tableaux #### La Démonstration
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.
--- # ÉLéments de langage ## Les tableaux associatifs - C'est un duo (clé +valeur) - La clé est unique - Stocker des valeurs uniques (clé) - Associer 2 données qui se complètent
##### Exemple ```php "Draco", 131=>"Lokhlass", 077=>"Ponyta"); ?> ``` --- # Éléments de langage ## Le debbugage ##### Le code ```php ``` ##### Le résultat ```script array(3) { [0]=> string(5) "Volvo" [1]=> string(3) "BMW" [2]=> string(6) "Toyota" } ``` ## La doc !
C'est ici
--- # Éléments de langage ## Les Boucles 1. for … 2. while … 3. do … while 4. foreach
--- # Éléments de langage ## Le for ##### Le code ```php ``` ##### Le résultat ```shell The number is: 0 The number is: 1 The number is: 2 The number is: 3 ``` --- # Éléments de langage ## Le foreach ##### Le code ```php "35", "Ben"=>"37", "Joe"=>"43"); foreach($age as $x => $val) { echo "$x = $val"; } ?> ``` ##### Le résultat ```shell Peter = 35 Ben = 37 Joe = 43 ``` --- # Éléments de langage ## La suite
C'est dans la doc !
--- # Éléments de langage ## Les fonctions et les procédures ##### Le code ```php ``` ##### Le résultat ```script le résultat est 20 ``` --- # Mélanger HTML/PHP ## Pourquoi ? - Générer des éléments html de manières automatique - Automatiser des traitements - Un bon informaticien est un informaticien fainéant ! ## Comment ? - En ajoutant du html, dans des "echo" de php - En ajoutant des balises php dans du code html --- # Mélanger HTML/PHP ## Exemple 1 : Le piou piou Nous considérons le fichier "pioupiou.php" ```php ``` #### Démonstration
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.
--- # Mélanger HTML/PHP ## Exemple 2 : Le avancé Nous considérons le fichier "advance.php" ```php
Le Titre
"Draco", 131=>"Lokhlass", 077=>"Ponyta"); foreach($pokemon as $x => $val) { echo "
je sui le pokemon $val et mon id est $x
"; } ?> ``` #### ATTENTION même si le fichier contient du html, il doit avoir l'extension php car il contient du PHP --- # Mélanger HTML/PHP ## Exemple 2
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.
--- # Mélanger HTML/PHP ## Exemple 3 : La master class - Nous considérons le fichier "master.php" - oui !!! Il faut bien mettre php en extension ! ```php
Le Titre
"Draco", 131=>"Lokhlass", 077=>"Ponyta"); foreach($pokemon as $x => $val) { echo "
je sui le pokemon $val et mon id est $x
"; ?>
``` --- # Mélanger HTML/PHP ## Exemple 3
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.
--- # Les formulaires ## Explication via un exemple À travers l'exemple d'une page de connexion nous allons répondre à plusieurs questions : 1. Dans quel contexte, POST/GET sont-ils utilisés ? 2. A quoi sert le mot clé action ? 3. A quoi sert le mot clé method ? 4. A quoi sert les balises form ? 5. A quoi sert le mot clé submit ? 6. Comment vérifier le contenu d’un formulaire sans utiliser du JS ? 7. Comment vérifier le contenu d’un formulaire en utilisant du PHP ? --- # Les formulaires ## Objectif Coder le comportement suivant
Cette vidéo ne peut être affichée sur votre navigateur Internet.
Une version est disponible en téléchargement sous
adresse du lien
.
--- # Les formulaires ## Ce dont j'ai besoin - un fichier connexion.html : inviter l'utilisateur à rentrer son login/password - un fichier verifierConnexion.php : vérifier le login et le couple login/password - un fichier accueil.php : accueillir l'utilisateur ## Le scénario
--- # Les formulaires ## connexion.html .pull-left[
] .pull-right[ ```html
Le Titre
Login :
Password :
``` ] --- # Les formulaires ## Input Submit ```html
``` Les balises **form** ne peuvent accueillir qu'un seul input de type **submit** ## Action ```html
``` Indiquer vers quelle page on souhaite aller une fois que le form sera validé (submité) --- # Les formulaires ## Method - Variables d'environnement php (tableaux associatifs) - GET : permet d'envoyer d'une page A vers une page B des informations par URL - POST : permet d'envoyer d'une page A vers une page B des informations sans URL ## Vous l'avez déjà vu !! #### Par exemple - Avec google - Dans l'url d'une recherche #### Démonstration
--- # Les formulaires ## Dans notre cas
--- # Les formulaires ## À votre avis Dans ce cas là, faut-il utiliser POST ou GET ?
--- # Les formulaires ## La bonne réponse ! - On va partir sur du POST ! - Le mot de passe apparaît en clair dans l'url
--- # Les formulaires ## On obtient .pull-left[
] .pull-right[ ```html
Le Titre
Login :
Password :
``` ] --- # Les formulaires ## Comment récupérer les valeurs login/password ? Via le tableau associatif php de POST ## On reprend le scénario !
--- # Les formulaires ## verifierConnexion.php ```php ``` ## Ce qui donne !
--- # Les formulaires ## À votre avis Comment les valeurs sont-elles en adéquation ?
--- # Les formulaires ## Jean michel évidence
--- # Les formulaires ## Avec les nameS dans les input de #### connexion.html ```html
Le Titre
Login :
Password :
``` --- # Les formulaires ## Le scénar !
--- # Les formulaires ## De l'algo ```c PROGRAMME verifierConnexion VARIABLES loginOfficial : chaine de caracteres passwordOfficial : chaine de caracteres DEBUT loginOfficial<-"ines"; passwordOfficial<-"poneyDu64"; SI loginOfficial= $_POST["login"] ET passwordOfficial=$_POST["password"] ALORS rediriger("accueil.php") SINON rediriger("connexion.html") FIN SI FIN ``` --- # Les formulaires ## Traduction en PHP #### verifierConnexion.php ```php ``` --- # Les formulaires ## Comparaisons .pull-left[ ```c PROGRAMME verifierConnexion VARIABLES loginOfficial : chaine de caracteres passwordOfficial : chaine de caracteres DEBUT loginOfficial<-"ines"; passwordOfficial<-"poneyDu64"; SI loginOfficial= $_POST["login"] ET passwordOfficial=$_POST["password"] ALORS rediriger("accueil.php") SINON rediriger("connexion.html") FIN SI FIN ``` ] .pull-right[ ```php ``` ] --- # Les formulaires ## Afficher le login
--- # Les formulaires ## TEST #### accueil.php ```php ``` ## Ça marche Pô !! --- # Les formulaires ## Validité de $_POST et $_GET .under[Il ne sont valable que d'une page à une autre]
## Mais comment faire ? On va le passer par l'url de la page verifierConnexion.php à accueil.php --- # Les formulaires ## Une solution #### verifierConnexion.php ```php ``` #### Accueil.php ```php ``` --- # Les formulaires ## La deconnexion ! #### Accueil.php ```php
Le Titre
Deconnexion
``` --- # La conclusion ## Étape par étape 1. Réfléchir avant de coder 2. Écrire un scénario de fonctionnement 3. Construire un ALGO en faisant abstraction du langage 4. Répartir/organiser les algos dans les fichiers 5. Coder les algos en PHP 6. Tester petit à petit les différentes fonctionnalités 7. LIRE les messages d'erreurs ! ## LA RIGUEUR !!