Commentaires 27/02/ :23:46">

La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Xavier Tannier Yann Jacob Personal Home Page / Hypertext Processor (PHP)

Présentations similaires


Présentation au sujet: "Xavier Tannier Yann Jacob Personal Home Page / Hypertext Processor (PHP)"— Transcription de la présentation:

1 Xavier Tannier Yann Jacob Personal Home Page / Hypertext Processor (PHP)

2 Programmation Web / Bases de Données PHP Génération dynamique de pages XHTML 2 Le clientLe serveur URL (avec paramètres) fichier XHTML Génération de la page – Attention, le client ne sait pas lire une page PHP ! C'est le serveur qui crée la page XHTML et l'envoie au client. – La page PHP contient des instructions – Une page PHP peut contenir du code HTML – On ne peut pas valider du PHP, on valide son résultat... (pas en local)

3 Programmation Web / Bases de Données PHP PHP : exemple 3 Test de page PHP Page de test Commentaires 27/02/ :23:46

4 Programmation Web / Bases de Données PHP Instructions conditionnelles 4 if (conditionA) { // instructions A } elsif (conditionB1 && conditionB2) { // instructions B } elsif (conditionC1 || conditionC2) { // instructions C } else { // instructions D }

5 Programmation Web / Bases de Données PHP Boucles 5 for ($i=0 ; $i < $n ; $i++) { // instructions } while (condition) { // instructions } do { // instructions } while (condition)

6 Programmation Web / Bases de Données PHP Tableaux 6 $tab = array("A", "B", "C"); $tab[0] = "A"; $tab[1] = "B"; $tab[2] = "C"; echo $tab[1]; // affiche "B" for ($i = 0 ; $i < count($tab) ; $i++) { echo "La valeur $i est $tab[$i] "; } echo " "; foreach ($tab as $valeur) { echo " $valeur "; } echo " "; Parcours

7 Programmation Web / Bases de Données PHP Tableaux associatifs 7 $notes = array("Marie" => 14, "Paul" => 12, "Pierre" => 7); $notes["Marie"] = 14; $notes["Paul"] = 12; $notes["Pierre"] = 7; echo " "; foreach ($notes as $clef => $valeur) { echo " $clef $valeur \n"; } echo " "; Parcours echo " "; reset($notes); while (next($notes)) { // il y a aussi prev $etud = key($notes); $note = current($notes); echo " $etud $note \n"; } echo " ";

8 Programmation Web / Bases de Données PHP Fonctions 8 function bonjour($nom) { echo "Bonjour $nom ! "; } bonjour("Marie"); function somme($x, $y) { return $x + $y; } $z = somme(3, 10); function coordonnees($ville) {... return array($x, $y); } list($a, $b) = coordonnees("Tokyo");

9 Programmation Web / Bases de Données PHP Quelques fonctions prédéfinies 9 empty($v) teste si $v est définie est a une valeur non nulle isset($v) teste si $v est définie abs($v) valeur absolue ceil($v) entier immédiatement supérieur floor($v) entier immédiatement inférieur round($f) arrondi max($v1, $v2,..., $vn) plus grande valeur min($v1, $v2,..., $vn) plus petite valeur rand() valeur aléatoire date($format) renvoie la date courante formatée. Exemples : - "d/m/Y" - "H:i:s"

10 Programmation Web / Bases de Données PHP Quelques fonctions prédéfinies (chaînes, 1/2) 10 explode($sep, $chaine) divise $chaine selon le séparateur $sep et renvoie les valeurs dans un tableau implode($sep, $tableau) regroupe les valeurs de $tableau avec le séparateur $sep et renvoir la chaîne de caractères htmlspecialchars($ch) retourne la chaîne $ch dans laquelle les caractères réservés au HTML (' ', '&'...) ont été remplacés par leur code HTML. $fruits = "abricot|kiwi|pomme|fraise|banane"; $liste_fruits = explode('|', $fruits); $fruits2 = implode(' ', $liste_fruits); echo $fruits2 // => "abricot kiwi pomme fraise banane"

11 Programmation Web / Bases de Données PHP Quelques fonctions prédéfinies (chaînes, 2/2) 11 strlen($chaine) renvoie la taille de la chaîne de caractères strstr($ch1, $ch2) renvoie le contenu de $ch1 à partir de la première occurrence de $ch2 (sinon, renvoie faux) substr($ch, $i, $l) renvoie la sous-chaîne de $ch de longueur $l à partir de l'index $i $fruits = "abricot|kiwi|pomme|fraise|banane"; $tmp = strstr($fruits, '|'); echo $tmp; // => "|kiwi|pomme|fraise|banane" $tmp2 = substr($fruits, 8, 4); echo $tmp2; // => "kiwi"

12 Programmation Web / Bases de Données PHP Quelques fonctions prédéfinies (tableaux) 12 is_array($tab) teste si $tab est un tableau count($tab) nombre d'éléments du tableau sort($tab) tri du tableau sur les valeurs, ordre ascendant rsort($tab) tri du tableau sur les valeurs, ordre descendant ksort($tab) tri du tableau sur les clés, ordre ascendant krsort($tab) tri du tableau sur les clés, ordre descendant max($tab) plus grande valeur min($tab) plus petite valeur

13 Programmation Web / Bases de Données PHP Transmettre des informations : méthode GET 13 Nom Prénom PHP HTML... Bonjour

14 Programmation Web / Bases de Données PHP Transmettre des informations : méthode POST 14 Nom Prénom PHP HTML... Bonjour

15 Programmation Web / Bases de Données PHP Méthodes GET et POST Avec la méthode GET, les paramètres sont passés dans l'URL (donc visibles par l'internaute), et un formulaire n'est pas indispensable Avec la méthode POST, les paramètres sont passés dans le corps de la requête HTTP La méthode GET est la plus simple Utiliser POST lorsque les paramètres sont longs ou confidentiels Le tableau associatif $_REQUEST contient à la fois les variables des tableaux $_GET, $_POST et $_COOKIE Les valeurs des tableaux associatifs peuvent être des variables simples ou des tableaux (si le code XHTML les a nommés avec un suffixe []) 15

16 Programmation Web / Bases de Données PHP Gestion des fichiers Les informations concernant le fichier téléchargé sont dans $_FILES[$nom] ou $nom est le nom du champ du formulaire d'où provient le fichier Les clés de $_FILES[$nom] : – name le nom du fichier sur la machine du client – tmp_name le nom du fichier temporaire sur le serveur – size la taille du fichier – type le type du fichier – error : UPLOAD_ERR_OK pas derreur, le transfert sest bien passé UPLOAD_ERR_INI_SIZE le fichier dépasse la taille maximale autorisée UPLOAD_ERR_PARTIAL le fichier est transféré seulement partiellement UPLOAD_ERR_NO_FILE aucun fichier na été transféré 16

17 Programmation Web / Bases de Données PHP Gestion des fichiers 17 Insérez une photo : PHP HTML $fichier = $_FILES['photo']; if ($fichier['error'] == UPLOAD_ERR_OK) { // Copie du fichier dans le répertoire PHOTOS $src = $fichier['tmp_name']; $dest = "./photos".$fichier['name']; copy($src, $dest); // Affichage de l'image echo " "; }

18 Programmation Web / Bases de Données PHP Authentification et gestion de session L'authentification HTTP au niveau du serveur Web est très simple (ex :.htaccess et.htpasswd) mais impose une modification de la configuration et est difficile à brancher à une base de données. Cookies : fichiers placés chez le client, par exemple pour conserver des informations de session. En PHP, utilisation de setcookie($nom, $valeur) et de la variable $_COOKIE. Mais PHP permet de gérer des sessions avec cookies sans avoir à gérer le cookie lui-même. 18

19 Programmation Web / Bases de Données PHP Authentification et sessions en PHP Un formulaire demande l'identifiant et le mot de passe Ces informations sont vérifiées : – Si c'est bon on crée une session avec session_start() et on crée un paramètre sur le tableau associatif $_SESSION. Par exemple : $_SESSION['valid_user'] = 1; On redirige vers les pages de contenu – Si ce n'est pas bon On redirige vers une page d'erreur ou on retourne au formulaire Sur les autres pages : – session_start() – Vérification de la variable $_SESSION['valid_user'] Pour la déconnexion : session_destroy() 19

20 Programmation Web / Bases de Données PHP Authentification et sessions en PHP 20 Doit être placé avant d'écrire des choses sur la page (avant l'écriture des entêtes HTTP) Redirection HTML au bout de 0 seconde dans script2.php

21 Programmation Web / Bases de Données PHP Les expressions régulières Définition de motifs de chaînes de caractères – informat.* correspond à "informaticien", "informatique", "informateur"... – sites? correspond à "site" ou "sites" – [Ii]nternet correspond à "Internet" ou "internet" – ph. correspond à "php", "phi", "phd",... – youpi+ correspond à "youpi", "youpii", youpiii",... –... On peut ensuite tester si une chaîne de caractères correspond à un motif donné 21

22 Programmation Web / Bases de Données PHP Caractères spéciaux 22 (motif) même chose que motif [abcd] a ou b ou c ou d motif$ la chaîne se termine par motif. tous les caractères c* c est présent 0 ou n fois c+ c est présent 1 ou n fois c? c est présent 0 ou 1 fois [^ab] tous les caractères sauf a et b a{m,n} a{m,} a{m} a est présent entre m et n fois, plus de m fois, m fois exactement. [a-z] tous les caractères entre a et z (À ÉVITER en général !)

23 Programmation Web / Bases de Données PHP Caractères spéciaux 23 ^motif la chaîne commence par motif motif$ la chaîne se termine par motif [:alpha:] n'importe quel caractère alpha-numérique [:space:] [:blank:] un espace, un blanc (espace, tabulation,...) [:lower:] [:upper] minuscule, majuscule [:punct:] une ponctuation [:ctrl:] un caractère de contrôle... Attention, certaines expressions ne sont pas universelles, celles-ci sont celles qui fonctionnent en PHP Pour utiliser les caractères spéciaux (*, +, etc.) en tant que caractères réels, il faut les précéder d'un '\'

24 Programmation Web / Bases de Données PHP Fonctions PHP pour les expressions régulières 24 ereg($m, $ch) retourne vrai si le motif a été trouvé dans la chaîne $ch. (Ajouter "^" et "$" pour vérifier l'intégralité de la chaîne) ereg($m, $ch, $tab) retourne vrai si le motif a été trouvé dans la chaîne $ch, et stocke toutes les occurrences trouvées du motif dans le tableau $tab ereg_replace($m, $r, $ch) retourne la chaîne $ch dans laquelle toutes les occurrences du motif $m ont été remplacées par la chaîne $r

25 Programmation Web / Bases de Données PHP Références Pratique de MySQL et PHP, Philippe Rigaux, OReilly 25


Télécharger ppt "Xavier Tannier Yann Jacob Personal Home Page / Hypertext Processor (PHP)"

Présentations similaires


Annonces Google