Upload
said-radhouani-phd
View
825
Download
0
Embed Size (px)
DESCRIPTION
Programmation, développement Web
Citation preview
Introduction à PHP
Saïd RadhouaniUniversité de Genèveavril 2008
2
Qu’est-ce que PHP
Client
Navigateur
(Mozilla)clic
Serveur
Serveur web
(Apache)
PHP
requête HTTP
réponse
3
PHP ou HTML ?
HTTP
Internet
Serveur w
eb (Apache)
Nav
igat
eur
web
(M
ozil
la)
4
PHP ou HTML ? (2)
Code PHP : « côté serveur »
Navigateur client : HTML
Conséquence : le code source PHP est protégé
Bases du langage
6
Premier exemple
Le fichier essai.php contient :
Le navigateur recevra la page HTML :
<html><body>
<?php
echo "bonjour ";echo "salut ";echo 1+2*3;
?>
<p> ci-dessus du php </p>
</body></html>
<html><body>
bonjour salut 7
<p> ci-dessus du php </p>
</body></html>
Tout le code PHP contenu entre les balises <?php et ?> est exécuté ligne à ligne. Les instructions se terminent par ;Ce qui se trouve hors des balises <?php et ?> est envoyé tel quel.
Balises<?php code php ici ?>
Instructionsex: echo "du texte";
7
Variables
Les variables commencent toutes par un $
<html><body>
<?php
// mettons 10 dans $variable$variable = 10;// affichons $variableecho $variable;
echo "<p>";
echo 10 + 5.2;
?>
</body></html>
<html><body>
10<p>15.2
</body></html>
8
Boucles
Comme dans tous les autres langages
<html><body>
<?php
// l'intérêt du $for ($i=0; $i<4; $i++) { echo " Number $i <br />\n";}
?>
</body></html>
<html><body>
Number 0 <br /> Number 1 <br /> Number 2 <br /> Number 3 <br />
</body></html>
Number 0 Number 1Number 2 Number 3
Fichier .php présent sur leserveur
Fichier tel qu’il estReçu par le navigateur
Rendu
9
Principes de base
Concaténer des chaînes de caractères => on utilise le point
<?php$prenom = "Bill";$nom = "Gates";$complet = $prenom." ".$nom;
echo $complet; // affiche Bill Gates
echo $prenom." ".$nom; // idem?>
10
Principes de base
Pour afficher la date :
<html><body>
<?phpecho date("d/m/Y");echo "<br />\n";echo "<b>".date("H:m:s")."</b>";echo "<br />\n";?>
</body></html>
<html><body>
26/02/2007<br /><b>13:02:56</b><br/>
</body></html>
15/04/200817:02:56
Fichier .php présent sur leserveur
Fichier tel qu’il estReçu par le navigateur
Rendu
11
Deuxième exemple
<html><body><?php
// le mois de l'année:$month = date("m");if ( $month == "07" || $month == "08" ) { echo "Bonnes vacances";} else { $restant = 7 - $month; echo "C'est les vacances dans <i>$restant</i> mois !";}?></body></html>
<html><body>
C'est les vacancesdans <i>3</i> mois !
</body></html>
C'est les vacances dans 3 mois !
Fichier .php présent sur leserveur
Fichier tel qu’il estReçu par le navigateur
Rendu
Tableaux, fonctions
13
Tableaux
Tableaux classiques (indicés par des entiers)0 ciao
1 coucou
2 salut
3 hello$bonjour = array("ciao", "coucou", "salut", "hello" );
echo $bonjour[2]; // affiche salut
$rien = array();
Tableau à zéro élément :
Tableau initialisé avec 4 éléments :
On accède aux différents éléments comme suit :
On peut modifier le contenu :$bonjour[2] = "ciocio";echo $bonjour[2]; // affiche ciocio
On récupère sa taille avec count()
echo count( $bonjour ) // affiche 4
14
Tableaux (suite)
Tentons :
$bonjour["informatique"] = "abc";
$bonjour[10000] = "xyz";
On obtient tout simplement le tableau suivant :
On accède à ses éléments comme avant :
echo $bonjour["informatique"]; // affiche "abc"
On récupère toujourssa taille avec count()
echo count($bonjour); // affiche 6
0 ciao
1 coucou
2 ciocio
3 hello
informatique abc
10000 xyz
15
La fonction foreach()
Fonctionne comme une boucle for, mais parcourt tous les éléments d'un tableau
<html><body><?php$bureau = array("youni","jb","miky","andi");foreach($bureau as $surnom) { echo "$surnom est au <i>bureau</i> de FRED<br />\n";}?>
</body></html>
youni est au bureau de FREDjb est au bureau de FREDmiky est au bureau de FREDandi est au bureau de FRED
<html><body>youni est au <i>bureau</i> de FRED<br />jb est au <i>bureau</i> de FRED<br />miky est au <i>bureau</i> de FRED<br />andi est au <i>bureau</i> de FRED<br /></body></html>
16
Les fonctions
Définir une fonction
function maxi( $x, $y ) { if ( $x > $y ) { return $x; } else { return $y; }}
Mot-clef functionSyntaxe habituelle pour les arguments
echo maxi( 3, 7 ); // affiche 7
17
Formulaires
On utilise les formulaires HTML balise <form>
On récupère les données envoyées grâce aux variables globales
$_GET et $_POST
18
Exemple de formulaire
Code HTML classique :
<form action="traitement.php" method="get">
<p>
Âge: <input type="text" name="age" /> <br />
École: <input type="text" name="ecole" />
<input type="submit" value="OK" />
</p>
</form>
19
Ce qui donne :
20
Le code PHP
On récupère les données et on les affiche(fichier traitement.php)
<?php$age = $_GET["age"];$school = $_GET["ecole"];echo "Vous êtes de l'école $school.";echo " <br /> ";echo "Vous êtes né en ".(2008-$age).".";?>
21
Résultat
Les paramètres
22
Gestion des fichiers La fonction de base est la fonction fopen( )
Ouvrir un fichier (le lire, le créer, ou y écrire) Syntaxe : fopen(nomdufichier, mode);
Différents modes disponibles :
r : ouverture en lecture seulement w : ouverture en écriture seulement (la fonction crée le
fichier s'il n'existe pas) a : ouverture en écriture seulement avec ajout du contenu à
la fin du fichier (la fonction crée le fichier s'il n'existe pas) r+ : ouverture en lecture et écriture w+ : ouverture en lecture et écriture (la fonction crée le
fichier s'il n'existe pas) a+ : ouverture en lecture et écriture avec ajout du contenu
à la fin du fichier (la fonction crée le fichier s'il n'existe pas).
23
Gestion des fichiers
Exemples :
$fp = fopen("fichier.txt","r"); //lecture
$fp = fopen("ftp://user:[email protected]/fichier.txt","w");
//écriture depuis début du fichier
$fp = fopen("http://www.exemple.com/fichier.txt","a"); //écriture depuis fin du fichier
24
Lecture dans un fichier<?php$monfichier = fopen("monfichier.txt","r");
if (!($monfichier)) { print("Impossible d’ouvrir le fichier"); exit ;}while (!feof($monfichier)) { $ligne = fgets($monfichier); print "$ligne <BR>";}fclose ($monfichier);
?>
25
Écriture dans un fichier< ?php
$monfichier = fopen("monfichier.txt", "w") ; // ouverture en écriture
if ( !($monfichier)) {
print("Impossible de créer le fichier \n") ; exit ;}
fputs($monfichier, "$ligne1") ; // on écrit deux lignes
fputs($monfichier, "$ligne2") ;
fclose($monfichier) ; // on ferme le fichier, on libère les ressources
?>
26
Inclure un fichier
Fonction include()
haut.html :
<html><head><title>Mon site</title></head><body>
bas.html :
<a href="mailto:[email protected]">envoyer un mail</a></body></html>
page1.php :
<?phpinclude("haut.html");?>
<h1>Première page</h1>
Du blabla
<?phpinclude("bas.html");?>
27
28
Exemple du TP
Récupérer les données d’un formulaire pour les utiliser dans une page
form1.php :<form method= "post" action="form2.php">Nom : <input type="texte"name="nom" size="10"><br>Prénom : <input type="text" name="prenom" size="10"><br>Age : <input type="text" name="age" size="10"><br><input type="submit" value="OK">
</form>
Script de réception dans form2.php :<?php$nom = $_POST["nom"]; $prenom = $_POST["prenom"]; $age =
$_POST["age"]; echo "Bonjour $prenom $nom, vous avez $age ans";?>
29
Pas de paramètres
30
Exemple du TP - changer dynamiquement la couleur du fond de la page
form1.php : <form method=«post» action=« form2.php»>Nom : <input type=«texte» name=«nom» size=«10»><br>Prénom : <input type=«text» name=«prenom» size=«10»><br>Age : <input type=«text» name=«age» size=«10»><br>Sexe(m/f) : <input type=«text» name=«sexe» size=«1»><br><input type=«submit» value=«OK»></form>
form2.php :
<?// Gestion de la couleur du fond$nom = $_POST[«nom»]; $prenom = $_POST[«prenom»]; $age = $_POST[«age»]; $sexe = $_POST[«sexe»];
If($sexe==«f») {echo «<body bgcolor=\«#FF80C0\»>»;} //rose, si felse{ echo «<body bgcolor=\«#0080FF\»>»;} //bleu, si m
<?echo « Bonjour $prenom $nom, vous avez $age ans »;?>
31
32
Exemple du TP - Protéger une page avec un mot de passe
protegee.html : « Vous êtes sur une page protégée par un mot de passe »
form1.php :<form method=«post» action=«form2.php»><input type=«password» name=«pass» size=«8»><input type=«submit» value=«OK»></form>
form2.php :<?php$pass_in=$_POST["pass"]; If($pass_in==« toto ») {
//redirige vers la page protégéeheader(«Location:protegee.html»);}
else{ echo «Vous n’êtes pas autorisé à visualiser cette page»;}
?>
33
34
Exemple du TP - inclure des fichiers
<html><head><title>Site dynamique en PHP</title></head><?php// Gestion de la couleur du fondecho "<body bgcolor=\"FF8000\">"?>
haut.php
droits.txt
</body></html>
bas.php
<?phpInclude "haut.php";?>
<br/><p align=‘center’><a href=«page2.php»>
lien vers la page 2</a></p>
<br/><br/><br/><br/>
<?phpecho «p align=‘center’>»;Include «droits.txt»;Include «bas.php»;?>
Index.php
  : espace
© Copyright 2008
35
Liens utiles
www.php.net
http://fr.php.net/manual/fr/index.php