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