• Aucun résultat trouvé

[PDF] tutoriel création site Web php | Télécharger PDF

N/A
N/A
Protected

Academic year: 2021

Partager "[PDF] tutoriel création site Web php | Télécharger PDF"

Copied!
131
0
0

Texte intégral

(1)Programmation web et mobile d'applications géomatiques SCG-67216 Le langage PHP Thierry Badard & Frédéric Hubert Université Laval, Dép. des sciences géomatiques Québec, Canada {Thierry.Badard; Frederic.Hubert}@scg.ulaval.ca. Cours donné le 06 mars 2008.

(2) Plan du cours „ Ce cours sur PHP présente : 9 Introduction au langage PHP 9 Installation de PHP 9 Éléments de syntaxe du langage 9 PHP et les bases de données 9 Fonctions avancées.

(3) Introduction au langage PHP.

(4) PHP – Introduction „ PHP = PHP Hypertext Processor (acronyme récursif) 9 Langage de script spécialement conçu pour développer des applications Web. 9 Créé en 1994 par Rasmus Lerdorf, qui, à l'origine, l'avait nommé Personal Home Page (page d'accueil personnel) 9 Langage open source, • Distribué sous sa propre licence 'PHP license', qui permet sa rediffusion, son utilisation et sa modification librement et gratuitement – http://www.php.net/license/3_01.txt. 9 Langage interprété exécuté du côté serveur, comme les scripts CGI ou ASP, et non du côté client comme les scripts JavaScript. 9 Le langage est un mélange de syntaxe C, Perl et Java !.

(5) PHP – Historique „ 1994 : Création du langage PHP par Rasmus Lerdorf 9 Il a défini un langage de script Perl lui permettant de stocker la trace des utilisateurs qui consultaient son CV dans une base de données via des requêtes SQL.. „ 1995 : Mise en ligne de la première version du programme baptisée au début Personal Home Page Tools, puis Personal Home Page v1.0 „ Été 1995 : PHP/FI version 2 voit le jour 9 Intégration de nouvelles fonctionnalités : boucles, structures conditionnelles, etc. 9 Utilisation rapide sur des sites : 15000 sites fin 1996, 50000 au milieu d'année 1997. „ Juin 1998 : mise au point de la version 3.0 de PHP avec une plus grosse équipe de développeurs (6 personnes)! 9 Refonte du moteur de PHP, API modulaire. „ 1999 : apparition de la version 4.0 de PHP, nommée PHP4 9 Prise en charge des sessions HTTP et de serveurs Web ; intégration de Zend Engine comme nouveau moteur. „ 2004 : Sortie de PHP 5 avec un nouveau moteur : Zend Engine II 9 Prise en charge de la programmation orientée objet 9 Prise en charge de XML 9 Intégration de la base de données SQLite.

(6) PHP – Quelques chiffres clés (1/4) „ Dans les transparents qui suivent, il sera présenté quelques graphiques issus d'études réalisées par Nexen au mois de février 2008 concernant l'usage de PHP dans le monde. „ Voici quelques informations complémentaires concernant ces études : 9 "27.7 millions de serveurs et 2 millions d'IP ont été testés durant le mois de février, et 12.6 millions ont été retenus pour les statistiques : les domaines sans site web, inaccessibles au robot, les fournisseurs d'accès ou bien encore les parkings à noms de domaines et les hébergeurs mutualisés, ont été écartés des statistiques. " 9 http://www.nexen.net/chiffres_cles/.

(7) PHP – Quelques chiffres clés (2/4) „ D'après Nexen, en février 2008 : parts de marché de PHP sur l'ensemble des sites Web.

(8) PHP – Quelques chiffres clés (3/4) „ D'après Nexen, en février 2008, pourcentage d'utilisation de PHP sur des serveurs par pays :.

(9) PHP – Quelques chiffres clés (4/4) „ D'après Nexen, en février 2008 : part de marché de PHP au Canada.

(10) PHP – Introduction : Avantages „ Quelques avantages du langage PHP : 9 Rapidité : de part l'inclusion dans HTML, temps de réponse courts! 9 Gratuité et code source disponible: il ne coûte rien ! 9 Facilité d'utilisation : Uniquement des éléments du langage de programmation nécessaire pour créer des pages Web dynamiques ; il s'inclut également facilement dans HTML ! 9 Différents systèmes d'exploitation : il fonctionne sous Windows, Linux, Mac OS et autres systèmes proches d'UNIX. 9 Différents serveurs Web : Apache, IIS 9 Large assistance technique : nombreuses listes de diffusion, ainsi que des documentations, tutoriaux, extraits de code, etc. 9 Sûreté : L'utilisateur final ne voit pas le code PHP 9 Support des bases de données : fonctionnalité intégrée pour dialoguer avec des bases de données spécifiques (sites dynamiques) 9 Configurable : De part sa licence open source, possibilité de modifier l'interpréteur en supprimant ou ajoutant des fonctionnalités au besoin.

(11) PHP – Applications Web „ PHP est utilisé principalement pour faire des applications Web dynamiques. Ces applications ont différents objectifs reposant sur différentes solutions : 9 Wiki, Forum de discussions, Gestion de blogs, 9 Administration et/ou accès à des bases de données, 9 Système de gestion de contenu - CMS (Content Management System), 9 Publication de nouvelles, 9 Etc.. „ Suivant différents domaines : 9 9 9 9. Politique, organisations, ministères, institutions, université, Commerces, industries, Conférences, Évènements, journaux en ligne, tutoriaux, Évidemment pleins de sites 'plus personnels' selon différents thèmes : informatique, alimentation, musique, photographie, etc. !! 9 Etc..

(12) PHP – Applications Web : Exemples (1/7) „ Ministère de la santé et des services sociaux du Québec. Source : http://www.msss.gouv.qc.ca/.

(13) PHP – Applications Web : Exemples (2/7) „ Département des sciences géomatiques (Université Laval). Source : http://www.scg.ulaval.ca.

(14) PHP – Applications Web : Exemples (3/7) „ Conférence PHP Québec 2008. Source : http://conf.phpquebec.com/fr/horaire.

(15) PHP – Applications Web : Exemples (4/7) „ Boutique de Couleurs Québec en France. Source : http://www.couleurs-quebec.eu/boutique/.

(16) PHP – Applications Web : Exemples (5/7) „ Wikipédia. Source : http://fr.wikipedia.org/wiki/Accueil.

(17) PHP – Applications Web : Exemples (6/7) „ Drupal - un CMS open source. Source : http://drupal.org.

(18) PHP – Applications Web : Exemples (7/7) „ Géo-Québec. Source : http://www.geo-quebec.ca.

(19) PHP – Fonctionnement (1/3) „ PHP est un langage de script inclus (= contenu) dans des pages HTML 9 Usage de balises particulières pour identifier les blocs de données PHP de celles en HTML : <?php …?> ou <?...?>. „ PHP est fortement lié au serveur Web, qui est chargé d'envoyer les pages Web au client qui en fait la requête 9 L'appel se fait via une URL saisie directement dans un navigateur ou sous forme de lien dans une page Web 9 Le serveur Web le plus utilisé avec PHP est Apache. „ Reconnaissance de certaines extensions par le serveur Web directement associées avec PHP 9 '.php‘ (par défaut), '.php3', '.php4', '.php5', '.phtml' (Attention, certaines sont obsolètes).

(20) PHP – Fonctionnement (2/3) „ Le traitement des instructions PHP produit du code HTML qui est substitué dans le fichier original aux instructions PHP 9 Exemple d'instruction : Balise initiale = début de code PHP. Instruction PHP permettant d'afficher ce qui suit en HTML ordinaire. Balise finale = fin de code PHP. <?php echo "<p>Bonjour le monde"; ?>. <p>Bonjour le monde. Ligne de code HTML standard.

(21) PHP – Fonctionnement (3/3) „ Exemple d'intégration d'un code PHP dans du code HTML et exécution par un serveur Web disposant d'interpréteur PHP !. Source : http://fr.wikibooks.org/wiki/Programmation_PHP/Exemples/Premier_programme.

(22) PHP – Architecture. Utilisateurs. c Requête (URL). Client. g Interprétation par le navigateur de la page HTML et affichage. d Page HTML + script PHP intégré. Serveur Web. f Renvoi. Interpréteur PHP. page HTML. e Page HTML avec résultat de l'exécution du script PHP. Base de données.

(23) Installation de PHP.

(24) Installation de PHP (1/4) „ Dans le contexte de création dynamique de page Web avec PHP, il est nécessaire de disposer de 3 outils logiciels : 9 Un Serveur Web pour envoyer les pages Web aux utilisateurs • Apache HTTP Server (http://httpd.apache.org/) • Windows Internet Information Server (IIS) • Et aussi, Zeus Web Server, Sun Java System Web Server. 9 Un SGBDR pour manipuler les données de la base • • • •. MySQL (http://www.mysql.com/) PostgreSQL (http://www.postgresql.org/) Oracle (http://www.oracle.com) Etc.. 9 Et évidemment PHP !. „ Pour les installations manuelles, se référer aux sites Web des différents logiciels..

(25) Installation de PHP (2/4) „ Pour simplifier les procédures d'installation, on peut utiliser des tout-en-un : 9 Easyphp : http://easyphp.org/index.php • PHP, Apache, MySQL et un administrateur Web (phpMyAdmin, écrit en PHP) pour Windows. 9 WAMP : http://www.wampserver.com/ • Apache, MySQL, PHP pour Windows, inclut également phpMyAdmin. 9 LAMP : • Apache, MySQL, PHP pour Linux • Pas vraiment une solution packagée comme les précédentes, plus un acronyme pour désigner une solution serveur autour de PHP • À noter qu’il existe une variante ASP de cet acronyme : LAMA (Linux, Apache, MySQL, ASP). 9 XAMPP : http://www.apachefriends.org/fr/xampp.html • Apache, MySQL, PHP et le langage de programmation Perl • Usage recommandé avec PHPEclipse (plugin PHP à l’IDE Eclipse) • Windows , Linux, MacOS, Solaris. 9 Et aussi The Uniform Server : http://www.uniformserver.com/.

(26) Installation de PHP (3/4) „ Récupération des informations du système à partir de la fonction phpinfo(). „ Dans un fichier info.php :. <?php phpinfo(); ?>. „ Remarque : Éviter d’exposer publiquement une telle page ! Donne de nombreux et précieux renseignement sur votre serveur, exploitables par un pirate ! ....

(27) Installation de PHP (4/4) „ phpinfo() retourne aussi les informations ci-dessous :. Et plein d'autres !!!.

(28) Langage PHP – Syntaxe.

(29) La syntaxe PHP „ La référence du langage PHP (d'après la doc officielle http://www.php.net) 9 9 9 9 9 9 9 9 9 9 9 9 9. Structure PHP : les instructions Les commentaires Les types Les variables Les constantes Les expressions Les opérateurs Les structures de contrôle Les fonctions Les classes et les objets Les namespaces Les exceptions Les références.

(30) Référence PHP – Syntaxe de base (1/2) „ Concernant l'intégration du code, pour que PHP soit interprété, deux conditions doivent être remplies : 9 Le code doit être placé dans un fichier disposant d'une extension PHP (.php). Attention, cela peut être différent selon la configuration du serveur ! 9 Le code doit être compris entre 2 balises : • <?php … ?> Î À utiliser en priorité • <?...?> Î Risque de problèmes de compatibilité • <script language="Php">…</script> Î Peu utilisé !. Source : http://www.php.net/manual/fr. Source : http://fr.wikibooks.org/wiki/ Programmation_PHP/Bases_du_langage.

(31) Référence PHP – Syntaxe de base (2/2) „ Toutes les instructions se terminent par ;. Source : http://www.php.net/manual/fr. „ Les commentaires : 9 # et // pour une ligne 9 /* */ pour un bloc de commentaires. Source : http://fr.wikibooks.org/wiki/Programmation_PHP/Bases_du_langage.

(32) Référence PHP – Variables „ Les variables sont représentées par un signe dollar "$" suivi du nom de la variable. „ Le nom est sensible à la casse (i.e. $x != $X). „ Un nom de variable valide doit commencer par une lettre ou un souligné (_), suivi de lettres, chiffres ou soulignés. „ Exprimé sous la forme d'une expression régulière, cela donne : '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'. Source : http://www.php.net/manual/fr.

(33) Référence PHP – Variables : Portée. Source : http://www-adele.imag.fr/users/Didier.Donsez/cours/php.pdf.

(34) Référence PHP – Variables : Prédéfinies. Source : http://pierre.senellart.com/enseignement/2005-2006/l2web/cours4-2x3.pdf.

(35) Référence PHP – Variables : Dynamiques. Source : http://pierre.senellart.com/enseignement/2005-2006/l2web/cours4-2x3.pdf.

(36) Référence PHP – Variables : Statiques (1/2). Source : http://pierre.senellart.com/enseignement/2005-2006/l2web/cours4-2x3.pdf.

(37) Référence PHP – Variables : Statiques (2/2) Exemple :. Utilisation du mot réservé static. Source : http://pierre.senellart.com/enseignement/2005-2006/l2web/cours4-2x3.pdf.

(38) Référence PHP – Type „ Les types de variable en PHP ne nécessitent pas de déclaration explicite ! Î Un type de variable est déterminé lors de l'instanciation par le contexte d'utilisation „ 8 types en PHP : 9 4 types scalaires • Booléen : valeur égale à TRUE (vrai) ou FALSE (faux), • Entier : nombre de l'ensemble des entiers relatifs Z : Z = {...., -2, -1, 0, 1, 2, ...}. • Nombre à virgule flottante, connu aussi sous le nom de double, float, nombre réel • Chaîne de caractères : séquence de caractères. 9 2 types composés • Tableau • Objet. 9 2 types spéciaux • Ressource • NULL.

(39) Référence PHP – Type : Types scalaires <?php $foo = True; // assigne la valeur TRUE à la variable $foo $a $a $a $a. = = = =. 1234; -123; 0123; 0x1A;. // // // //. nombre nombre nombre nombre. entier entier entier entier. en base 10 négatif en base 8, octale en base 16, hexadécimale. $b = 1.234; $c = 1.2e3; $d = 7E-10; $name = 'MonNom'; $str = "World"; echo 'Ceci est une chaîne simple'; echo 'Arnold a coutume de dire : "I\'ll be back"'; ?> Source : http://www.php.net/manual/fr.

(40) Référence PHP – Type : Tableaux (1/3). Source : http://www-adele.imag.fr/users/Didier.Donsez/cours/php.pdf.

(41) Référence PHP – Type : Tableaux (2/3). Source : http://www-adele.imag.fr/users/Didier.Donsez/cours/php.pdf.

(42) Référence PHP – Type : Tableaux (3/3) „ Plusieurs autres fonctions permettent de travailler avec les tableaux : 9 array_combine : Crée un tableau à partir de deux autres tableaux 9 array_fill : Remplit un tableau avec une même valeur (pratique pour initialisation du tableau) 9 array_keys : Retourne toutes les clés d'un tableau 9 array_push : Empile un ou plusieurs éléments à la fin d'un tableau 9 array_sum : Calcule la somme des valeurs du tableau 9 array_values : Retourne les valeurs d'un tableau 9 count : Compte le nombre d'éléments d'un tableau ou le nombre de propriétés d'un objet 9 each : Retourne chaque paire clé/valeur d'un tableau 9 key : Retourne une clé d'un tableau associatif 9 shuffle : Mélange les éléments d'un tableau 9 sizeof : Alias de count 9 sort : Trie un tableau 9 uasort : Trie un tableau en utilisant une fonction de rappel Source : http://www.php.net/manual/fr 9 Etc..

(43) Référence PHP – Type : Classe et Objets (1/2). Source : http://www-adele.imag.fr/users/Didier.Donsez/cours/php.pdf.

(44) Référence PHP – Type : Classe et Objets (2/2). Source : http://www-adele.imag.fr/users/Didier.Donsez/cours/php.pdf.

(45) Référence PHP – Type : Conversion „ Il est possible de faire de la conversion de type : 9 Avec des 'cast' $var = (int) "123abc"; $a=(array) $var; //Cast to an array $o=(object) $float; //Cast to an object. 9 Avec des fonctions : intval(), floatval(), doubleval(), strval(). Source : http://www.php.net/manual/fr. „ Il existe d'autres fonctions : 9 pour obtenir un type de variable : gettype() 9 pour tester les types : is_float(), is_object(), is_string(), is_bool(), etc..

(46) Référence PHP – Constantes (1/3) „ Une constante est un identifiant (un nom) qui représente une valeur simple. „ Le nom d'une constante est sensible à la casse, par défaut. „ Par convention, les constantes sont toujours en majuscules (comme en Java). „ Un nom de constante valide commence par une lettre ou un souligné (_), suivi d'un nombre quelconque de lettre, chiffres ou soulignés. Sous forme d'expression régulière, cela peut s'exprimer comme ceci : [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* „ Pour définir une constante, il faut utiliser la fonction define(). Source : http://www.php.net/manual/fr.

(47) Référence PHP – Constantes (2/3) „ Exemples de noms de constantes valides ou invalides :. Source : http://www.php.net/manual/fr.

(48) Référence PHP – Constantes (3/3) „ Il existe également des constantes « magiques » :. Source : http://www.php.net/manual/fr.

(49) Référence PHP – Références. Source : http://vmazenod.free.fr/COURS/PHP/Cours1/php1.pdf.

(50) Référence PHP – Opérateurs (1/2) „ Dans PHP, il existe plusieurs types d'opérateurs : 9 9 9 9 9 9 9 9 9 9 9. Les opérateurs arithmétiques Les opérateurs d'assignation Les opérateurs sur les bits Les opérateurs de comparaison Les opérateur de contrôle d'erreur Les opérateur d'exécution Les opérateurs d'incrémentation et décrémentation Les opérateurs logiques Les opérateurs de chaînes Les opérateurs de tableaux (vu précédemment) Les opérateurs de types.

(51) Référence PHP – Opérateurs (2/2). Source : http://www.php.net/manual/fr.

(52) Référence PHP – Opérateurs : Arithmétiques „ Les opérateurs arithmétiques. Source : http://www.php.net/manual/fr.

(53) Référence PHP – Opérateurs : Assignation „ Les opérateurs d'assignation. Source : http://pierre.senellart.com/enseignement/2005-2006/l2web/cours4-2x3.pdf.

(54) Référence PHP – Opérateurs : Bits „ Les opérateurs sur les bits. „ Exemple :. Source : http://www.php.net/manual/fr.

(55) Référence PHP – Opérateurs : Comparaison „ Les opérateurs de comparaison. „ Exemple :. Source : http://www.php.net/manual/fr.

(56) Référence PHP – Opérateurs : Contrôle d'erreur (1/2) „ Les opérateurs de contrôle d'erreur. Source : http://pierre.senellart.com/enseignement/2005-2006/l2web/cours4-2x3.pdf.

(57) Référence PHP – Opérateurs : Contrôle d'erreur (2/2) „ Exemple :. Source : http://www.php.net/manual/fr.

(58) Référence PHP – Opérateurs : Exécution „ L'opérateur d'exécution 9 Utilisation des guillemets obliques : `…` 9 PHP exécute le contenu des guillemets comme une commande shell (ou MSDOS). 9 Le résultat est retourné soit sur la sortie standard, soit assigné dans une variable. 9 Cela revient à utiliser la fonction shell_exec(). „ Exemple :. Source : http://www.php.net/manual/fr.

(59) Référence PHP – Opérateurs : Incrément / décrément „ Les opérateurs d'incrémentation et décrémentation. Source : http://www.php.net/manual/fr. „ Exemple :.

(60) Référence PHP – Opérateurs : Logiques „ Les opérateurs logiques 9 Utilisés notamment dans les structures de test. Source : http://www.php.net/manual/fr.

(61) Référence PHP – Opérateurs : Chaînes „ Les opérateurs de chaînes. „ Exemple :. Source : http://pierre.senellart.com/enseignement/2005-2006/l2web/cours4-2x3.pdf.

(62) Référence PHP – Opérateurs : Tableaux (1/2) „ Les opérateurs de tableaux. Source : http://www.php.net/manual/fr. „ Exemple 1 : Comparer des tableaux.

(63) Référence PHP – Opérateurs : Tableaux (2/2) „ Exemple 2 : Addition de tableaux. Source : http://www.php.net/manual/fr.

(64) Référence PHP – Opérateurs : Types „ L'opérateur de types est : 9 instanceof : utilisé pour déterminer si une variable PHP est un objet instancié d'une certaine classe.. „ Exemples :. Source : http://www.php.net/manual/fr.

(65) Référence PHP – Structures de contrôle (1/6) „ Les structures de contrôle. Source : http://pierre.senellart.com/enseignement/2005-2006/l2web/cours4-2x3.pdf.

(66) Référence PHP – Structures de contrôle (2/6) „ Les structures de contrôle : 9 if (condition) actions. 9 if (condition) actions1 else actions2. 9 if (condition1) actions1 elseif (condition2) actions2 else actions3. Source : http://www.php.net/manual/fr.

(67) Référence PHP – Structures de contrôle (3/6) „ Les structures de contrôle (suite) : 9 while (condition) actions. 9 while (condition) : actions1; actions2; … endwhile;. 9 do actions while (condition). Source : http://www.php.net/manual/fr.

(68) Référence PHP – Structures de contrôle (4/6) „ Les structures de contrôle (suite) : 9 for (expr1; expr2; expr3) actions 9 for (expr1; expr2; expr3) : action ; …; endfor;. 9 foreach(expr_tabl as $valeur) actions 9 foreach(expr_tabl as $cle => $valeur) actions. Source : http://www.php.net/manual/fr.

(69) Référence PHP – Structures de contrôle (5/6) „ Les structures de contrôle (suite) :. Source : http://pierre.senellart.com/enseignement/20052006/l2web/cours4-2x3.pdf. Source : http://www.php.net/manual/fr.

(70) Référence PHP – Structures de contrôle (6/6) „ Les structures de contrôle (suite) : 9 break : instruction permettant de sortir d'une structure for, foreach, while, do-while ou switch 9 continue : instruction utilisée dans une boucle pour éluder les instructions de l'itération courante et de continuer l'exécution à la condition de l'évaluation 9 return() : Dans une fonction, cette commande termine immédiatement la fonction en retournant l'argument qui lui est passé. 9 Et aussi : require, include, declare, ….

(71) Référence PHP – Fonctions „ Les fonctions. Source : http://www-adele.imag.fr/users/Didier.Donsez/cours/php.pdf.

(72) Référence PHP – Namespaces : Définition „ Définition de namespaces (ou espaces de nommage) : 9 Utilisation du mot clé namespace, qui doit être placé au début du fichier. • Exemple : MyProject::DB. 9 Peut contenir des définitions de classe (class), constante (const) et fonction (function). 9 Dans le namespace, les définitions sont automatiquement préfixées avec un nom de namespace • dans l'exemple ci-dessous, la classe Connection sera appelée par MyProject::DB::Connection. Dans un fichier : MyProject/Db/Connection.php. Source : www.php.net/manual/fr.

(73) Référence PHP – Namespaces : Utilisation „ Utilisation des namespaces : 9 Chaque classe ou fonction peut être référée, à n'importe quel moment, par son nom complet (incluant le namespace). Exemple :. 9 Importation et accès avec le mot clé use. Exemple :. Source : www.php.net/manual/fr.

(74) Référence PHP – Exceptions : Gestion „ La gestion des exceptions sous PHP est similaire à ce qu'offrent les autres langages de programmation. 9 Pour lever une exception, utiliser le mot clé throw 9 Pour intercepter une exception, utiliser le mot clé catch 9 Utilisation du bloc try pour saisir une exception potentielle.. Source : www.php.net/manual/fr.

(75) Référence PHP – Exceptions : Extension „ Il est possible d'étendre la classe Exception interne et aussi redéfinir le constructeur. „ Il est recommandé d'appeler la méthode parent()::__construct() pour s'assurer que les données disponibles sont proprement assignées. „ La méthode __toString() peut être réécrite.. Source : www.php.net/manual/fr.

(76) PHP et les bases de données.

(77) PHP – Base de données „ PHP et les bases de données :. Source : http://bat710.univ-lyon1.fr/~ogluck/Cours/Supports/M1IF_PW/PW-C4-PHP.pdf.

(78) PHP – Base de données : MySQL (1/5) „ PHP et MySQL : Le couple parfait !! „ Avantages : 9 Ils sont tous les deux gratuits. 9 Ils sont tous les deux orientés vers le Web : initialement conçus pour fonctionner sur des sites Web. 9 Ils sont faciles à utiliser : conçus pour permettre la réalisation facile de sites Web. 9 Ils sont rapides : Leur mise en commun constitue l'un des meilleurs moyens de transmettre rapidement des pages Web aux utilisateurs. 9 Ils s'entendent bien : PHP possède des fonctionnalités natives pour fonctionner avec MySQL 9 Il existe une large base installée pour vous assister : ils ont la même base d'utilisateurs. 9 Ils sont configurables : conçus sur le principe de l'open source.

(79) PHP – Base de données : MySQL (2/5) „ Les principales fonctions de PHP pour MySQL:. Source : http://bat710.univ-lyon1.fr/~ogluck/Cours/Supports/M1IF_PW/PW-C4-PHP.pdf.

(80) PHP – Base de données : MySQL (3/5) „ Les principales fonctions de PHP pour exploiter le résultat d'une requête sur une base de données MySQL :. Source : http://bat710.univ-lyon1.fr/~ogluck/Cours/Supports/M1IF_PW/PW-C4-PHP.pdf.

(81) PHP – Base de données : MySQL (4/5) „ Exemple. Source : http://bat710.univ-lyon1.fr/~ogluck/Cours/Supports/M1IF_PW/PW-C4-PHP.pdf.

(82) PHP – Base de données : MySQL (5/5) „ Exemple (suite) :. Source : http://bat710.univ-lyon1.fr/~ogluck/Cours/Supports/M1IF_PW/PW-C4-PHP.pdf.

(83) PHP – Base de données : PostgreSQL „ PHP fonctione aussi avec PostgreSQL !! „ Au lieu d'utiliser mysql_ comme préfixe de fonction pour MySQL, on utilise pg_ pour PostgreSQL.. Source : www.php.net/manual/fr.

(84) PHP – Base de données : ODBC „ Sur le même principe que précédemment, PHP propose des fonctions pour travailler avec des communications de type ODBC de Microsoft. Pour communiquer à Access de Microsoft, on utilise ODBC.. Source : http://jose.rouillard.free.fr/cours-php-iae/.

(85) PHP – Base de données – Autres „ En plus de MySQL, PostreSQL ou des communications ODBC vers des BD Access, il existe également des fonctionnalités pour : 9 Oracle (oci_) 9 Microsoft SQL Server (mssql_) 9 SQLite (sqlite_) 9 Sybase DB (sybase_) 9 dBase (dbase_) 9 Firebird/Interbase (ibase_) 9 Etc..

(86) PHP – Fonctions avancées.

(87) PHP – Fonctions avancées „ Voici quelques aspects avancés qui seront présentés par la suite : 9 Sécurité 9 Identification HTTP 9 Cookies 9 Sessions 9 Manipulation de fichiers 9 Chargement de fichiers 9 Ligne de commande 9 Expressions régulières.

(88) PHP – Sécurité : Risques (1/2). Source : http://www.nexen.net/images/stories/conferences/afup2006.securite.pdf.gz.

(89) PHP – Sécurité : Risques (2/2). Source : http://www.nexen.net/images/stories/conferences/afup2006.securite.pdf.gz.

(90) PHP – Sécurité : Considérations „ Quelques considérations générales (d'après www.php.net): 9 Un système complètement sûr est une impossibilité virtuelle. 9 La meilleure sécurité est suffisamment discrète pour assurer un maximum de sécurité sans ajouter de contraintes insurmontables pour l'utilisateur ou de systèmes complexes de programmation. Souvent, les attaques sur un script sont des exploitations des systèmes de sécurité trop complexes, qui s'érodent au cour du temps. 9 Un principe qu'il est bon de retenir : Un système est aussi sûr que son maillon le plus faible. Si toutes les transactions sont bien notées dans une base, avec confirmation mais que l'utilisateur est identifié uniquement par un cookie, la robustesse de votre système est sévèrement réduite..

(91) PHP – Sécurité : Principaux ennemis (1/2). Source : http://www.nexen.net/images/stories/conferences/salonlinux.2007.pdf.gz.

(92) PHP – Sécurité : Principaux ennemis (2/2). Source : http://www.nexen.net/images/stories/conferences/salonlinux.2007.pdf.gz.

(93) PHP – Sécurité : magic quotes (1/3) „ Les « magic quotes » 9 Processus qui protège automatiquement les données introduites dans un script PHP, à l'aide de la fonction addslashes(). 9 Lorsque cette directive est active (dans le fichier php.ini), les guillemets simples ', les guillemets doubles ", les anti-slashs \ et les caractères NULL sont protégés automatiquement avec un anti-slash.. <?php // une phrase contenant un ' $chaine_non_protegee = "S'alut !"; // le ' est échappé $chaine_protegee = addslashes($chaine_non_protegee); echo $chaine_protegee; // affiche : S\'alut ! ?>.

(94) PHP – Sécurité : magic quotes (2/3) „ Pourquoi utiliser les magic quotes ? 9 Utile pour les débutants : Les magic quotes sont implantés en PHP pour protéger le code contre les trous de sécurités. 9 Commodité : Lors de l'insertion de données dans une base de données, les guillemets magiques utilisent la fonction addslashes() sur toutes les données de type GET, POST et COOKIE, automatiquement.. „ Pourquoi ne pas utiliser les magic quotes ? 9 Portabilité : Cette directive peut être activée ou désactivée suivant les serveurs et cela affecte grandement la portabilité. 9 Performances : Comme toutes les données ne sont pas placées dans une base, il y a un coût en vitesse pour protéger toutes ces données. 9 Peu pratique : Comme toutes les données n'ont pas forcément besoin de protection, il est souvent désagréable de voir des données protégées là où ça ne sert à rien. 9 De plus, la conversion n'est pas toujours nécessaire, et l'activation de cette protection implique de toujours savoir d'où viennent les données qu'on utilise : si elles viennent de la requête HTTP, elles sont déjà converties, et si elles viennent d'un fichier (ou d'une base de données, ou d'un calcul) elles ne le sont pas. Cela entraîne souvent des oublis de conversion de données ne venant pas de la requête HTTP.. Î IL EST DONC RECOMMANDÉ DE NE PAS UTILISER LES GUILLEMETS MAGIQUES.

(95) PHP – Sécurité : magic quotes (3/3) „ Pour désactiver les magic quotes, il faut modifier le fichier de configuration php.ini. „ Dans ce fichier, vous trouverez par défaut : ; Magic quotes ; ; Magic quotes for incoming GET/POST/Cookie data. magic_quotes_gpc = On ; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc. magic_quotes_runtime = Off ; Use Sybase-style magic quotes (escape ' with '' instead of \'). magic_quotes_sybase = Off. „ Pour désactiver les guillemets, vous devez mettre magic_quotes_gpc à Off..

(96) PHP – Sécurité : register_globals.. ™ Plus de détails sur les risques liés et façon de les contourner : http://www.journaldunet.com/developpeur/tutoriel/php/031030php_nexen-xss3.shtml Source : http://www.nexen.net/images/stories/conferences/salonlinux.2007.pdf.gz.

(97) PHP – Sécurité : Compléments d’informations „ Pour de plus amples informations sur la sécurité en PHP : 9 http://ca.php.net/manual/fr/security.php 9 Safe-Mode : http://ca.php.net/manual/fr/features.safe-mode.php. „ Pour de plus amples informations sur la sécurité : voir le module "Introduction à la sécurité informatique et notion de GeoDRM" dans le cours SCG66408 - Publication (avancée) de données spatiales dans Internet (http://geosoa.scg.ulaval.ca)..

(98) PHP – Identification HTTP (1/4) „ Fonction d'identification HTTP de PHP : 9 La fonction header() permet de modifier l’entête HTTP. Très utilisé pour rerouter vers une nouvelle page ! 9 Elle peut aussi permettre de demander une identification ("Authentification Required") au client. Elle génère une fenêtre de demande d'utilisateur et de mot de passe. Cette fonction supporte la méthode simple d'identification et celle de type 'Digest'. Î URL appelée avec les variables PHP_AUTH_USER, PHP_AUTH_PW et AUTH_TYPE, contenant le nom de l'utilisateur, le mot de passe et le type d'identification. Ces variables prédéfinies sont dans les tableaux $_SERVER et $HTTP_SERVER_VARS. 9 Exemple d'identification HTTP simple :. Source : www.php.net/manual/fr.

(99) PHP – Identification HTTP (2/4) 9 Exemple d'identification HTTP de type 'Digest' :. .... Source : www.php.net/manual/fr.

(100) PHP – Identification HTTP (3/4) 9 Exemple d'identification HTTP de type 'Digest' (suite):. Source : www.php.net/manual/fr.

(101) PHP – Identification HTTP (4/4) 9 Exemple d'identification HTTP avec nom d'utilisateur/mot de passe forcé :. Source : www.php.net/manual/fr.

(102) PHP – Cookies : Définitions „ Les cookies (ou témoins) 9 "Élément d'information qui est transmis par le serveur au navigateur lorsque l'internaute visite un site Web, et qui peut être récupéré par ce serveur lors de visites subséquentes." (OLF, 2002) 9 "Les cookies permettent de donner un état au protocole de communication HTTP, donc de définir des transactions. Ils ont été inventés par Lou Montulli alors qu'il travaillait chez Netscape Communications, dans le but d'adapter dynamiquement le contenu des sites web aux habitudes de navigation de l'internaute. Le fonctionnement technique des cookies est décrit précisément dans la RFC 2109." (Wikipédia). „ Avec PHP, pour envoyer un cookie, il faut utiliser la fonction setcookie() ou setrawcookie(). Comme les cookies font partis des entêtes HTTP, la fonction setcookie() doit être appelée avant tout affichage de texte. Ce sont les mêmes limitations que pour header(). „ Tout cookie envoyé est enregistré dans le tableau $_COOKIE..

(103) PHP – Cookies : Envoyer un cookie „ La fonction setcookie(). Source : http://vmazenod.free.fr/COURS/PHP/Cours5/session.pdf.

(104) PHP – Cookies : Exemples (1/2) „ Exemple 1 : Création d'un cookie nommé Visites <?php setcookie( "Visites", "Oui", time()+2592000, "/", ".commentcamarche.net",0); ?> Source : www.commentcamarche.com/. „ Exemple 2 : Autres créations de cookies. Source : www.php.net/manual/fr.

(105) PHP – Cookies : Exemples (2/2) „ Exemple 3 : Suppression de cookie (pas de valeur ou date expirée). Source : www.php.net/manual/fr. „ Exemple 4 :. Source : http://vmazenod.free.fr/COURS/PHP/Cours5/session.pdf.

(106) PHP – Sessions : Définitions „ Les sessions en PHP 9 Le support des sessions de PHP est un moyen de préserver des données entre plusieurs accès. Cela vous permet de créer des applications personnalisées, et d'augmenter l'attrait de votre site. 9 Chaque visiteur accédant à votre page web se voit assigner un identifiant unique, appelé "identifiant de session". Il peut être stocké soit dans un cookie, soit propagé dans l'URL. 9 Le support des sessions vous permet d'enregistrer un nombre illimité de variables qui doivent être préservées entre les requêtes. Utilisation du tableau global $_SESSION pour enregistrer les variables de session. 9 Lorsqu'un visiteur accède à votre site, PHP va vérifier automatiquement (si session.auto_start est activé) ou sur demande (explicitement avec session_start() ou implicitement avec session_register()) s'il existe une session du même nom. Si c'est le cas, l'environnement précédemment sauvé sera recréé. 9 Voir la section Session de php.net pour de plus amples informations : • http://www.php.net/manual/fr/ref.session.php.

(107) PHP – Sessions : Exemples (1/3) „ Exemple 1 : Soit une première page : page1.php. Source : www.php.net/manual/fr.

(108) PHP – Sessions : Exemples (2/3) „ Exemple 1 (suite) : Après avoir vu la page1.php avec un navigateur, la page2.php ci-dessous affiche magiquement les valeurs des variables de session.. Source : www.php.net/manual/fr.

(109) PHP – Sessions : Exemples (3/3) „ Exemple 2 : Compter le nombre de passages d'un utilisateur sur une page .. Source : www.php.net/manual/fr.

(110) PHP – Manipulation de fichiers „ Au niveau de la manipulation de fichiers : 9 Ouverture de fichiers 9 Affichage de fichiers 9 Lecture de fichiers 9 Ecriture de fichiers 9 Vérifier l'existence d'un fichier 9 Copier des fichiers.

(111) PHP – Fichiers : Ouverture (1/2) „ Ouverture de fichier 9 La fonction fopen(). Source : http://pierre.senellart.com/enseignement/2005-2006/l2web/cours5-2x3.pdf.

(112) PHP – Fichiers : Ouverture (2/2) „ Exemples :. Source : www.php.net/manual/fr. Source : http://pierre.senellart.com/enseignement/2005-2006/l2web/cours5-2x3.pdf. NB : Si l'ouverture échoue, la fonction retourne FALSE et une alerte E_WARNING sera générée. Vous pouvez utiliser le caractère @ pour supprimer cette alerte..

(113) PHP – Fichiers : Affichage „ Affichage de fichier 9 La fonction fpassthru(). Source : http://pierre.senellart.com/enseignement/2005-2006/l2web/cours5-2x3.pdf.

(114) PHP – Fichiers : Lecture (1/2) „ Lecture de fichier 9 Plusieurs fonctions sont disponibles • fgetc() : Lecture du premier caractère d'un fichier • fgets() : Renvoie la ligne courante sur laquelle se trouve le pointeur du fichier • fgetss() : Renvoie la ligne courante du fichier et élimine les balises HTML • fgetcsv() : Renvoie la ligne courante et cherche les champs CSV • fread() : Lecture du fichier en mode binaire • file() : Lit le fichier et renvoie le résultat dans un tableau. Source : http://pierre.senellart.com/enseignement/2005-2006/l2web/cours5-2x3.pdf.

(115) PHP – Fichiers : Lecture (2/2) „ Exemple 1 :. „ Exemple 2 :. „ Exemple 3 :. Source : http://pierre.senellart.com/enseignement/2005-2006/l2web/cours5-2x3.pdf.

(116) PHP – Fichiers : Écriture (1/2) „ Écriture de fichiers :. Source : http://pierre.senellart.com/enseignement/2005-2006/l2web/cours5-2x3.pdf.

(117) PHP – Fichiers : Écriture (2/2) „ Exemple :. Source : http://pierre.senellart.com/enseignement/2005-2006/l2web/cours5-2x3.pdf.

(118) PHP – Fichiers : Existence „ Vérifier l'existence d'un fichier :. Source : http://pierre.senellart.com/enseignement/2005-2006/l2web/cours5-2x3.pdf.

(119) PHP – Fichiers : Copie „ Copier un fichier :. Source : http://pierre.senellart.com/enseignement/2005-2006/l2web/cours5-2x3.pdf.

(120) PHP – Fichiers : Changement de nom et effacement „ Il est également possible de : 9 Renommer un fichier avec la fonction rename(). Source : www.php.net/manual/fr. 9 Supprimer un fichier avec la fonction unlink(). Source : http://pierre.senellart.com/enseignement/2005-2006/l2web/cours5-2x3.pdf.

(121) PHP – Chargement de fichiers (1/2) „ Chargement de fichiers (upload): 9 Par méthode POST. 9 Exemple : • Formulaire de chargement de fichier – _URL_ : pointe vers un fichier PHP – MAX_FILE_SIZE : taille maximale du fichier. Source : www.php.net/manual/fr.

(122) PHP – Chargement de fichiers (2/2) 9 Exemple (suite) : • Validation du chargement de fichier en provenance d'un formulaire. Source : www.php.net/manual/fr.

(123) PHP – Ligne de commande. Source : http://www-adele.imag.fr/users/Didier.Donsez/cours/php.pdf.

(124) PHP – Expressions régulières (1/6) „ Expression régulière (ou expression rationnelle) : 9 "Motif constitué d'une chaîne de caractères spécifiant des conditions à remplir lors d'une recherche effectuée dans un éditeur de texte, et qui correspond à la chaîne recherchée. " (OQLF, 2003). „ Les expressions régulières sont des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, c'est-à-dire permettant de trouver les portions de la chaîne correspondant au modèle. Ce système est emprunté au système POSIX (un système d'exploitation). De nombreux scripts sous UNIX les utilisent (notamment Perl). „ En réalité il s'agit d'un système fort ingénieux (et aussi très puissant) permettant de retrouver un mot, ou une phrase (et même beaucoup d'autres choses en réalité) dans un texte, ressemblant au modèle que l'on a construit... Source : www.commentcamarche.com.

(125) PHP – Expressions régulières (2/6) „ Les expressions régulières utilisent une syntaxe particulière :. Source : www.commentcamarche.com.

(126) PHP – Expressions régulières (3/6) „ Exemples : 9 chat|chien : correspond au mot « chat » ou au mot « chien » (et seulement eux) ; cependant il peut les trouver n’importe où dans le texte, et donc trouvera “chat” dans « chatte ». 9 [cC]hat|[cC]hien : correspond à un des mots « chat », « Chat », « chien » ou « Chien » (et seulement eux) ; cependant il peut les trouver n’importe où dans le texte, et donc trouvera “Chat” dans « Chats et chiens ». 9 ch+t : correspond à “cht”, “chht”, “chhht”, etc. n’importe où dans le texte. 9 a[ou]+ : correspond à « aou », « ao », « auuu », « aououuuoou », etc. n’importe où dans le texte. 9 peu[xt]? : correspond à un des mots « peu », « peux » et « peut » (et seulement eux) n’importe où dans le texte. La recherche retourne le plus long possible en cas d’occurrence multiples à la même position. 9 ^[st]ac : représente les mots « sac » et « tac » en début de ligne. 9 [st]ac$ : représente les mots « sac » (ou « ressac », etc.) et « tac » uniquement s’ils sont en fin de ligne ou de texte. 9 ^trax$ : représente le mot « trax » seul sur une ligne.. Source : http://fr.wikipedia.org/wiki/Expressions_rationnelles.

(127) PHP – Expressions régulières (4/6) „ Les expressions régulières disposent également de classes de caractères POSIX :. Source : www.commentcamarche.com.

(128) PHP – Expressions régulières (5/6) „ Quelques fonctions pour les expressions régulières 9 La fonction ereg() permet de faire une recherche dans une chaîne de caractères au moyen d'une expression régulière. 9 La fonction eregi() est équivalent à la fonction ereg(), hormis le fait qu'elle n'est pas sensible à la casse. 9 La fonction ereg_replace() effectue une recherche par expression régulière dans la chaîne string en recherchant les occurrences de pattern, puis les remplace par la chaîne replacement . 9 La fonction eregi_replace() est équivalente à la fonciton ereg_replace(), hormis le fait qu'elle n'est pas sensible à la casse. 9 La fonction split() scinde une chaîne de caractères en un tableau en utilisant une expression régulière 9 La fonction spliti() est équivalente à la fonction split() hormis le fait qu'elle n'est pas sensible à la casse.. Source : www.php.net/manual/fr.

(129) PHP – Expressions régulières (6/6) „ Exemples d'utilisation de fonctions pour les expressions régulières. Source : www.php.net/manual/fr.

(130) Liens PHP „ PHP 9 http://www.php.net/manual/fr/ 9 http://www.commentcamarche.net/php/phpintro.php3 9 http://php.developpez.com/cours/ 9 http://fr.wikipedia.org/wiki/PHP:_Hypertext_Preprocessor 9 http://www.apprendre-php.com/tutoriels/tutoriel-19-introduction-au-langagephp.html 9 http://www.manuelphp.com/php/manuel.php. „ PHP Cartographique : 9 http://pilatinfo.org/carto_mysql/index.htm 9 http://www.netency.com/index.php?p=presentationm 9 http://www.cbif.gc.ca/mapdata/cbif/gbifwmsmc.php.

(131) Conclusion. „ Rappels / Synthèse Ö Introduction à PHP Ö Installation de PHP Ö Éléments de syntaxe du langage Ö PHP et les bases de données Ö Fonctions avancées en PHP. „ Le prochain cours : Ö "ASP .NET et MapServer".

(132)

Références

Documents relatifs

1 Dans le cadre d'une réflexion menée sur les critères en fonction desquels d'anciens buveurs et leurs conjoints définissent le passage du consommateur à

Comme cette dame, et contrairement aux idées reçues, certaines personnes âgées au Sénégal, vivent dans des situations de vulnérabilité et sont souvent seules, elles

A partir d’une perspective d’ethnographie comparative sur les cas des bovins de combat dans les tauromachies européennes et les rodéos américains, d’une part, des

1) L’utilisation des TIC peut être intégrée dans les pratiques d’enseignement : les TIC peuvent ainsi constituer, pour les instituteurs et les professeurs qui y ont recours,

— Les travaux du généticien Richard Goldschmidt (1878-1958) constituent une tentative originale visant à élaborer une synthèse entre la génétique, la biologie du développement

On peut tout de même formuler une remarque à propos de l’utilisation du mot « base » par Rouelle dans sa définition et dans ses mémoires, auquel il donne plutôt le

La seconde étape est celle où le site est conçu : les exigences des différents réseaux sont synthétisées et trouvent une réponse dans un nouveau nœud

Il comportera 2 parties optionnelles : une partie «décimale» (un. suivi d’une série de chiffres) et une partie «exposant» (un E suivi d’un nombre entier, éventuellement