Personal Home Page / Hypertext Processor (PHP)

Slides:



Advertisements
Présentations similaires
Novembre 2005 – Michel Desconnets PHP : théorie Objectif : introduire les concepts globaux permettant d'aborder la programmation en PHP.
Advertisements

Présentation du Stage en Entreprise
Conception de Site Webs dynamiques Cours 6
Conception de Site Webs dynamiques Cours 5
Portée des variables VBA & Excel
Conception de Site Webs Interactifs Cours 3
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 9 Patrick Reuter.
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 8 Patrick Reuter.
Chapitre 3 Les Formulaires en PHP
Chapitre 2 :Tableaux Pr. Aissam MESRAR Ecole ESIAM.
Création de Pages Web Dynamiques
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Les fonctions de XPath et XSLT
TP n°1 PHP LES BASES Premier programme Affichage
MySQL et PHP.
TP 3-4 BD21.
Formulaire HTML Introduction. Définition de formulaire.
Techniques Internet de Base Licence 2 (Info, Maths, PC/PA) Université Jean Monnet Ruggero G. PENSA
Cours n°3 Les formulaires
La balise <FORM>:
Common Gateway Interface
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
CPI/BTS 2 Programmation Web Introduction au PHP
HELHA informatique de gestion
ALGORITHMES RECURSIFS
Récursivité.
Le langage PHP 5.
Les instructions PHP pour l'accès à une base de données MySql
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
Python La programmation objet
Le langage ASP Les formulaires avec Request. Les formulaires sont employés pour transmettre des informations saisies par un client à une application Web.
Les Fonctions. Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code.
Introduction à la programmation I Fonctions Structures de contrôle Structures de données (arrays simples et indexés) Variables locales et globales.
PHP Gestion des systèmes d’information Classe terminale
PHP Géant Aurélien. PHP (Hypertext Preprocessor) Langage de scripts libre Permet produire des pages Web dynamiques dispose d'un très grand nombre d'API(Application.
JSP (Java Server Pages)
AJAX.
Protocoles et service internet: http
L3 Module Libre Année universitaire Initiation à la Bioinformatique Jean-Michel RICHER.
Initiation au web dynamique
PHP 2° PARTIE : FONCTIONS ET FORMULAIRE
Animateur : Med HAIJOUBI
Structures des données
PHP 1° PARTIE : LES BASES © BTS IRIS 2002 [tv] Présentation Historique
PHP & My SQL.
Introduction au langage PHP Licence Pro Cours Internet / Intranet Utilité Historique Exemples Fonctions PHP Classes.
Département Technologie de l’Information et de la Communication
Couche application Perl, php, javascript ftp
Présenté par COMTE Jeremy et DE LAZZARI Thomas Sommaire b Présentation générale b Include b Notion de variables b MySQL.
Techniques Internet de Base Licence 2 (Info, Maths, PC/PA) Université Jean Monnet Ruggero G. PENSA
LES PILES ET FILES.
PHP 5° PARTIE : LES COOKIES
Scripts shell intro Un script bash est un fichier contenant une suite de commandes shell, exécutables par l'interpréteur (ici le programme /bin/bash),
 Syntaxe du langage PHP
 Requêtes MySQL en PHP Introduction
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
06:34:37 Programmation Web PHP Fonctions associées aux tableaux Jérôme CUTRONA
Cours n°4 Les tableaux associatifs
 Formulaires HTML : traiter les entrées utilisateur
Mettre en formeExaminerManipuler Les fonctions printf() et sprintf Le traitement de chaîne de caractère La fonction printf() formate le contenu d'une chaîne.
Initiation au JavaScript
Cours de :.
Initiation au web dynamique Licence Professionnelle.
CPI/BTS 2 Programmation Web Fonctions & Includes Prog Web CPI/BTS2 – M. Dravet – 02/11/2003 Dernière modification: 02/11/2003.
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
HTML Création et mise en page de formulaire
1 PHP 5 Notions fondamentales (niveau 1 cours #3) Formation continue – Cégep de Sainte-Foy François G Couillard.
CPI/BTS 2 Programmation Web Tableaux Prog Web CPI/BTS2 – M. Dravet – 16/10/2003 Dernière modification: 16/10/2003.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
Transcription de la présentation:

Personal Home Page / Hypertext Processor (PHP)

Génération dynamique de pages XHTML URL (avec paramètres) Le client Le serveur 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)

PHP : exemple Commentaires <html > <head > <title>Test de page PHP</title> </head > <body > <h2>Page de test</h2> <?php // Ceci est du code PHP $date = date("d/m/Y"); # Variable PHP + fonction $heure = date("H:i:s"); /* Affichage */ echo "Nous sommes le <strong>$date</strong> et il est <strong>$heure</strong>"; ?> <hr /> </body > </html> Commentaires 26/03/2017 23:00:31

Instructions conditionnelles if (conditionA) { // instructions A } elsif (conditionB1 && conditionB2) { // instructions B } elsif (conditionC1 || conditionC2) { // instructions C } else { // instructions D }

Boucles for ($i=0 ; $i < $n ; $i++) { // instructions } while (condition) { do { } while (condition)

Tableaux $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] <br />"; } Parcours echo "<ul>"; foreach ($tab as $valeur) { echo "<li>$valeur</li>"; } echo "</ul>";

Tableaux associatifs $notes = array("Marie" => 14, "Paul" => 12, "Pierre" => 7); $notes["Marie"] = 14; $notes["Paul"] = 12; $notes["Pierre"] = 7; echo "<table>"; foreach ($notes as $clef => $valeur) { echo "<tr><td>$clef</td><td>$valeur</td></tr>\n"; } echo "</table>"; Parcours echo "<table>"; reset($notes); while (next($notes)) { // il y a aussi prev $etud = key($notes); $note = current($notes); echo "<tr><td>$etud</td><td>$note</td></tr>\n"; } echo "</table>";

Fonctions function bonjour($nom) { echo "Bonjour $nom !<br />"; } 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");

Quelques fonctions prédéfinies 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" 

Quelques fonctions prédéfinies (chaînes, 1/2) 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"

Quelques fonctions prédéfinies (chaînes, 2/2) 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"

Quelques fonctions prédéfinies (tableaux) 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

Transmettre des informations : méthode GET HTML PHP <form action="script.php" method="get"> <label for="nom">Nom</label> <input type="text" name="nom" id="nom"> <label for="prenom">Prénom </label> <input type="text" name="prenom" id="nom"> <input type="submit" name="action" value="OK"> </form> <html> ... <div> Bonjour <?php echo $_GET["prenom"]." ". $_GET["nom"]; ?> </div> </html>

Transmettre des informations : méthode POST HTML PHP <form action="script.php" method="post"> <label for="nom">Nom</label> <input type="text" name="nom" id="nom"> <label for="prenom">Prénom </label> <input type="text" name="prenom" id="nom"> <input type="submit" name="action" value="OK"> </form> <html> ... <div> Bonjour <?php echo $_POST["prenom"]." ". $_POST["nom"]; ?> </div> </html>

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 [])

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 d’erreur, le transfert s’est 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 n’a été transféré

Gestion des fichiers HTML PHP <div> <form method="post" enctype="multipart/form-data" action="fic.php"> <div> <label for="photo">Insérez une photo :</label> <input type="file" name="photo" id="photo"/> <input type="submit" name="envoi" value="envoi" /> </div> </form> PHP $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 "<img src=\"$dest\" alt=\"Votre photo\" />"; }

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.

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()

Authentification et sessions en PHP $id = $_POST['id']; $passwd = $_POST['pwd']; /* Vérification de l'identifiant et du mot de passe */ if (verif_ok($id, $passwd)) { session_start(); $_SESSION['valid_user'] = 1; // Redirection echo "<html>"; echo "<meta http-equiv=\"refresh\" content=\"0;url=./script2.php\" />"; echo "</html>"; } else { // Redirection vers le formulaire ... } ?> 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 <?php session_start(); if ($_SESSION['valid_user'] != 1) { // Redirection vers le formulaire } ?> dans script2.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é

Caractères spéciaux (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 !)

Caractères spéciaux ^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 ... Pour utiliser les caractères spéciaux (*, +, etc.) en tant que caractères réels, il faut les précéder d'un '\' Attention, certaines expressions ne sont pas universelles, celles-ci sont celles qui fonctionnent en PHP

Fonctions PHP pour les expressions régulières 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

Références http://www.php.net/ Pratique de MySQL et PHP, Philippe Rigaux, O’Reilly