190 likes | 352 Views
Client - Serveur. PHP & MySQL. http://www.php.net. Bezada Sylvain & Perey Alexandre ISTASE3. PHP & MySQL. PLAN Introduction PHP MySQL Applications. PHP. Présentation Historique Qu’est-ce que PHP? Avantages. Base du langage PHP Variables, Opérateurs, Structures
E N D
Client - Serveur PHP & MySQL http://www.php.net Bezada Sylvain & Perey Alexandre ISTASE3
PHP & MySQL PLAN Introduction PHP MySQL Applications
PHP • Présentation • Historique • Qu’est-ce que PHP? • Avantages • Base du langage PHP • Variables, Opérateurs, Structures • Tableaux et Chaînes • Réutilisation du code et écriture • PHP orienté objets • Stockage des données
PHP Historique: 1994 : Version 1.0, Rasmus Lerdorf Objectif : Conserver une Trace des utilisateurs 1995: Libre téléchargement de PHP/FI Objectif : intégrer instructions de programmation dans du code HTML 1996: 10 millions de sites en PHP 1997: Sortie de PHP 3.0 par Zeev Suraski et Andi Gutmans Objectif : améliorer la puissance d ’analyse et la fiabilité Début 2001: PHP Version 4.0 utilisé dans plus de 5 millions de sites
PHP • Qu’est-ce que PHP? Hypertext Preprocessor Création de site Web Dynamique Open source Inclut dans du code HTML Langage de script coté serveur
PHP • Avantages • Performances • Intégration avec les Bases de données • Prix • Portabilité • Bibliothèques intégrées
PHP • Exemple <html><head><title>PHP Test</title></head> <body> <?php echo "Hello World<P>"; ?> <br> Adresse: <?php echo $REMOTE_ADDR ;?> <br> </body> </html> <html><head><title>PHP Test</title></head> <body> Hello World <br> Adresse: 129.128.5.2 <br> </body> </html> Côté Serveur Côté Client
PHP • Variables, opérateurs, structures • Variables : Types courants ( String, Int, Array, … ) • Opérateurs : Logique, Comparaison, Arithmétique, … $totalqty = 0; $totalamount = 0.00; $totalamount = ” Hello ” ; $totalamount = (double)$totaqty; $a = 3; $b = 5; $result=$a + $b; $a = ” Hello ”; $b = ”world ”; $result = $a.$b; $a = 5; $b = &$a; $a = 7; // $a et $b valent 7 ($note > 50 ? ”Admis ” : ”Recalé ”); • Structures de contrôle : If, Else, Switch, Case… If( $totalqty == 0 ) { echo ” vous n’avez pas rempli la page récédente !<br>”;} Else { echo ” La quantité totale est : ”.$totalqty;}
PHP • Tableaux et Chaînes: • Tableaux Indexés Numériquement • Tableaux Associatifs $produit = array( “Maïs” , “Blé” , “Tournesol” ); $numbers = range(1,10); • Mise en forme de chaînes $prix = array( “Maïs”=>15, “Blé”=>20, “Tournesol”=>23 ); $prix[“Maïs”] = 15; $prix[“Blé”] = 20; $prix[“Tournesol”] = 23; • Localisation et remplacement de sous-chaînes au moyen de fonctions de traitement de chaînes $name=trim($name) <p> <? Echo nl2br($mailcontent); ?> </p> $feedback = AddSlashes($feedback); • Expressions régulières $address = “feedback@alex.com”; If(strstr($feedback, “argent”)) $address = “comptabilite@alex.com”; Else if (strstr($feedback, “renseignement”)) $address = “info@alex.com”; $feedback = str_replace(“monsieur”, “madame”, $feedback); $test = substr_replace($test, “X”, -1); .at “cat”, “sat” [aeiou] recherche de voyelles [[:alnum:]]+ caractères alphanumériques
PHP • Réutilisation du code et écriture de fonctions • Intérêt • Réduire des coûts • Augmenter la fiabilité • Améliorer leur cohérence • Instructions Require et Include • Écriture et appel d’une fonction et le fichier main.php: <? echo “Ceci est le fichier principal.<BR>“; require( “reutilisable.php” ); echo “le programme est terminé.<BR>”; ?> Soit le fichier reutilisable.php: <? echo “Ceci est un exemple très simple.<BR>“; ?> Le navigateur Web affichera: Ceci est le fichier principal Ceci est un exemple très simple Le programme est terminé Nom_fonction (“paramètre”); Function ma_fonction() { echo “Ma fonction a été invoquée.”; }
PHP • PHP orienté objet • Classes et objets • Instanciation Le principal avantage d’un logiciel orienté objet réside dans sa capacité à supporter et à encourager l’encapsulation • Héritage et Redéfinition Class classname { function classname($param) { echo « Constructeur appelé avec le paramètre $param <br>; } } $a = new classname(« First »); Class A { var $attribute = « defaulte value »; function operation() { echo « la valeur de \$attribute est $this->attribute<br> »; } } Class B extends A { var $attribute = « different value »; function operation() { echo « la valeur de \$attribute est $this->attribute<br> »; } } Class classname { function operation1() { } function operation2() { } }
PHP • Stockage des données • Dans un fichier • Dans une base de données • Avantages d’une base de donnée - Ouverture d’un Fichier avec fopen(chemin du fichier, mode du fichier) - Ecriture dans un fichier avec fwrite(pointeur sur fichier, chaine de caractères, longueur chaine) - Lecture d’une ligne à la fois avec fgets(), fgetss() et fgetcsv() - Lecture intégral avec readfile(), fpassthru() et file() - Fermeture avec fclose(pointeur sur fichier) - Accès plus rapide aux données - Extraction plus faciledes données -Traitement des accès concurrents - Accès aléatoire aux données - Systèmes de privilèges intégrés
MySQL • Présentation • Qu’est-ce que MySQL? • Avantages • Fonctionnement de MySQL • Architecture • Accès à BDD MySQL à partir du Web avec PHP
MySQL • Qu’est-ce que MySQL? • Système de gestion de base de données relationnelles • Robuste et rapide • Contrôle d’accès aux données • Serveur multiutilisateurs et multithreads • Fondé sur le SQL • Disponible en Open Source
MySQL • Avantages • Système rapide • Simplicité d’emploi • Portabilité • Open source
MySQL • Architecture Requète Http Navigateur Serveur Web 1 Envoi fichier Html Envoi du fichier Php Envoi fichier Html Envoi Résultat Brute Moteur PHP Serveur MySQL Requete SQL
MySQL • Principales étapes pour intérroger une base de donnée à partir du Web • Vérifier et filtrer les données fournies par l’utilisateur • Etablir une connexion vers la BDD appropriée • Interroger la BDD • Récupérer les résultats • Présenter les résultats à l’utilisateur Trim($Searchterm) : Supprime les espaces Mysql_select_db(« nom bdd »); @$ db = mysql_pconnect(«nom hôte», « nom utilisateur », « password »); $resultat = mysql_query($query) $nb_résultats = mysql_num_rows($resultat) $tab = mysql_fetch_array($resultat) Echo htmlspecialchar(Stripslashes($tab[« champ n »]));
PHP & MySQL • Applications • Réalisation de site commercial (authentification , caddie) • Service d’e-mail par le Web • Gestionnaire de mailing lists • Forum Web • Générer des documents personnailsés en pdf