[PDF] Cours de programmation web coté serveur | Cours Informatique

Texte intégral

(1)

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

(2)

• phpdebutant.net

• www.php.net (documentation du langage PHP)

(3)

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 :

(4)

• Concept de la programmation web, orientée serveur • Syntaxe PHP

(5)

• Concept de la programmation web, orientée serveur

• Syntaxe PHP

(6)

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

(7)

Concept de la programmation web orientée serveur

(8)

Concept de la programmation web orientée serveur

client

(9)

Concept de la programmation web orientée serveur

client

http://monique.pantel.free.fr/Avis.php?id=49319

(10)

Concept de la programmation web orientée serveur

client

http://monique.pantel.free.fr/Avis.php?id=49319

1

serveur

http://monique.pantel.free.fr/Avis.php?id=49319

envoi de

l’URL

(11)

Concept de la programmation web orientée serveur

client

http://monique.pantel.free.fr/Avis.php?id=49319

1

serveur

http://monique.pantel.free.fr/Avis.php?id=49319

envoi de

l’URL

(12)

Concept de la programmation web orientée serveur

client

http://monique.pantel.free.fr/Avis.php?id=49319

1

serveur

http://monique.pantel.free.fr/Avis.php?id=49319

envoi de

l’URL

(13)

Concept de la programmation web orientée serveur

client

http://monique.pantel.free.fr/Avis.php?id=49319

serveur

(14)

Concept de la programmation web orientée serveur

client

http://monique.pantel.free.fr/Avis.php?id=49319

serveur

http://monique.pantel.free.fr/Avis.php?id=49319

Avis.php

2

récupération

du fichier

PHP

(15)

3

Concept de la programmation web orientée serveur

client

http://monique.pantel.free.fr/Avis.php?id=49319

serveur

http://monique.pantel.free.fr/Avis.php?id=49319

Avis.php

envoi de la

requête SQL

id=49319

(16)

3

Concept de la programmation web orientée serveur

client

http://monique.pantel.free.fr/Avis.php?id=49319

serveur

http://monique.pantel.free.fr/Avis.php?id=49319

Avis.php

envoi de la

requête SQL

id=49319

SELECT * FROM films

WHERE id=49319

(17)

3

Concept de la programmation web orientée serveur

client

http://monique.pantel.free.fr/Avis.php?id=49319

serveur

http://monique.pantel.free.fr/Avis.php?id=49319

Avis.php

base de

données

id=49319

envoi de la

requête SQL

SELECT * FROM films

WHERE id=49319

(18)

4

Concept de la programmation web orientée serveur

client

http://monique.pantel.free.fr/Avis.php?id=49319

serveur

http://monique.pantel.free.fr/Avis.php?id=49319

Avis.php

base de

données

note, titre, sortie, avis

réception du

résultat de la

requête SQL

(19)

4

Concept de la programmation web orientée serveur

client

http://monique.pantel.free.fr/Avis.php?id=49319

serveur

http://monique.pantel.free.fr/Avis.php?id=49319

Avis.php

base de

données

note, titre, sortie, avis

réception du

résultat de la

requête SQL

(20)

4

Concept de la programmation web orientée serveur

client

http://monique.pantel.free.fr/Avis.php?id=49319

serveur

http://monique.pantel.free.fr/Avis.php?id=49319

Avis.php

base de

données

note, titre, sortie, avis

réception du

résultat de la

requête SQL

(21)

4

Concept de la programmation web orientée serveur

client

http://monique.pantel.free.fr/Avis.php?id=49319

serveur

http://monique.pantel.free.fr/Avis.php?id=49319

Avis.php

base de

données

note, titre, sortie, avis

réception du

résultat de la

requête SQL

(22)

4

Concept de la programmation web orientée serveur

client

http://monique.pantel.free.fr/Avis.php?id=49319

serveur

http://monique.pantel.free.fr/Avis.php?id=49319

Avis.php

base de

données

note, titre, sortie, avis

réception du

résultat de la

requête SQL

(23)

4

Concept de la programmation web orientée serveur

client

http://monique.pantel.free.fr/Avis.php?id=49319

serveur

http://monique.pantel.free.fr/Avis.php?id=49319

Avis.php

base de

données

note, titre, sortie, avis

réception du

résultat de la

requête SQL

(24)

Concept de la programmation web orientée serveur

client

http://monique.pantel.free.fr/Avis.php?id=49319

serveur

http://monique.pantel.free.fr/Avis.php?id=49319

Avis.php

base de

données

5

envoi de

la page

HTML

(25)

Concept de la programmation web orientée serveur

http://monique.pantel.free.fr/Avis.php?id=49319

serveur

base de

données

5

envoi de

la page

HTML

client

(26)

Concept de la programmation web orientée serveur

http://monique.pantel.free.fr/Avis.php?id=49319

serveur

base de

données

5

envoi de

la page

HTML

client

(27)

Concept de la programmation web orientée serveur

http://monique.pantel.free.fr/Avis.php?id=49319

serveur

base de

données

5

envoi de

la page

HTML

client

(28)

+/- 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

(29)

Concept de la programmation web orientée serveur

« client web »

→ navigateur

(Firefox, Chrome, Explorer, Safari, etc.)

(30)

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

(31)

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 HTML

(32)

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 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

(33)

• Concept de la programmation web, orientée serveur

• Syntaxe PHP

(34)

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");

(35)

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");

(36)

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++){

(37)

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

(38)

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); }

(39)

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.

Figure

Updating...