langage web: html BIO30 "Programmez votre site web de A à Z" Carl Herrmann Université de la Méditerranée
langage web: html page statique: l'utilisateur n'a pas d'influence sur le contenu ou l'aspect de la page affichée
http://www.monsite.com/index.html client (navigateur web) http://193.256.22.17/index.html DNS = annuaire serveur web http://www.monsite.com/ index.html URL URL html index.html
Principe du PHP client (navigateur web) http://www.monsite.com/accueil.php serveur web http://www.monsite.com/ accueil.php votre nom J. Chirac URL + données index.php
Principe du PHP client (navigateur web) http://www.hello.org/accueil.php serveur web http://www.hello.org accueil.php Salut, Jacques! URL + données index.php html html Le serveur web transforme le fichier PHP en fichier html "à la volée" BIO30 "Programmez votre site web de A à Z" Carl Herrmann Université de la Méditerranée
exemple de fichier php html php
html / php html est un langage de structuration comment afficher les données php est un langage de programmation variables instructions (echo if ) c'est le serveur web qui interprète (= transforme) le programme php en html
PHP + MySQL client (navigateur web) serveur web http://www.amazon.com/ acheter.php URL + données acheter.php Pentax K-r html base de données (MySQL) html BIO30 "Programmez votre site web de A à Z" Carl Herrmann Université de la Méditerranée
LAMP/WAMP/XAMP A pache : serveur web M ysql : base de données P HP
sur votre PC client (navigateur web) serveur web http://www.amazon.com/ acheter.php acheter.php
Structure d'un programme PHP BIO30 "Programmez votre site web de A à Z" Carl Herrmann Université de la Méditerranée
html commentaire indentation bloc
Bloc PHP <?php...?> Commentaires <?php // voilà un // commentaire?> Bloc d'instructions <?php foreach ($array as $k) { echo $k."<br />"; } toutes les lignes d'instructions en PHP se terminent par un ; sauf celles qui ouvrent un bloc if ($note >= 10) { echo "Validé!<br />"; }?>
Bloc d'instructions <?php foreach ($notes as $note) { echo "Votre note:".$note."<br />"; if ($note >= 10) { echo "Matière validée!<br />"; } else { } } Conseil de présentation! echo "Matière à repasser...<br />";?> les instructions dans un bloc sont indentées par rapport aux instructions au niveau supérieur.
Formulaires et variables BIO30 "Programmez votre site web de A à Z" Carl Herrmann Université de la Méditerranée
boîte de texte bouton radio menu déroulant choix multiples bouton validation
Principe chaque élément d'un formulaire est identifié par un nom <input type=text name=nom> </input> le nom peut être quelconque : pas d'espaces, pas de caractères accentués! une fois le formulaire soumis par le client, le serveur va stocker le contenu du champs du formulaire dans une variable, dont le nom sera celui de l'élément J. Chirac <input type=text name=nom> J. Chirac $_POST['nom'] client serveur
Formulaire les boîtes texte Votre nom: Bond script.html <form method="post" action="script.php"> Bond $_POST['nom']... Votre nom: <input type=text name="nom"> script.php Bonjour, Bond <?php echo "Bonjour,".$_POST['nom'];?>
Formulaire les boîtes texte Votre nom: Bond script.html <form method="post" action="form.php"> Bond $_POST['nom']... Votre nom: <input type=text name="nom"> script.php ERREUR! <?php echo "Bonjour,".$_POST['nom'];?>
Formulaire les boîtes texte Votre nom: Bond script.html <form method="get" action="script.php"> Bond $_GET['nom']... Votre nom: <input type=text name="nom"> script.php Bonjour, Bond <?php echo "Bonjour,".$_GET['nom'];?>
Formulaire les boutons radio Vous êtes script.html f <form method="post" action="script.php"> Vous êtes: <input type=radio name="sexe" value="f"> une femme <input type=radio name="sexe" value="h"> un homme script.php $_POST['sexe'] <?php Vous êtes: f echo "Vous êtes".$_post['sexe'];?>
Formulaire les boutons radio on peut mettre n'importe quelle chaîne de caractères pour value! script.html <form method="post" action="script.php"> une femme $_POST['sexe'] <input type=radio name="sexe" value="une femme"> une femme <input type=radio name="sexe" value="un homme"> un homme script.php Vous êtes: une femme <?php echo "Vous êtes".$_post['sexe'];?>
Formulaire les menus déroulants script.html <form method="post" action="script.php"> Continent <select name="cont"> <option value="asie"> Asie <option value="europe"> Europe <option value="afrique"> Afrique <option value="amérique"> Amérique <option value="océanie"> Océanie </select> script.php asie $_POST['cont'] <?php Vous êtes originaire de: asie echo "Vous êtes originaire de<br />"; echo $_POST['cont'];?>
Résumé éléments de formulaires BIO30 "Programmez votre site web de A à Z" Carl Herrmann Université de la Méditerranée balise d'ouverture de formulaire: <form method="post" action="script.php"> method détermine le nom de la variable $_POST['xxx'] ou $_GET['xxx'] balises d'éléments de formulaire <input type=text name='nom'> name détermine le nom de la variable $_POST['nom'] ou $_GET['nom'] boîte texte: la variable contient le texte entré par l'utilisateur bouton radio, menu déroulant: la variable contient la valeur indiquée par value
Variables les variables sont des cases dans la mémoire de l'ordinateur qui permettent de stocker des informations ("boîte") les variables ont un nom (commence par $, p. example $votre_nom) ont un contenu elles peuvent contenir des chaînes de caractère: "James Bond" (toujours entre guillemets) des chiffres: 2, 4.9, -12.1 certaines sont définies par l'utilisateur, d'autres sont créées et remplies automatiquement par le serveur ($_POST, $_GET) attention: pas de caractères accentués ni espaces dans les noms de variables!
$matiere BIO30 "Programmez votre site web de A à Z" Carl Herrmann Université de la Méditerranée Opération sur les variables créer une variable et la remplir (=lui affecter une valeur) afficher le contenu d'une variable: $note = 14; $matiere = "biocell"; echo "votre matière". $matiere."<br />"; 14 biocell Votre matière:biocell $note
Opération sur les variables on peut affecter à une variable le contenu d'une autre variable $note = 14; $note = $note_td; 14 $note $note_td $note après cette opération, les 2 variables contiennent la même chose!
Attention!! une variable ne peut contenir qu'une seule valeur à la fois toute nouvelle affectation écrase la valeur précédente $nom = "Bond"; echo $nom."<br />"; $nom = "James"; echo $nom."<br />"; Bond James
Formulaire les boutons à choix multiples Problème: on ne peut pas mettre plusieurs objets dans une même variable! "dîner" a écrasé "ptdej" cript.html form method="post" action="script.php"> otre commande <br /> input type="checkbox" name="choix" value="ptdej">petit-déjeuner<br /> $_POST['choix'] input type="checkbox" name="choix" value="dej">déjeuner<br /> input type="checkbox" name="choix" value="dîner">dîner<br /> /select> script.php <?php Vous avez commandé dîner echo "Vous avez commandé<br />"; echo $_POST['choix']; et mon petit-déj???>
Tableaux variable simple $nom tableau $choix[0] $choix[1] $choix[2] $choix[3] $choix un tableau porte un nom ($choix) et contient plusieurs cases ($choix[0],$choix[1],...)
Opérations sur les tableaux créer et remplir un tableau $choix = array(); $choix[0] = "dormir"; $choix[1] = "manger"; afficher le contenu d'un élément du tableau echo $choix[1]; manger ou afficher tous les éléments $choix = array("dormir","manger") for ($choix as $k) { dormir manger } echo $k."<br />"; dormir manger $choix[0] $choix[1]
Tableaux associatifs au lieu de numéroter les éléments d'un tableau (0,1,2,...), il est parfois plus explicite de leur donner un nom exemple: tableau classique contenant les notes d'un étudiant $note James 8 14.6 16.1 $note[0] $note[1] $note[2] $note[3] Code: $note = array('james',8,14.6,16.1); $note[1] BIO30 "Programmez votre site web de A à Z" Carl Herrmann Université de la Méditerranée
Tableaux associatifs au lieu de numéroter les éléments d'un tableau (0,1,2,...), il est parfois plus explicite de leur donner un nom exemple: tableau associatif contenant les notes d'un étudiant $note James 8 14.6 16.1 $note['nom'] $note['bioch'] $note['biocell'] $note['bioinfo'] Code: clé valeur $note = array('nom' => 'James','bioch' => 8,'biocell' => 14.6, 'bioinfo' => 16.1); $note[1] BIO30 "Programmez votre site web de A à Z" Carl Herrmann Université de la Méditerranée
Créer un tableau associatif Méthode 1: $note = array('nom' => 'James','bioch' => 8,'biocell' => 14.6, 'bioinfo' => 16.1); Méthode 2: $note['nom'] = 'James'; $note['bioch'] = 8; $note['biocell'] = 14.6; $note['bioinfo'] = 16.1; La seconde méthode permet de rajouter un élément au tableau: $note['anglais'] = 13;
$_POST et $_GET sont des tableaux associatifs! script.html Nom: Jane vous habitez: vous êtes: <form method="post" action="script.php"> Nom <input type=text name="nom"> Vous habitez<br /> Continent <select name="cont"> <option value="asie"> Asie... </select> Vous êtes: <input type=radio name="sexe" value="f"> une femme <input type=radio name="sexe" value="h"> un homme $_POST Jane asie f $_POST['nom'] $_POST['cont'] $_POST['sexe'] $note[1] BIO30 "Programmez votre site web de A à Z" Carl Herrmann Université de la Méditerranée
Retour sur les boutons à choix multiples $_POST['choix'] n'est pas une variable simple, mais un tableau qui contient autant d'éléments que de choix cochés ptdej dîner script.html <form method="post" action="script.php"> Votre commande <br /> <input type="checkbox" name="choix[]" value="ptdej">... [0] [1] $_POST['choix'] <input type="checkbox" name="choix[]" value="dej">... <input type="checkbox" name="choix[]" value="dîner">... </select> les [] indiquent que $_POST['choix'] sera un tableau Vous avez commandé ptdej dîner script.php <?php echo "Vous avez commandé<br />"; foreach ($_POST['choix]' as $c) { echo $c."<br />"; }?>
les expressions conditionnelles si telle condition est remplie......alors fais ceci! sinon fais cela...
si ( ) alors... si condition vraie (instructions avant) if (condition) { (bloc d'instructions à effectuer si la condition est VRAIE) si condition fauss } (instructions après) exemples de conditions: if ($note >= 10) if ($nom == "Bond")... if ($nom1 == $nom2)...
si ( ) alors...sinon (...) (instructions avant) if (condition) { si condition fau si condition vraie (bloc d'instructions à effectuer si la condition est VRAIE) } else { (bloc d'instructions à effectuer si la condition est FAUSSE) } (instructions après)
si ( ) alors...sinon si ( ) sinon... si condition1 vraie (instructions avant) if (condition1) { (bloc d'instructions à effectuer si la condition1 est VRAIE) } elsif (condition2) { (bloc d'instructions à effectuer si la condition2 est VRAIE) } else { (instructions si condition1&2 sont FAUSSES) } (instructions après) si condition1 fausse et condition2 vraie si condition1 fausse et condition2 fausse
Les fonctions chaîne de caractères nombre(s) rien du tout nombre(s) chaîne de caractères arguments résultat
strtoupper blabla BLABLA arguments résultat
Principe d'une fonction dans un programme, une fonction permet d'effectuer une opération une fonction prend généralement des arguments, et renvoie un résultat exemples argument = chaîne de caractère; résultat = chaîne de crtatères strtoupper('blablabla') BLABLABLA ucfirst('blablabla') Blablabla (voir http://php.net/manual/fr/book.strings.php) argument: aucun, résultat: nombre entier aléatoire rand() 263554 (voir http://php.net/manual/fr/ref.math.php)
différence entre l'url file:// et http:// ou: pourquoi il y a un problème lorsqu'on fait un double-clic pour ouvrir un fichier html?
client (navigateur web) serveur web http://www.serveur.com/index.html html public_html/ html index.html
client (navigateur web) serveur web file://index.html html public_html/ index.html
client (navigateur web) serveur web http://www.serveur.com/script.php html public_html/ php index.php
client (navigateur web) serveur web file://script.php? php public_html/ index.php
Conclusion un navigateur web ne comprend que l'html les fichiers html et php doivent "être servis" par le serveur web (d'où son nom) donc: http://localhost/script.html et non file://script.html