LIF4-Cours-7-PHP
8 pages
Catalan
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

LIF4-Cours-7-PHP

-

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
8 pages
Catalan

Description

LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHPPages WebPages Web statiquesLIF4 - Initiation aux Bases de donn´ees : Principe de fonctionnement :L’utilisateur demande l’acc`es `a une page Web depuis sonPHPnavigateur.Adresse tap´ee, clic sur un lien, utilisation d’un signet, etc ...E.CoqueryLe navigateur envoie une demande `a un serveur Web.emmanuel.coquery@liris.cnrs.fr Le serveur Web lit le fichier demand´e sur le disque dur.Le serveur Web envoie le contenu du fichier au navigateur.http://liris.cnrs.fr/!ecoqueryLe navigateur a!che le de la page.Pour l’a!chage, il peut ´egalement demander le contenud’autres fichier au serveur (ex : images).LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHPPages Web Pages WebIllustration Pages Web dynamiquesPoste client ServeurPages statiques :Serveur Web Pour changer le contenu, il faut ´editer le fichier.Navigateur (1): demande "index.html"Web(4): contenu de index.html Id´ee : g´en´erer le contenu de la page au moment ou` elle est(3): contenu de index.html (2): accès à "index.html"demand´ee, en fonction :du contenu d’une base de donn´ees;Disquede param`etres fournis avec la demande (ex : formulaires).LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHPPages Web Pages WebPages Web Dynamiques : fonctionnement IllustrationL’utilisateur demande l’acc`es `a une page Web depuis sonnavigateur ...

Sujets

Informations

Publié par
Nombre de lectures 95
Langue Catalan

Exrait

LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHP
Pages Web
Pages Web statiques
LIF4 - Initiation aux Bases de donn´ees : Principe de fonctionnement :
L’utilisateur demande l’acc`es `a une page Web depuis sonPHP
navigateur.
Adresse tap´ee, clic sur un lien, utilisation d’un signet, etc ...
E.Coquery
Le navigateur envoie une demande `a un serveur Web.
emmanuel.coquery@liris.cnrs.fr Le serveur Web lit le fichier demand´e sur le disque dur.
Le serveur Web envoie le contenu du fichier au navigateur.http://liris.cnrs.fr/!ecoquery
Le navigateur a!che le de la page.
Pour l’a!chage, il peut ´egalement demander le contenu
d’autres fichier au serveur (ex : images).
LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHP
Pages Web Pages Web
Illustration Pages Web dynamiques
Poste client Serveur
Pages statiques :
Serveur Web Pour changer le contenu, il faut ´editer le fichier.
Navigateur (1): demande "index.html"
Web
(4): contenu de index.html Id´ee : g´en´erer le contenu de la page au moment ou` elle est
(3): contenu de index.html (2): accès à "index.html"
demand´ee, en fonction :
du contenu d’une base de donn´ees;
Disque
de param`etres fournis avec la demande (ex : formulaires).
LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHP
Pages Web Pages Web
Pages Web Dynamiques : fonctionnement Illustration
L’utilisateur demande l’acc`es `a une page Web depuis son
navigateur.
(4): génération du contenu HTML (4.1): requêtes et résultats
Le navigateur transmet envoie une demande au serveur web
Poste client Serveur Serveur
comprenant :
le nom de la page, qui correspond en fait `a un programme; Serveur Web
´eventuellement un ensemble de param`etres. Navigateur SGBD
Web
(5): contenu HTML
Module
Le serveur web va chercher sur le disque le code source d’un PHP
programme.
(1): demande "index.php"Le serveur web ex´ecute ce programme qui peut :
+ paramètres
utiliser les param`etres transmis avec la demande du navigateur;
Disquealler chercher des donn´ees dans une base de donn´ees ou sur le
disque.
(2): accès à "index.php" (3): code source de index.phpDurant l’ex´ecution, le programme g´en`ere un contenu HTML.
Le contenu HTML est envoy´e au navigateur.
Le navigateur a!che le r´esultat.LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHP
Pages Web Pages Web
Quelques langages Cr´eation de pages dynamiques
Dans notre cadre, pour cr´eer une page dynamique, il faut :
Langages utilis´es :
Cr´eer un programme PHP correspondant `a cette page.
Pour le contenu des pages : Plus pr´ecis´ement, ´ecrire le code source de ce programme.
Donn´ees `a a!cher Le but de ce programme est de g´en´erer le contenu d’une page
Mise en forme Web, i.e. du HTML.
" HTML (+ CSS, JavaScript, ...) Cette g´en´eration se fait via des print, un peu comme pour
´ecrire dans un fichier.
Pour g´en´erer le contenu des page :
Ce programme peut ´eventuellement utiliser des requˆetes SQL.
Aller chercher les donn´ees
Ces requˆetes sont pass´ees sous forme de chaˆınes de caract`eres
Fabriquer un document (en g´en´eral un document HTML)
`a des fonctions sp´eciales qui vont les transmettre au SGBD et
" PHP (ou bien Perl, Python, Java, ...) r´ecup´erer les r´esultats.
Pour interroger la base : Remarque : Bien que le but principal d’un programme PHP soit de
Requˆetes `a e"ectuer sur la base. produire un page HTML, cela reste un p qui peut par
cons´equent avoir d’autres e"ets :" SQL
Ex : ins´erer des valeurs dans une base de donn´ees
LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHP
HTML HTML
Structure de base Structure de base
HTML : Principe Structure d’une page HTML
Fichier texte contenant des informations de structuration.
Une page HTML a la structure suivante :
La structure est indiqu´ee `a l’aide de balises :
Le nom de la balise indique le type de mise en forme `a
appliquer.
On met une balise ouvrante au d´ebut du morceau de texte <html>
concern´e :
<head>
<nom balise>d´ebut du texte
<title>titre de la page</title>On met une balise fermante `a la fin du texte concern´e :
</head>fin du texte</nom balise> (! au /)
Une balise ouvrante peut contenir des attributs de la forme <body>
nom="valeur" Partie affich´ee dans le navigateur.
<nom balise nom1="val1" nom2="val2" ...>texte </body>
Les attributs permettent de pr´eciser des informations
</html>concernant la mise en forme.
Les balises peuvent ˆetre imbriqu´ees.
C’est le navigateur qui interpr`ete les balises pour faire Les commentaires (non a!ch´es) sont d´elimit´es par <!-- et -->.
l’a!chage.
LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHP
HTML HTML
Structure de base Structure de base
Mise en forme : paragraphes et titres Exemple de document HTML
<html>
<head>
<p>texte</p> <title>La page de Toto</title>
texte forme un paragraphe (saut de ligne avant et apr`es). </head>
<body><h1>texte</h1>
<h1>Toto</h1>
texte est un titre important (paragraphe avec un a!chage
<h2>L’histoire de Toto</h2>
plus gros, en gras). <p>Il ´etait une
<h2>texte</h2> fois ...</p>
<p>Chemintexte est un titre moins important (a!chage un peu moins
faisant ...gros).
</p>
... <h2>Les amis de Toto</h2>
<h6>texte</h6> <p>Ouioui</p>
<p>Casimir</p>texte est un petit titre.
</body>
</html>LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHP
HTML HTML
Structure de base Structure de base
Mise en forme : styles simples Mise en forme : listes
<i>texte</i> ou <em>texte</em> : <ul>
mettre texte en italique. <li>entr´ee 1</li>ee 2</li><b>texte</b> ou <strong>texte</strong> :
<li>entr´ee 3</li>
mettre texte en gras.
<li>...</li>
<u>texte</u> : </ul>
souligner texte. <ol>
<li>entr´ee 1</li><big>texte</big> :
<li>entr´ee 2</li>
mettre texte en plus grand.ee 3</li>
<small>texte</small> : <li>...</li>
</ol>mettre texte en plus petit.
LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHP
HTML HTML
Structure de base Structure de base
Mise en forme : tableaux Mise en forme : tableaux - 2
<table> <table border="2">
<tr> <tr>
<td>case 1</td> <td>case 1</td> 2</td> 2</td>
</tr> </tr>
<tr> <tr>
<td>case 3</td> <td>case 3</td> 4</td> 4</td>
</tr> </tr>
</table> </table>
LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHP
HTML HTML
Structure de base Structure de base
Liens hypertextes Images
<a href="adresse web">texte</a>
Inclure une image :texte devient un lien cliquable.
Lorsque l’on clique sur texte, on va `a l’adresse (URL)
adresse web.
<img src="adresse web image">
<a href="http://www.w3.org/TR/html401/">Documentation
HTML</a>
Le texte Documentation HTML est un lien vers la page web dont Pas de balise fermante pour <img>
l’adresse est http://www.w3.org/TR/html401/
<a href="truc.html">Des trucs</a>
adresse web image : adresse web ou` chercher l’image.
Le texte Des trucs est un lien vers la page web truc.html situ´ee
au mˆeme endroit que la page courante.LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHP
HTML HTML
Formulaires Formulaires
Formulaires : principe Formulaires : balise principale
<form action="adresse web" method="POST" name="nom">
contenu formulaireObjectifs :
</form>
acc´eder `a une page (dynamique) en sp´ecifiant des param`etres;
contenu formulaire : du texte contenant en particulier despermettre `a l’utilisateur de saisir ces param`etres.
balises repr´esentant les di"´erents composants de saisie;Comment :
en utilisant des champs textuels, des listes d´eroulantes, des adresse web : l’adresse de la page web dynamique `a laquelle
cases `a cocher; on souhaite acc´eder via ce formulaire;
`a chacun de des composants de saisie correspond un
POST : la m´ethode de transmission des param`etres (on peut
param`etre.
´egalement mettre GET);
nom : le nom du formulaire (optionnel).
LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHP
HTML HTML
Formulaires Formulaires
Formulaires : saisie de texte Formulaires : saisie d’un grand texte
<input type="text" name="nom">
<textarea name="nom" rows="h" cols="l">
Cr´e´ee un champ de saisie pour une ligne de texte.
contenu pr´e saisi
nom est le nom du param`etre correspondant `a ce composant. </textarea>
On peut ajouter les attributs suivants : Cr´e´ee un champ de saisie pour du texte sur plusieurs lignes.
size="un nombre" : la taille du champ en caract`eres;
nom est le nom du param`etre correspondant `a ce composant.value="une valeur" : texte pr´e-saisi
h est la hauteur du composant en nombre de lignes.utile pour modifier des informations.
l est la largeur du composant en nombre de caract`eres.On peut remplacer type="text" par type="password" si on
veut a!cher des * au lieu des lettres lors de la saisie. le contenu pr´e saisi peut ˆetre vide et ne contient de balise.
Pas de balise fermante.
LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHP
HTML HTML
Formulaires Formulaires
Formulaires : param`etres cach´es Formulaires : liste d´eroulante
<select name="nom">
<option value="val1">Texte 1</option> value="val2">Texte 2</option>
...
<input type="hidden" name="nom" value="val"> </select>
Permet de donner la valeur val au param`etre nom. Cr´e´ee une liste d´eroulante ayant comme s´election possible
Ce composant n’est pas a!ch´e. Texte 1, Texte 2,...
Utile pour sp´ecifier un identifiant dans un formulaire de La valeur du param`etre nom est donn´ee par la s´election choisie
modification des informations de la base. par l’utilisateur :
val1 pour Texte 1Pas de balise fermante
val2 pour 2
...
L’attribut value est optionnel.
Par d´efaut c’est le texte dans la balise <option></option>
On peut ajouter selected="true" dans une des balises
options pour pr´e s´electionner cette option.LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHP
HTML HTML
Formulaires Formulaires
Formulaires : boutons de soumission HTML : m´ethodes de transmission de param`etres
<input type="submit" value="texte">
Deux m´ethodes de transmission des param`etres
Cr´e´ee un bouton d´eclenchant le chargement de la page de GET
destination (attribut action de la balise <form>). Les param`etres sont encod´es avec l’adresse de la page :
texte est un texte qui sera a!ch´e sur le bouton. `a la fin de l’adresse, on ajoute le caract`ere?
puis pour chaque param`etre on ajoute nom=val
les param`etres sont s´epar´es par le caract`ere &
Utile pour sp´ecifier des param`etres dans un lien hypertexte.<input type="reset" value="texte">
POST
Cr´e´ee un bouton d´eclenchant la r´einitialisation du formulaire,
Les param`etres sont encod´es s´epar´ement de l’adresse web.en utilisant les valeurs pr´e saisies lorsqu’elles existent.
Plus pratique pour les formulaires.
texte est un texte qui sera a!ch´e sur le bouton.
LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHP
PHP PHP
G´en´eralit´es G´en´eralit´es
PHP PHP : deux types de ”zones”
D´elimit´ees par<?et?>
Un fichier PHP est le code source d’un programme.
Zones entre<?et?> : code PHP `a ex´ecuter (similaire `a du
Ce programme a pour but de g´en´erer une page HTML. code C).
PHP est un langage imp´eratif proche du C. Zones `a l’ext´erieur de<?et?> : texte et balises qui seront
recopi´es directement dans le contenu HTML g´en´er´e.
LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHP
PHP PHP
G´en´eralit´es G´en´eralit´es
PHP : variables PHP : g´en´eration du contenu
Le nom d’une variable commence par un $ Deux m´ethodes :
$i, $utilisateur, $id, ... Mettre du texte `a l’ext´erieur de<?et?>.
A"ectation comme en C : Utiliser l’instruction print :
$i = valeur ; print valeur ;
Les variables ne sont pas explicitement d´eclar´ees comme en C. valeur est ´evalu´e puis transform´e en texte.
Ce texte est ajout´e `a la suite du contenu HTML d´ej`a g´en´er´e.Une variable existe d`es que l’on a fait une a"ectation dessus.
On peut utiliser echo `a la place de print.
Une variable peut contenir un nombre, une chaˆıne de
On peut consid´erer que le texte mis `a l’ext´erieur de<?et?> estcaract`eres, un bool´een (en r´ealit´e un entier comme en C) ou
pass´e en argument `a un print.un tableau.LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHP
PHP PHP
G´en´eralit´es G´en´eralit´es
PHP : chaˆınes de caract`eres PHP : op´erateurs courants
D´elimit´ees par des guillemets simples (’cha^ıne’)ou doubles Arithm´etiques :
("cha^ıne").
+ (addition), - (soustraction), * (multipli´e), / (divis´e),
Si une variable apparaˆıt dans une chaˆıne avec guillemets % (modulo), ++ (incr´ement), -- (d´ecr´ement).
doubles, elle est remplac´ee par sa valeur (convertie en chaˆıne
De comparaison :de caract`eres).
print "<p>Mon nom est $nom</p>"; == (´egalit´e), < (inf´erieur strict), <= (inf´erieur large), >,
>=,!= (di"´erence)Les variables apparaissant dans des guillemets simples ne sont
pas remplac´ees. Logiques :
Un . entre deux chaˆınes les concat`ene. and, && (et), or, || (ou), xor (ou exclusif),! (non)
print "<p>Mon nom".$nom."</p>";
LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHP
PHP PHP
G´en´eralit´es G´en´eralit´es
PHP : tableaux PHP : tableaux associatifs
Syntaxe similaire au C :
$mon tableau[2] = "coucou";
Tableau associant une valeur `a une chaˆıne de caract`eres.Range "coucou" dans la case num´ero 2.
print $mon tableau[2]; Syntaxe :
G´en`ere le texte coucou. $personne[’Prenom’] = ’Toto’;
$mon tableau[] = valeur; Associe la valeur ’Toto’ `a la chaˆıne ’Prenom’.
print;Ajoute une case au tableau $mon tableau et y range valeur.
G´en`ere le texte Toto.La premi`ere case d’un tableau porte le num´ero 0.
Pour cr´eer un tableau vide, on peut utiliser :
$mon tableau = array();
LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHP
PHP PHP
G´en´eralit´es G´en´eralit´es
PHP : contrˆoles PHP : fonctions
D´efinition de fonction :
Structures de contrˆoles similaires `a celles de C :
if (...) { ...} else { ...}
for(...;...;...) { ...} function nom fonction($param1, $param2, ...) {
while (...) { ...} ...
}
Inclusion d’un autre fichier PHP :
Pour renvoyer un r´esultat dans une fonction :
include(”nom fichier.php”);
return valeur;LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHP
PHP PHP
Gestion des formulaires Acc`es `a MySQL
PHP : r´ecup´eration des param`etres Acc`es `a une base de donn´ee MySQL
Principe :
Cinq ´etapes :
L’interpr´eteur PHP initialise un tableau associatif qui associe
1 Connexion au SGBD.`a chaque nom de param`etre sa valeur.
2 S´election d’une base.Le nom du tableau initialis´e d´epend de la m´ethode :
3 Envoi d’une requˆete.$ POST pour la m´ethode POST
4 R´ecup´eration et utilisation du r´esultat.$ GET pour la m´ethode GET
5 Fermeture de la connexion.
Exemple : a!cher la valeur du param`etre nom, s’il est transmis par
la m´ethode POST. On peut it´erer les ´etapes 3 et 4 autant de fois que l’on veut avant
de fermer la connexion `a l’´etape 5.
print $ POST[’nom’];
LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHP
PHP PHP
Acc`es `a MySQL Acc`es `a MySQL
Connexion Envoi de la requˆete
Connexion au SGBD : $requete = ’une requete SQL’;
$resultat = mysql query($requete,$connect)$user = ’toto’;
or die(’Erreur durant l’ex´ecution de la requ^ete’);$passwd = ’mdptoto’;
$machine = ’localhost’; machine ou` tourne PHP
Exemple :$connect = mysql connect($machine,$user,$passwd)
or die(’Echec de connexion au SGBD’);
$salaire max = 20000;
Choix de la base : $requete = "SELECT nom FROM employe "
." WHERE salaire <= $salaire max";$bd = ’entreprise’;
$resultat = mysql query($requete,$connect)mysql select db($bd,$connect)
or die(’Erreur durant l’ex´ecution de la requ^ete’);
or die(’Echec lors de la selection de la base’);
Fermeture (apr`es les requˆetes) : Durant la phase de d´eveloppement, il peut ˆetre utile d’a!cher
$requete avant son envoi au SGBD.mysql close($connect);
LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHP
PHP PHP
Acc`es `a MySQL Acc`es `a MySQL
Exploitation du r´esultat d’une requˆete Exemple
Code type pour parcourir le r´esultat :
$salaire max = 20000;
$requete = "SELECT nom,salaire FROM employe "while ($nuplet = mysql fetch assoc($resultat)) {
." WHERE salaire <= $salaire max";...
$resultat = mysql query($requete,$connect)}
or die(’Erreur durant l’ex´ecution de la requ^ete’);
print "<h3>Employ´es gagnant moins de "
La boucle while permet de parcourir les n-uplets qui forment
."$salaire max euros par an</h3>";
le r´esultat (un n-uplet par tour de boucle).
while ($nuplet = mysql fetch assoc($resultat)) {
$nuplet est un tableau associatif qui associe `a chaque $nom = $nuplet[’nom’];
attribut du r´esultat sa valeur pour le n-uplet courant. $sal = $nuplet[’salaire’];
print "<p>$nom gagne $salaire euros par ans.</p>";
}Si la requˆete est une mise `a jour, il est inutile de parcourir le
r´esultat.LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHP
PHP PHP
Sessions Sessions
Sessions : pourquoi? Sessions
Une session peut ˆetre vue comme un ensemble d’informationsIl peut ˆetre utile de conserver des informations d’une page sur
concernant un utilisateur d’un site.l’autre. Par exemple pour :
par utilisateur, on entend un navigateur sur une machinese souvenir du login de l’utilisateur
les informations sont conserv´ees entre deux pagesse des r´ef´erences indiquant `a quoi l’utilisateur
s’int´eresse une page PHP peut ajouter ou modifier des informations
se souvenir des derni`eres pages vist´ees par l’utilisateur
etc En PHP, la session est vue comme une variable sp´eciale appel´ee
Jusqu’ici, un seul moyen : utiliser des param`etres et penser `a les $ SESSION :
remettre `a chaque lien et dans chaque formulaire c’est un tableau associatif
" Programmation fastidieuse et source de probl`emes. sa valeur est conserv´ee d’une page sur l’autre
LIF4 - Initiation aux Bases de donn´ees : PHP LIF4 - Initiation aux Bases de donn´ees : PHP
PHP PHP
Sessions Sessions
Utilisation des sessions en PHP D´econnexion
Une page PHP utilisant une session doit obligatoirement,
Lorque l’utilisateur se d´econnecte, il est important de d´etruireavant mˆeme d’a!cher quoi que ce soit, commencer par
la sessionl’instruction :
par exemple pour ´eviter qu’une seconde personne utilisant le
session start(); mˆeme ordinateur ne se fasse passer pour la premi`ere personne
pour d´etruire une session :Cette instruction cr´ee la variable $ SESSION et la remplit avec
les valeurs qu’elle avait dans la page PHP pr´ec´edente. $ SESSION = array();
La variable $ SESSION se manipule ensuite comme un tableau session write close();
associatif classique.
LIF4 - Initiation aux Bases de donn´ees : PHP
PHP
R´ef´erences
R´ef´erences
HTML :
http://fr.selfhtml.org/navigation/html.htm
http://cyberzoide.developpez.com/html/
PHP :
http://www.php.net/manual/fr/
http://www.phpfrance.com
http://www.developpez.com/php/
Le site web du cours :
http://www710.univ-lyon1.fr/~ecoquery/lif4/