DUT MMI IUT de Marne-la-Vallée 01/03/2016 M2202 - Algorithmique Cours 4 Programmation web, orientée serveur Philippe Gambette
Sources phpdebutant.net www.php.net (documentation du langage PHP)
Préambule 1) les bases de PHP sont faciles même si on a eu du mal en algorithmique au premier semestre 2) c est accessible même aux futurs non intégrateurs/développeurs : il est important pour eux de maîtriser les bases de cette technologie Le speech d Oussama Ammar (The Family) à propos de la connaissance des technologies quand on monte sa start-up : https://youtu.be/u46m0szmcty?t=57m8s
Plan du cours 4 Programmation web, orientée serveur Concept de la programmation web, orientée serveur Syntaxe PHP
Plan du cours 4 Programmation web, orientée serveur Concept de la programmation web, orientée serveur Syntaxe PHP
Source des visuels : http://www.flaticon.com/free-icon/notebook-computer_65732 http://www.freepik.com/free-psd/simple-browser-with-icons-psd_715210.htm http://www.freepik.com/free-icon/three-servers_767466.htm http://www.freepik.com/free-icon/server_811738.htm
serveur
envoi de l URL 1 serveur
envoi de l URL 1 serveur
envoi de l URL 1 serveur
serveur
serveur récupération du fichier PHP 2 Avis.php
id=49319 3 envoi de la requête SQL serveur Avis.php
id=49319 3 envoi de la requête SQL serveur SELECT * FROM films WHERE id=49319 Avis.php
serveur base de données id=49319 3 envoi de la requête SQL SELECT * FROM films WHERE id=49319 Avis.php
serveur base de données note, titre, sortie, avis 4 réception du résultat de la requête SQL Avis.php
serveur base de données note, titre, sortie, avis 4 réception du résultat de la requête SQL Avis.php
serveur base de données note, titre, sortie, avis 4 réception du résultat de la requête SQL Avis.php
serveur base de données note, titre, sortie, avis 4 réception du résultat de la requête SQL Avis.php
serveur base de données note, titre, sortie, avis 4 réception du résultat de la requête SQL Avis.php
serveur base de données note, titre, sortie, avis 4 réception du résultat de la requête SQL Avis.php
envoi de la page HTML 5 serveur base de données Avis.php
envoi de la page HTML 5 serveur base de données
envoi de la page HTML 5 serveur base de données
envoi de la page HTML 5 serveur base de données
+/- de la programmation web orientée serveur Avantages de la programmation web orientée serveur : code PHP stocké sur le serveur, non visible pour le (sécurité) interaction avec une base de données hébergée sur le serveur génération facile de fichiers de types variés (HTML, PNG, CSV, JSON, etc.) lancement possible de n importe quel programme calculs effectués côté serveur Inconvénients de la programmation web orientée serveur : calculs effectués côté serveur : doit résister à la charge nécessite de recharger la page... sauf en passant par AJAX
«web» navigateur (Firefox, Chrome, Explorer, Safari, etc.) envoi d une URL
«web» navigateur (Firefox, Chrome, Explorer, Safari, etc.) envoi d une URL envoi d une page HTML «serveur web» machine ou logiciel (Apache, etc.)
«web» navigateur (Firefox, Chrome, Explorer, Safari, etc.) envoi d une URL envoi d une page HTML «serveur web» machine ou logiciel (Apache, etc.) reçoit le code HTML exécute le code PHP page PHP = du code HTML «à trous» + des instructions PHP pour remplir les trous
«web» navigateur (Firefox, Chrome, Explorer, Safari, etc.) envoi d une URL envoi d une page HTML Le PHP est un langage «non typé» : pas besoin de déclarer les types des Instructions PHP : variables Déclaration de variables Affectations de variables Structures de contrôle (tests, boucles) Appel de fonctions (en particulier les fonctions de gestion de bases de données MySQL) Entrées : récupération de valeurs provenant d un formulaire ou de l URL Sorties : affichage (dans les trous du code HTML) «serveur web» machine ou logiciel (Apache, etc.) reçoit le code HTML page PHP = du code HTML «à trous» + des instructions PHP pour remplir les trous exécute le code PHP
Plan du cours 4 Programmation web, orientée serveur Concept de la programmation web, orientée serveur Syntaxe PHP
Syntaxe PHP correspondance avec Java Java PHP Programme fichier TP1.java avec fichier TP1.php contenant du une classe TP1, ses code HTML (header, body) propriétés, et ses méthodes et des balises <?php et?> dont la méthode main, contenant des instructions qui contiennent des PHP instructions Java Compilation terminal : pas de compilation : langage javac TP1.java «interprété» à la volée Exécution terminal : URL de page PHP dans java TP1 val1 val2 le navigateur web : http://mmi.fr/tp1.php?param1=val1&p2=val2 Sortie afficher dans le terminal : afficher dans le code HTML : System.out.println( echo("toto"); "toto");
Syntaxe PHP correspondance avec Java Java PHP Programme fichier TP1.java avec fichier TP1.php contenant du une classe TP1, ses code HTML (header, body) propriétés, et ses méthodes et des balises <?php et?> dont la méthode main, contenant des instructions qui contiennent des PHP instructions Java Compilation terminal : pas de compilation : langage javac TP1.java «interprété» à la volée Exécution terminal : URL de page PHP dans java TP1 val1 val2 le navigateur web : http://mmi.fr/tp1.php?param1=val1&p2=val2 Sortie afficher dans le terminal : afficher dans le code HTML : System.out.println( echo("toto"); "toto");
Syntaxe PHP correspondance avec Java Java PHP Affichage dans la fonction main : dans le body : des paramètres public static void <?php main(string[] arg){ echo ($_GET["param1"] System.out.println(." ".$_GET["p2"]);?> arg[0]+" "+arg[1]);} (parenthèses pas nécessaires) Initialisation int i=0; $i=0; d une variable String x="toto"; $x="toto"; (ou $x='toto';) (inclut la déclaration) (pas de déclaration) Test if(i==0){x="a";} if($i==0){$x="a";} else{x="b";} else{$x="b";} Boucle while(i>0){ while($i>0){ i++;} $i++;} for(int i=0;i<10;i++){ for($i=0;$i<10;$i++){ } }
Syntaxe PHP correspondance avec Java Java PHP Tableaux Les numéros de case sont Les cases peuvent être des entiers de 0 à n-1 désignées par des noms (n=nombre de cases) (chaînes de caractères) La longueur d un tableau La taille d un tableau peut ne peut pas changer. Changer. Valeurs toutes de même Possible de mettre des valeurs type de type différent String[] tab = {"toto","titi"}; tab[0]="tototo"; int a=tab.length; $tab = array("toto", "titi"); $tab[0]="tototo"; $a=count($tab); clé $tab2 = array("o"=> "toto","i"=>"titi"); valeur $tab2["o"]="tototo"; $k=tab2.keys();
Syntaxe PHP correspondance avec Java Java PHP Tableaux Les numéros de case sont Les cases peuvent être des entiers de 0 à n-1 désignées par des noms (n=nombre de cases) (chaînes de caractères) En La longueur PHP : le d un foreach tableau pour La parcourir taille d un tableau un tableau peut! ne peut pas changer. Changer. foreach Valeurs toutes ($tab2 de même as $key Possible => $value){ de mettre des valeurs typeecho("la case n ".$key); de type différent echo(" a la valeur ".$value); } String[] tab = $tab = array("toto", {"toto","titi"}; "titi"); tab[0]="tototo"; $tab[0]="tototo"; int a=tab.length; $a=count($tab); clé $tab2 = array("o"=> "toto","i"=>"titi"); valeur $tab2["o"]="tototo"; $k=tab2.keys();
Syntaxe PHP correspondance avec Java Java PHP Fonctions public static et le Le mot function précède type de sortie précèdent le le nom de la fonction, suivi nom de la fonction, suivi de de parenthèses qui parenthèses qui contiennent contiennent les entrées les entrées éventuelles, éventuelles. précédées de leur type. public static int function somme($a,$b) somme(int a,int b){ { return a+b; return a+b; } } Appel de Le nom de la fonction est Le nom de la fonction est fonction suivi de parenthèses qui suivi de parenthèses qui contiennent les entrées contiennent les entrées éventuelles. éventuelles. Concaténation "a"+"b" "a"."b"