35
Introduction à PHP Saïd Radhouani Université de Genève avril 2008

Introduction à PHP

Embed Size (px)

DESCRIPTION

Programmation, développement Web

Citation preview

Page 1: Introduction à PHP

Introduction à PHP

Saïd RadhouaniUniversité de Genèveavril 2008

Page 2: Introduction à PHP

2

Qu’est-ce que PHP

Client

Navigateur

(Mozilla)clic

Serveur

Serveur web

(Apache)

PHP

requête HTTP

réponse

Page 3: Introduction à PHP

3

PHP ou HTML ?

HTTP

Internet

Serveur w

eb (Apache)

Nav

igat

eur

web

(M

ozil

la)

Page 4: Introduction à PHP

4

PHP ou HTML ? (2)

Code PHP : « côté serveur »

Navigateur client : HTML

Conséquence : le code source PHP est protégé

Page 5: Introduction à PHP

Bases du langage

Page 6: Introduction à PHP

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";

Page 7: Introduction à PHP

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>

Page 8: Introduction à PHP

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

Page 9: Introduction à PHP

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?>

Page 10: Introduction à PHP

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

Page 11: Introduction à PHP

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

Page 12: Introduction à PHP

Tableaux, fonctions

Page 13: Introduction à PHP

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

Page 14: Introduction à PHP

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

Page 15: Introduction à PHP

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>

Page 16: Introduction à PHP

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

Page 17: Introduction à PHP

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

Page 18: Introduction à PHP

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>

Page 19: Introduction à PHP

19

Ce qui donne :

Page 20: Introduction à PHP

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).".";?>

Page 21: Introduction à PHP

21

Résultat

Les paramètres

Page 22: Introduction à PHP

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).

Page 23: Introduction à PHP

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

Page 24: Introduction à PHP

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);

?>

Page 25: Introduction à PHP

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

?>

Page 26: Introduction à PHP

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");?>

Page 27: Introduction à PHP

27

Page 28: Introduction à PHP

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";?>

Page 29: Introduction à PHP

29

Pas de paramètres

Page 30: Introduction à PHP

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 »;?>

Page 31: Introduction à PHP

31

Page 32: Introduction à PHP

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»;}

?>

Page 33: Introduction à PHP

33

Page 34: Introduction à PHP

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

&nbsp : espace

© Copyright 2008

Page 35: Introduction à PHP

35

Liens utiles

www.php.net

http://fr.php.net/manual/fr/index.php