DUT MMI – IUT de Marne-la-Vallée 01/03/2016 M2202 - Algorithmique
Cours 4
Programmation web,
orientée serveur
Philippe Gambette 15/03/2017• phpdebutant.net
• www.php.net (documentation du langage PHP)
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
Préambule
Le speech d’Oussama Ammar (The Family) à propos de la connaissance des technologies quand on monte sa start-up :
• Concept de la programmation web, orientée serveur • Syntaxe PHP
• Concept de la programmation web, orientée serveur
• Syntaxe PHP
Concept de la programmation web orientée serveur
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
Concept de la programmation web orientée serveur
Concept de la programmation web orientée serveur
client
Concept de la programmation web orientée serveur
client
http://monique.pantel.free.fr/Avis.php?id=49319
Concept de la programmation web orientée serveur
client
http://monique.pantel.free.fr/Avis.php?id=493191
serveur
http://monique.pantel.free.fr/Avis.php?id=49319envoi de
l’URL
Concept de la programmation web orientée serveur
client
http://monique.pantel.free.fr/Avis.php?id=493191
serveur
http://monique.pantel.free.fr/Avis.php?id=49319envoi de
l’URL
Concept de la programmation web orientée serveur
client
http://monique.pantel.free.fr/Avis.php?id=493191
serveur
http://monique.pantel.free.fr/Avis.php?id=49319envoi de
l’URL
Concept de la programmation web orientée serveur
client
http://monique.pantel.free.fr/Avis.php?id=49319
serveur
Concept de la programmation web orientée serveur
client
http://monique.pantel.free.fr/Avis.php?id=49319serveur
http://monique.pantel.free.fr/Avis.php?id=49319Avis.php
2
récupération
du fichier
PHP
3
Concept de la programmation web orientée serveur
client
http://monique.pantel.free.fr/Avis.php?id=49319serveur
http://monique.pantel.free.fr/Avis.php?id=49319Avis.php
envoi de la
requête SQL
id=493193
Concept de la programmation web orientée serveur
client
http://monique.pantel.free.fr/Avis.php?id=49319serveur
http://monique.pantel.free.fr/Avis.php?id=49319Avis.php
envoi de la
requête SQL
id=49319SELECT * FROM films
WHERE id=49319
3
Concept de la programmation web orientée serveur
client
http://monique.pantel.free.fr/Avis.php?id=49319serveur
http://monique.pantel.free.fr/Avis.php?id=49319Avis.php
base de
données
id=49319envoi de la
requête SQL
SELECT * FROM films
WHERE id=49319
4
Concept de la programmation web orientée serveur
client
http://monique.pantel.free.fr/Avis.php?id=49319serveur
http://monique.pantel.free.fr/Avis.php?id=49319Avis.php
base de
données
note, titre, sortie, avisréception du
résultat de la
requête SQL
4
Concept de la programmation web orientée serveur
client
http://monique.pantel.free.fr/Avis.php?id=49319serveur
http://monique.pantel.free.fr/Avis.php?id=49319Avis.php
base de
données
note, titre, sortie, avisréception du
résultat de la
requête SQL
4
Concept de la programmation web orientée serveur
client
http://monique.pantel.free.fr/Avis.php?id=49319serveur
http://monique.pantel.free.fr/Avis.php?id=49319Avis.php
base de
données
note, titre, sortie, avisréception du
résultat de la
requête SQL
4
Concept de la programmation web orientée serveur
client
http://monique.pantel.free.fr/Avis.php?id=49319serveur
http://monique.pantel.free.fr/Avis.php?id=49319Avis.php
base de
données
note, titre, sortie, avisréception du
résultat de la
requête SQL
4
Concept de la programmation web orientée serveur
client
http://monique.pantel.free.fr/Avis.php?id=49319serveur
http://monique.pantel.free.fr/Avis.php?id=49319Avis.php
base de
données
note, titre, sortie, avisréception du
résultat de la
requête SQL
4
Concept de la programmation web orientée serveur
client
http://monique.pantel.free.fr/Avis.php?id=49319serveur
http://monique.pantel.free.fr/Avis.php?id=49319Avis.php
base de
données
note, titre, sortie, avisréception du
résultat de la
requête SQL
Concept de la programmation web orientée serveur
client
http://monique.pantel.free.fr/Avis.php?id=49319serveur
http://monique.pantel.free.fr/Avis.php?id=49319Avis.php
base de
données
5
envoi de
la page
HTML
Concept de la programmation web orientée serveur
http://monique.pantel.free.fr/Avis.php?id=49319serveur
base de
données
5
envoi de
la page
HTML
client
Concept de la programmation web orientée serveur
http://monique.pantel.free.fr/Avis.php?id=49319serveur
base de
données
5
envoi de
la page
HTML
client
Concept de la programmation web orientée serveur
http://monique.pantel.free.fr/Avis.php?id=49319serveur
base de
données
5
envoi de
la page
HTML
client
+/- 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 client (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
Concept de la programmation web orientée serveur
« client web »
→ navigateur
(Firefox, Chrome, Explorer, Safari, etc.)
Concept de la programmation web orientée serveur
« client web »
→ navigateur
(Firefox, Chrome, Explorer, Safari, etc.)
« serveur web »
→ machine ou
logiciel
(Apache, etc.)
envoi d’une URL
Concept de la programmation web orientée serveur
« client web »
→ navigateur
(Firefox, Chrome, Explorer, Safari, etc.)
« serveur web »
→ machine ou
logiciel
(Apache, etc.)
envoi d’une URL
envoi d’une page HTML
page PHP
= du code HTML « à trous » + des instructions PHP pour remplir les trous exécute le code PHP reçoit le code HTMLConcept de la programmation web orientée serveur
« client web »
→ navigateur
(Firefox, Chrome, Explorer, Safari, etc.)
« serveur web »
→ machine ou
logiciel
(Apache, etc.)
envoi d’une URL
envoi d’une page HTML
page PHP
= du code HTML « à trous » + des instructions PHP pour remplir les trous exécute le code PHP reçoit le code HTML Instructions PHP : • 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) Le PHP est un langage «non typé» : pas besoin de déclarer les types des variables
• 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 = $tab = array("toto", {"toto","titi"}; "titi");
tab[0]="tototo"; $tab[0]="tototo"; int a=tab.length; $a=count($tab);
$tab2 = array("o"=> "toto","i"=>"titi"); $tab2["o"]="tototo"; $k=tab2.keys(); clé valeur
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 = $tab = array("toto", {"toto","titi"}; "titi");
tab[0]="tototo"; $tab[0]="tototo"; int a=tab.length; $a=count($tab);
$tab2 = array("o"=> "toto","i"=>"titi"); $tab2["o"]="tototo"; $k=tab2.keys(); clé valeur
En PHP : le foreach pour parcourir un tableau !
foreach ($tab2 as $key => $value){ echo("La case n°".$key);
echo(" a la valeur ".$value); }
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.