php - IRIT

Commentaires

Transcription

php - IRIT
Technologies de
l’Internet
Partie 5b : Génération dynamique de pages HTML
Iulian Ober
[email protected]
Motivation
Accès à un système d'informations via une
interface web
boutique.fr
Exemple:
Liste des produits à
< X€ ?
[ Liste des produits
à < X€ ]
IUT Blagnac
Technologies de l’Internet
© iulian ober, 2007
2
Motivation
Accès à un système d'informations via une
interface web
boutique.fr
Exemple:
GET http://boutique.fr/produits.php?prix_min=10
…
<html>
…
<table>
<tr><td>a</td><td>5€</td>…
<tr><td>b</td><td>3€</td>…
IUT Blagnac
Technologies de l’Internet
© iulian ober, 2007
requête
SQL
a | 5€ | …
b | 3€ | …
serveur
BD
3
Programmation côté serveur
Besoin: écrire des programmes pour
calculer / mettre en forme HTML les
réponses du serveur
à distinguer (!) de la programmation côté
client (JavaScript, etc.) dont l'objectif est
de créer des pages "dynamiques"
IUT Blagnac
Technologies de l’Internet
© iulian ober, 2007
4
Technologies
Très large panorama de
technologies / langages:
CGI : un protocole d'appel d'exécutables quelconques par
un serveur HTTP
Microsoft : ASP(.NET) / SQL Server…
Sun : Java/JSP…
…
PHP
IUT Blagnac
Technologies de l’Internet
© iulian ober, 2007
5
PHP : Introduction
Langage interprété
Intégré
(sous forme de module / plug-in …)
à un serveur HTTP (e.g., Apache)
Independent de plate-forme, OS
(Windows, Linux, Solaris, Mac-OS…), etc.
Interfacé avec divers SGBD (MySQL,
Postgres, …)
IUT Blagnac
Technologies de l’Internet
© iulian ober, 2007
6
Schéma d'exécution
boutique.fr
GET http://boutique.fr/produits.php?prix_min=10
HTTP/1.0 200 OK
…
<!– sortie (stdout) de produits.php -->
…
<h1>pr…
…
serveur
BD
IUT Blagnac
Technologies de l’Internet
© iulian ober, 2007
exécution de
produits.php :
…
print "<h1>pr…
…
$x = $_GET["prix_min"];
mysql_querry(…
…
7
Langage PHP : Principes
programme fichier texte source ".php"
entre balises <?php et ?>
on peut mélanger HTML et PHP:
…
<!-- ici c'est du HTML -->
<h1>Produits</h1>
<?php
// ici, du PHP
…
echo "<td>$prod1</td><td>$prix1</td>"
…
?>
…
mais c'est déconseillé !
IUT Blagnac
Technologies de l’Internet
© iulian ober, 2007
8
Langage PHP : Structure
Syntaxe héritée du langage C:
instructions terminées par ;
l'affectation est une expression (=)
structures de contrôle:
if(expr) { instr;…} else { instr;…}
for($i=0; $i<$n; $i+=2) { intr; …}
while(expr) { instr;…}
switch…case…
IUT Blagnac
Technologies de l’Internet
© iulian ober, 2007
9
Langage PHP : Données
pas de définition de variable, pas de type
notation avec $: $i = $n + 1;
tableaux associatifs:
$t[1] = "toto";
$t["toto"] = 2;
$x = $t[$t[1]];
IUT Blagnac
// ou: $t = array(1=>"toto", "toto" => 2);
Technologies de l’Internet
© iulian ober, 2007
10
Langage PHP : Fonctions
définition:
function html_head($title,$style) {
echo <<<ZZZ
<head>
<title>$title</title>
<meta name="Author" content="Iulian Ober">
<link rel="stylesheet" type="text/css" href="$style">
</head>
ZZZ;
}
utilisation:
<?php
…
html_head("Liste produits","styles.css");
…
?>
IUT Blagnac
Technologies de l’Internet
© iulian ober, 2007
11
Accès aux paramètres GET/POST
par les tableaux associatifs $_GET / $_POST
exemple de requête du navigateur:
GET http://boutique.fr/produits.php?prix_min=10
produits.php:
<?php
// $_GET = array("prix_min" => 10)
…
echo "Le prix passé en paramètre est: $_GET[prix_min]";
…
?>
IUT Blagnac
Technologies de l’Internet
© iulian ober, 2007
12
Formulaires HTML => Requêtes => PHP
saisie.html :
<form action="traitement.php" method="get">
x: <input type="text" name="x" id="x" /><br/>
y: <input type="text" name="y" id="y" /><br/>
z: <input type="text" name="z" id="z" /><br/>
<input type="submit" name="bt" value="envoi" id="envoi" />
</form>
GET traitement.php?x=5&y=4&z=3&bt=envoi HTTP/1.0
IUT Blagnac
Technologies de l’Internet
© iulian ober, 2007
13
Formulaires HTML => Requêtes => PHP
GET traitement.php?x=5&y=4&z=3&bt=envoi HTTP/1.0
traitement.php :
<p> x est : <?php echo $_GET["x"] ?> </p>
<p> y est : <?php echo $_GET["y"] ?> </p>
<p> z est : <?php echo $_GET["z"] ?> </p>
IUT Blagnac
Technologies de l’Internet
© iulian ober, 2007
14
Fin
plus de détail, accès aux BD, etc.
en 2ème année (cours "Intranet")
IUT Blagnac
Technologies de l’Internet
© iulian ober, 2007
15

Documents pareils