PHP - MySQL ● Animateur – Jean-Marc Vanel – Consultant Logiciels libres, Java & XML – – Site: ●

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

Conception de Site Webs dynamiques Cours 5
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.
Interactivé: L'Action Script.
TOUQUET Arnaud ▪ GI05 BLONDEEL Igor ▪ GM05
Création de Pages Web Dynamiques
Jean-Philippe PERNIN Université Stendhal Département Informatique Pédagogique Bureau I113 PHP Traitement Graphique.
Jean-Philippe PERNIN Université Stendhal Département Informatique Pédagogique Bureau I113 PHP Templates.
Exposé de Système - Informatique et Réseau
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 &
51 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Métier Janvier Version 1.0 -
TP n°1 PHP LES BASES Premier programme Affichage
Personal Home Page / Hypertext Processor (PHP)
PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
TP 3-4 BD21.
Formulaire HTML Introduction. Définition de formulaire.
Introduction aux Web Services Partie 1. Technologies HTML-XML
Sécurité Informatique
CPI/BTS 2 Programmation Web Introduction au PHP
Le langage PHP 5.
Développement Rapide dApplications Web avec.NET « Mon premier site »
Les instructions PHP pour l'accès à une base de données MySql
Les Classes les structures en C (struct) regroupent des variables : structuration de l'analyse mais problèmes de cohérence problèmes de sécurité d'accès.
Introduction au langage PHP Réfs : Chap 3 p 49. Présentation PHP (Hypertext PreProcessor) est un langage de développement Web créé en 1994 par Rasmus.
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
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.
Web dynamique PhP + MySQL AYARI Mejdi 2006
PhP-MySQL Pagora 2012/2013 CTD 1 - Presentation de moi ^^
L3 Module Libre Année universitaire Initiation à la Bioinformatique Jean-Michel RICHER.
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
CPI/BTS 2 Programmation Web PHP et les Bases de données Prog Web CPI/BTS2 – M. Dravet – 11/03/2004 Dernière modification: 11/03/2004.
Animateur : Med HAIJOUBI
PHP 1° PARTIE : LES BASES © BTS IRIS 2002 [tv] Présentation Historique
Javascript 1° PARTIE : LES BASES
PHP & My SQL.
Programmation Internet en PHP SIL module M12
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
Date : Juillet 2014 Formation : TAI Formateur : Tayeb BENDJELTI
La notion de type revisitée en POO
PHP 5° PARTIE : LES COOKIES
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
JavaScript.
0 Objectifs de la session n°1  Revenir sur toutes les bases théoriques nécessaires pour devenir un développeur Web,  Découvrir l’ensemble des langages.
Cours de programmation web
Créer des packages.
 Syntaxe du langage PHP
 Requêtes MySQL en PHP Introduction
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
S'initier au HTML et aux feuilles de style CSS Cours 5.
PHP 6° PARTIE : LES SESSIONS 1.Introduction 2.Identificateur de session 3.Variables de session 4.Client / Serveur 5.Principe 6.Ouverture de session 7.Enregistrement.
 Formulaires HTML : traiter les entrées utilisateur
Initiation au JavaScript
Initiation au web dynamique Licence Professionnelle.
Introduction à PHP TOURNADRE Guillaume - Informatique Réseaux URL :
Séance /10/2005 CSS et Dreamweaver. CSS : principes Cascading Style Sheet = feuille de style en cascade Norme du W3C :
Module 133 Développer des applications Web Introduction à PHP.
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
L. Gurret – M. Herve – P. Mignon – J. Prarioz. Introduction  Dernière étape d’analyse  Cahier des charges, spécifications et conception orientée objet.
Scénario Les scénarios permettent de modifier la position, taille … des calques au cours du temps. Son fonctionnement est très proche de celui de Macromedia.
Dreamweaver le retour Avec Les Formulaires Les Calques
Les calques Les Template (modèles) Les Comportements Les scénarios Les formulaires Les CSS Le serveur Web de l’UTC Présentation.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
Développement d’applications Web
Transcription de la présentation:

PHP - MySQL ● Animateur – Jean-Marc Vanel – Consultant Logiciels libres, Java & XML – – Site: ● Déroulement – Horaires – Déjeuner – Pauses – Questions

Les bases PHP : le menu Historique, Points forts, Principe Syntaxe: Variables, tableaux, constantes, Opérateurs Les blocs de contrôle: if, boucles while, for, foreach, switch Les fonctions, PHP Objet Formulaires Base de Données MySql Sessions, Cookies Images Upload de fichier Les templates Configuration PHP: php.ini Resources – Vers la version 5

PHP – C'est.... Logiciel libre et gratuit Langage de script coté serveur Développé en C Soutenu par la Apache Fundation Software ("édité" par Zend technologies Site officiel Version Ressources en français: Ressources en anglais

PHP – Historique De Personnal Home Page Crée en 1994 par Rasmus Lerdorf......réécrit 3 fois A Php Hypertext Preprocessor Un acronyme récursif calqué sur le principe Gnu's not Unix de noms de domaine aujourd'hui Sources netcraft :

PHP – Nouveautés V4 Un nouveau moteur... Performances accrues Des outils supplémentaires Compiler, Caches et Optimiseurs (parfois payants...) Meilleur compatibilité Un module ISAPI pour IIS Nouvelles fonctionnalités Prise en charge native des sessions Nouveaux type de boucles...

PHP – Points forts Des solutions alternatives Asp, JSP / Servlets, Cfm, CGI, Perl,... Pourquoi Php ? - Performances élevées. - Multi-base (MySQL, PostgreSQL, mSQL, Oracle, dbm, Filepro, Hyperware, Informix, Interbase, Sybase, ODBC, JDBC, Oracle... ) - Bibliothèques de fonctions, de scripts - conçu pour le Web - Simplicité d'apprentissage - Portabilité - Gratuité, Open Source

PHP – Principe Principe de fonctionnement Traitement coté serveur Serveur http Navigateur Page PHP ? PHPBase de données Demande de page Interprète le code PHP (généralement génère une page HTML) Résultat du traitement Schéma simplifié du déroulement d’une requête mettant en jeu une page PHP Requête BD? Page résultante Résultat requête

bonjour PHP – Principe, conclusions Visibilité Seul le code HTML est disponible coté utilisateur <? echo ‘ ’; echo ‘bonjour’; echo ‘ ’; ?> Page PHP (sur serveur) Page générée et transmise Résultat dans le navigateur Client

PHP –Syntaxe Généralités Très proche du C, C++, Java Directement intégré dans les pages HTML Entre les balises Lignes d’instructions terminées par ‘;’ Simplicité de l’écriture Typage faible Pas de forte structuration du code Allocation / libération de mémoire automatique ! Seul le développeur est garant de la lisibilité du code

PHP –Structure type Installer Php et créer la page « hello the world »

PHP – Variables, concepts Variables Précédée d’un ‘$’ Affectation avec '=' Pas de « déclaration » (automatique) Faiblement typé Portée Script Locale Globale Super-globale Constantes

PHP – Variables, utilisation Utilisation Numériques <? $a = 2; //(a vaut 2) $b = $a + 8; //(b vaut 10) $c = $b + $a; (c vaut 12) ?> Chaînes <? $chaine = ‘Bonjour’; $qui = ‘ Aston’; $text = $chaine.$qui; //text vaut ‘Bonjour Aston’ ?> Tableaux <? $tableau[0] = 10; $tableau[1] = 20; $courses[‘pomme’] = 10; $courses[‘stylo’] = 20; ?> Indices automatiques: <? $tableau[] = « a »; $tableau[] = 4; $tableau[] = 17; ?>

Une variable peut contenir une liste de valeur, qui sont alors stockées sous forme de tableau. Une variable devient tableau dès lors que l'on utilise le mot clé array pour définir son contenu: ou en initialisant directement l'un de ses éléments : Les éléments d'un tableau peuvent contenir n'importe quelle valeur de n'importe quel type (y compris un tableau : la variable devient alors un tableau à n dimensions) et possèdent une clé (ou indice), qui peut être une valeur numérique ou alpha numérique. On parle alors de tableau associatif. PHP - Les variables tableaux $tab=array( 45, 'toto'); $tab[2]=680.98;

PHP - les variables tableaux (2) $tab2=array( 45, 'toto'); echo $tab2[0]; // affiche 45 echo $tab2[1]; // affiche toto $tab2[]=78; // indice automatique -> 2 echo $tab2[2]; // affiche 78 $tab=array('paul'=>'renault', 54=>'ford', 'mercedes'); $tab['jean']='opel'; echo $tab['paul']; // affiche renault echo $tab[0];// Attention ! : n'affiche pas 'renault' !! echo $tab[55]; // affiche mercedes Quand on n'indique pas de clé à l'élément lors de l'initialisation, celle-ci prend alors automatiquement une valeur numérique (celle immédiatement après la plus élevée). On peut spécifier la clé (numérique ou pas) à l'initialisation :

PHP - Manipulation de tableaux Pour toutes variables tableau, PHP gère un "curseur" en interne, qui pointe sur l'un des éléments du tableau. Par défaut, le curseur pointe sur le premier élément. Toute une série de fonctions PHP (prés de 60!) permet de manipuler ce curseur et de parcourir un tableau facilement (voir chapitre sur les boucles) : reset($tab); // remet le curseur au début $nombre=count($tab); // donne le nombre d'élément $valeur=next($tab); /* avance le curseur et renvoi la valeur de l'élément courant */ $valeur=prev($tab); /* recule le curseur et renvoi la valeur de l'élément courant */ $elt=each($tab); /* renvoi l'element courant (sous forme de tableau array(cle, valeur) et avance le curseur */ ksort($tab); // trie le tableau en fonction des clés sort($tab); // trie le tableau en fonction des valeurs

PHP - Les constantes Elles se définissent avec le mot clé define et s'utilisent avec leur nom sans $ devant. <? define('TAUX_EURO', ); $prix_euro= $prix_franc / TAUX_EURO; ?> Exemple : La portée d'une constante est 'superglobale' (PHP >= v3) et les valeurs peuvent être de tout type. Ne pas confondre variable et constante. On ne peut modifier la valeur d'une constante.

PHP – Variable de variable Concept Utiliser une variable dont le nom est le contenu d’une variable <? $NomVariable = ‘Prenom’; $$NomVariable = ‘Pierre’; echo ‘bonjour ’.$Prenom; // affiche ‘Bonjour Pierre’ ?> ! Attention à la lisibilité du code lors de l'emploi de cette méthode

PHP – Opérateurs Arithmétiques +Addition -Soustraction *Multiplication /Division %Modulo Affectation combinée +=$a+=$b$a = $a+$b -=$a-=$b$a=$a-$b *=$a*=$b$a=$a*$b /=$a/=$b$a=$a/$b %=$a%=$b$a=$a%$b.=$a.=$b$a=$a.$bConcaténation

PHP – Opérateurs (2) Incrémentation / décrémentation ++$a$a++ --$a$a-- Négation $a = true; $b = !$a; ($b == false) Référence $a = &$b; $a = 5; $b a pour valeur 5

PHP – Opérateurs (3) Comparaison ==Egal !=Différent <>Différent <Inférieur <=Inférieur ou égal >Supérieur >=Supérieur ou égal Logiques && et ||ou andet (priorité inférieure) orou (priorité inférieure) ! Les opérateurs sont court circuit à gauche

PHP – Opérateurs (4) &et binaire |ou binaire ~non binaire ^ou exclusif binaire <<décalage à gauche >>décalage à droite I Il est très rare d'avoir recours à ces opérateurs dans un contexte classique

PHP – Les blocs (if) Test if If ($condition){...Traitement si vrai }else{...Traitement si faux } Exemple If ($UtilisateurConnu){ echo «Bienvenue $Utilisateur »;...Contenu de la page... }else{ header ("location: exit; }

PHP – Boucle (while) Boucle while while ($condition){...Traitement } Exemple $i = 0; $NotFinished = true; while ($NotFinished){ if (!isset ($Tableau[$i])){ $NotFinished = false; }else{ $Tableau[$i] = $Tableau[$i]*2; $i++; } ! Attention aux conditions de boucle (boucles infinies) I Php aborde les pages trop longue à exécuter (paramétrage du fichier ini)

PHP – Boucle (for) Boucle for for (départ; condition; passage){ Traitement unitaire } Exemple function TableMulti ($TableDe){ for ($i=0; $i<=10; $i++){ echo 'TableDe ['. $i. ']='. $TableDe[$i]. "\n"; }

PHP – Boucle (foreach) Boucle foreach Idéal pour parcourir des éléments de type tableau. foreach ($Tableau as $Clef=>$ElementUnitaire){ // $Clef référence l'indice du tableau // $ElementUnitaire référence la valeur de $Tableau[$Clef] } $Clef=> est facultatif Exemple function ShowTableau ($MonTableau){ foreach ($MonTableau as $Key=>$Elem){ echo 'Clef: '.$Key.' - Valeur: '.$Elem." \n"; }

PHP - Structure de contrôle (switch) Le mot-clé switch permet d'effectuer un traitement selon la valeur d'une variable. switch( ) { case : break; case : break; default : } switch($var){ case 'toto': echo "c'est toto !"; break; case 'marc': echo "marc est là"; break; default: echo "connais pas"; } Exemple :

PHP – Les fonctions Fonctions Mot clef « function » Ne spécifie ni le type de retour, ni les types en entrée <? function Carre ($nombre=10) { return $nombre*$nombre; } echo "Le carré de 2 est : ".Carre(2); ?> Possibilité de donner un Paramètre par défaut De la droite vers la gauche Cet exemple affiche « le carré de 2 est :4 »

PHP – « Php Objet » Déclaration Mot clef « class » Pas de niveau d’accès, tout est « public ». Les variables de classes (propriétés) sont déclarées par « var » Mot clef « $this » Constructeur: méthode du même nom que la classe <? class Carre { var $nombre; function Execute () { echo « ».$this->nombre*$this->nombre; } ?> ! Il est obligatoire de faire référence aux méthodes et propriétés de classe via '$this'

PHP – Objets (2) Utilisation Mot clef « new » Pas de « delete » ! Référence aux propriétés / méthodes par « -> » <? $ObjCarre = new Carre(); $ObjCarre->nombre = 10; $ObjCarre->Execute (); // affiche 100. $AutreCarre = $ObjCarre; // ici copie $AutreCarre->nombre = 2; $AutreCarre->Execute (); // affiche 4. $ObjCarre->Execute (); // Affiche 100. ?> ! Les objets sont implicitements passés en copie. Il faut forcer un passage par référence si besoin.

PHP – Objets Héritage Héritage Mot clef « extends » Pas d’héritage multiple Possibilité de surcharge <? class Chef extends Personne { var $secretaire; // Personne function maFonction () { Personne::maFonction(); echo "prérogatives en plus"; } ?> Personne Chef maFonction() secretaire

PHP – Formulaires Permettre à l'utilisateur de saisir des données libres Mise en oeuvre facile Avantages Interactivité Développement Compatibilité

PHP – Formulaires (2) Formulaire HTML classique Les variables reçues porteront le nom des champs Page « interface » Exemple <form name="saisie" action="traitement.php" method="GET"> Nom : Prénom :

PHP – Formulaires (3) Variables automatiquement globales si register_globals = true; (php.ini) Dans les variables spécifiques Php HTTP_GET_VARS, HTTP_POST_VARS ( _GET, _POST depuis Php ) Page « réception » I Le « Php group » recommande aujourd'hui l'emploi de _GET et _POST, puis de définir register_globals à false

PHP – Formulaires (4) <? if (!isset ($_POST['nom'])){ echo "Le formulaire n'a pas été reçu correctement"; }else{ echo 'Bonjour '.$_POST['nom']; } ?> Page « réception », exemple I Il est souvent préférable de tester l'ensemble des valeurs attendues pour des raisons de sécurité. (utilisateurs mal intentionnés)

PHP - Les formulaires exercice 1 Objectifs : Ecrire une page HTML reprenant le formulaire de l'exemple précédent et la page php01_b.php qui va récupérer les informations saisies et les afficher. Vous essaierez avec les méthodes GET, POST.

Objectifs : Ecrire une page PHP affichant un formulaire demandant un login / mot de passe. Apres envoi du formulaire, cette page devra vérifier la saisie et rediriger vers php02_b.php si le login est bon. Cette dernière affichera le login saisie. Si le login est faux, le formulaire sera afficher à nouveau avec un message d'erreur. php02_b.php php02_a.php PHP – Formulaires, exercice

PHP – Dialogue application serveur web Le dialogue peut se faire dans le sens serveur web => navigateur: en générant du code HTML : echo() ou print() en modifiant l'en tête HTTP de la page générée pour par exemple forcer le download de fichier ou effectuer des redirections. En envoyant des cookies. (fonction setcookie ; cf chapitre sur les cookies) <? // redirection vers la page autrepage.php header("location: autrepage.php"); ?> La modification de l'en-tête HTTP et l'envoi de cookie doit se faire avant tout code HTML, echo() ou print()

PHP – Base de Données Pourquoi ? Stockage permanent des saisies formulaire piocher dans de gros volumes de données intégration avec systèmes existants Adabas, Dbase, DBM, ICAP, Informix, SQL serveur, MSQL, MySQL, ODBC, Oracle, PostgreSQL, Sybase. Support natif de MySQL Support SGBD Php ● structuration ● persistence ● intégrité ● sécurité ● requêtes

PHP – BD, Utilisation <? $IdConnexion = mysql_connect (« host », « user », « password »); ?> Connexion $IdConnexion pourra être réutilisé par la suite lors des requêtes, c'est un identifiant de connexion I En règle générale, les fonctions de connexion aux bases de données sont de la forme BD_connect ();

PHP – BD, Utilisation (2) Interrogation <? $IdRequete = mysql_db_query (‘test’, ‘select * from employe’); // Cette fonction est obsolète // --- ou mieux: --- mysql_select_db (‘test’); $IdRequete = mysql_query (‘select * from employe’); ?> $IdRequete est un identifiant de requête, il poura être utilisé pour le parcours des résultats. ! Les « select * », bien que pratiques, sont dangereux à utiliser. (casse et ordre des champs, performances)

PHP – BD, Utilisation (3) Parcours mysql_fetch_assoc (); Un tableau associatif avec le nom des champs mysql_fetch_row (); Un tableau indicé dans l'ordre des champs mysql_fetch_object(); Un objet dont les prop. sont les noms des champs while ($row = mysql_fetch_object ($IdRequete)) { echo $row->champ1; } while ($row = mysql_fetch_row ($IdRequete)) { echo $row[0]; } while ($row = mysql_fetch_assoc ($IdRequete)) { echo $row["champ1"]; } Exemple - Lecture et retour de l'enregistrement - Pointe sur l'enregistrement suivant - Retourne false en fin de parcours

PHP – MySql Restrictions Non respect des clefs étrangères Requêtes imbriquées impossibles Gestion des droits limité DATE_FORMAT – formatage de la date SELECT DATE_FORMAT("%d-%m-%Y") la_date FROM maBase; Cryptage d'une information (e.g. : pour stocker les mots de passe) PASSWORD ("chaîne à crypter"); Fonctions utiles

PHP – Sessions Avantages Conserver des données d’une page à l’autre Très simple d’utilisation Fonctions... session_start () démarrage de la session session_register () enregistrement d'une variable en session session_unregister () déréférencement d'une variable de session session_destroy () détruit la session de l'utilisateur actuel Pour placer un objet en session, il doit être déclaré avant son démarrage Les modifications aux variables de session sont enregistrées automatiquement

PHP – Sessions, exemple Page1.php <? session_start (); // crée la session si inexistante $valeur = 10; session_register ("valeur"); // stocke $valeur dans la session $valeur = 20; ?> Page2.php <? session_start (); echo $valeur; //affiche 20. ?>

PHP – Cookie Avantages Placer des données (non sensibles) côté client Cibler les attentes de l'internaute Fonctions... Setcookie («nom_cookie », valeur_cookie); Définition du cookie et de sa valeur $HTTP_COOKIE_VARS[«nom_cookie »] Permet de tester la valeur du cookie. Pour supprimer un cookie, faire un setcookie ("nom_cookie") en ne spécifiant aucune valeur.

PHP – Cookies, exemple <? $Last = false; if (isset ($HTTP_COOKIE_VARS['date_connexion'])){ $Last = $HTTP_COOKIE_VARS['date_connexion']; } setcookie ('date_connexion', date ("d-m-Y H:m:s")); if ($Last) echo "Votre dernière connexion: ".$Last; ?>

PHP - Les cookies La fonction setcookie : int setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]]) Name : nom du cookie value : valeur stockée (vide : le cookie est détruit) expire : date d'expiration du cookie (sans date : cookie de session) la date est au format "Unix timestamp" ( nombre de secondes depuis le 01/01/1970 ) que l'on peut obtenir avec mktime() ou time(). path : chemin du répertoire où est valide le cookie ( par defaut: le chemin de la page qui fait le setcookie) domaine : nom du domaine où est valide le cookie secure : indique si le cookie est sécurisé La création d’un cookie doit se réaliser avant tout envoi HTML au poste client, l’en-tête de la réponse HTTP étant modifié...

PHP - Les cookies Pour récupérer les valeurs de cookie, cela se passe comme toutes variables prédéfinies. Soit PHP crée des variables individuelles automatiquement en début de page soit on retrouve les valeurs dans les tableaux $HTTP_COOKIE_VARS[] ou $_COOKIE[] (version > 4.1.0) Pour modifier le contenu d'un cookie, il faut réutiliser la fonction setcookie() <? /* crée un cookie ayant pour nom "societe" et pour valeur "aston" il est valide 15 jours et est accessible sur toutes les pages du site */ setcookie("societe","aston",time()+60*60*24*15,"/"); ?>

PHP - Les cookies Objectifs : Ecrire une page PHP de saisie de login/mot de passe, qui vérifie la validité de la saisie. Si le login est bon, créer un cookie contenant un nombre indiquant que l'utilisateur est bien identifié et une autre contenant le login. Faire une deuxième page qui vérifie la présence des cookies : elle affichera alors un message avec le login si c'est ok, ou redirigera vers la page d'identification le cas échéant. Essayer avec des cookies de session (sans date de validité) et des cookies normaux. php03_b.php php03_a.php

PHP – Images, rappels Les formats... JPEG – Idéal pour les images complexes (photographie) GIF – Idéal pour les images simples (graphes, texte,...) Le format gif est payant. (les logiciels qui génèrent du gif doivent payer une licence) PNG – « Amélioration » du format gif, gratuit. Pas de perte de données.

PHP – Images, génération Génération en 4 étapes 1 – Création d'une zone de dessin ImageCreate ($largeur_px, $hauteur_px) ImageCreateFromPNG/JPEG/GIF ($FileName) 2 – Dessin (textes / formes) dans la zone. Allocation des couleurs : ImageColorAllocate ($img, $R, $V, $B) ImageLine ($img, $startx, $starty, $width, $height, $color) ImageString ($img, $police /*entier*/, $startx, $starty, $txt, $color) ImageRectangle ($img, $x, $y, $long, $haut, $color) ImageFilledRectangle ($img, $x, $y, $long, $haut, $color) 3 – Génération de l'image ImagePNG/JPEG/GIF($img, [$filename]) 4 – Libération des ressources. ImageDestroy ($img)

PHP – Upload de fichier Coté client Une zone fichier dans le formulaire. Un formulaire « enctype/multipart » Coté serveur if (is_uploaded_file ($fichier)){//réussite de l'upload ? move_uploaded_file ($fichier,'./destination/'.$nom_fichier); //déplacement de l'upload } I Il est nécessaire de donner à Php les droits d'écriture à « destination ».

PHP – Les templates Objectif Dissocier les traitements de la présentation. Principe Objet template Page Php Fichier template Traitement préparation des données Code HTML Résultat Rapprochement des donneés

Solutions évoluées PHP – Les templates (2) Avantages Travail avec des graphistes Possibilité de modifier l'aspect de l'application sans l'endommager Possibilité de profiter des outils de présentation Quelques noms PhpLib Xtemplate FastTemplate Phtemplate Modelixe (modelixe.phpedit.com) Smarty (smarty.php.net)

PHP – Les templates (3) Solutions évoluées Cache de templates Cache de données « Language » de programmation (conditions, boucles,...) Traçage des données, déboggage

PHP – Les templates (4) Exemple standard {$Variable} Fichier_tpl.tpl <?php $tplObj = new Template(); $tplObj->assign («Variable », « Test » ); $tplObj->display («fichier_tpl.tpl » ); ?> Page.php Test Page résultante

PHP – Php.ini Role Il est possible de paramétrer de nombreux aspect de Php au travers du fichier php.ini Paramètres Magic_quotes_gpc (on) Ajout automatique de slashes devant les caractères spéciaux Sql short_open_tag (on) Permet l'emploi de <? au même titre que <?php output_buffering (4096) Permet de bufferiser la sortie Php. Une sortie bufferisée permet de définir des informations d'en tête après avoir écrit des informations dans le corps.

PHP – Php.ini (2) Paramètres... suite max_execution_time (30) Temps maximum d'exécution autorisé pour une page. Passé ce délais, le script est abordé. memory_limit (8M) Ressource mémoire maximale pour un script donné. error_reporting Les types d'erreurs a signaler. display_errors Faut il afficher les messages d'erreur ? register_globals (off >= on <= 4.1.0) s'il faut déclarer automatiquement les variables globales GPC

PHP – Php.ini (3) Paramètres... et fin include_path les chemins d'inclusion à parcourir. file_uploads (on) Permission d'uploader des fichiers. upload_max_filesize (2M) Taille macimale des fichiers uploadés. session.save_path Chemin où sauvegarder les fichiers de session. session.autostart (off) démarrage automatique des sessions mysql.allow_persistent (1) Autorisation de créer des connexions persistentes.

PHP – >= La version de Php intègre plusieurs variables implicitement globales (destinées à remplacer les variables désormais obsolètes $HTTP_X_VARS) _SESSION (variables de session) _GET (variables get) _POST (variables post) _REQUEST (rassemblement de post + get + cookie) _COOKIE (données provenant des cookies) _SERVER (contient les variables serveur (ex: REMOTE_ADDR)) _ENV (variables d'environnement)

Sites sur PHP : le site officiel de php. Très utile pour la documentation en ligne (en anglais, français…) : le site de la société à l'origine de la refonte du moteur de PHP4. : site d'information avec de nombreux tutoriaux/scripts et un forum très actif (français) : autre site d'information (français) : site d'information avec de nombreux tutoriaux et scripts (anglais) portail dédié aux webmasters traitant tout les langages : HTML, PHP, javascript etc… (français) dev.nexen.net : manuels en français PHP et MySQL

PHP – Vers la version 5 La version 5 de Php, en cours d'élaboration, sera basé sur la ZendEngine 2 et verra naitre nombres d'évolutions. Support plus avancé de l'objet. Constructeurs / Destructeur Passage par référence automatique des objets Différentiation de la casse (systématique) Gestion des exceptions