Você está na página 1de 18

Dveloppement des

Applications Web
L'Ecole Suprieure de Management,
d'Informatique et de
Tlcommunication, Sup MIT
Applications Web
PHP Perfectionnement
Ahmed ZELLOU
SUP MIT, 2012-203.
Plan PHP
File Upload
Cookies
Mail
PHP
2
Mail
Sessions
A.ZELLOU
File Upload
Pour permettre aux utilisateurs de charger des fichiers partir
d'un formulaire:
<html>
<body>
<form action="upload_fichier.php" method="post"
enctype="multipart/form-data">
<label for="fichier"> Nom du fichier:</label>
<input type="file" name="fichier" id="fichier" />
PHP
3
<input type="file" name="fichier" id="fichier" />
<br />
<input type="submit" name="submit" value=" Soumettre " />
</form>
L'attribut enctype spcifie le format du fichier charger.
"multipart/form-data" est utilis pour les donnes binaires.
type = "file" prcise que l'entre doit tre traite comme un fichier.
Permettre aux utilisateurs de charger des fichiers est un gros
risque de scurit.
Autoriser seulement les utilisateurs de confiance.
A.ZELLOU
File Upload
Script d'upload
<?php
if ($_FILES["file"]["error"] > 0)
echo "Error: " . $_FILES["file"]["error"] . "<br />";
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
PHP
4
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Taille: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Enregistr dans " . $_FILES["file"]["tmp_name"];
}
?>
En utilisant un tableau $_FILES :
$_FILES ["file"] ["name"] - le nom du fichier
$_FILES ["file"] ["type"] - le type du fichier
$_FILES ["file"] ["size"] - la taille en octets du fichier
A.ZELLOU
File Upload
En utilisant un tableau $_FILES :
$_FILES ["file"] ["tmp_name"] - le nom de la copie temporaire du
fichier stock sur le serveur
$_FILES ["file"] ["error"] - le code d'erreur li l'upload du fichier
Pour des raisons de scurit, vous devez ajouter des
restrictions sur le fichier tlcharger.
PHP
5
restrictions sur le fichier tlcharger.
Dans ce script, on ajoute quelques restrictions sur le format
(.gif, .jpeg ou .pjpeg) et la taille (infrieur 20 ko):
<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
echo "Error: " . $_FILES["file"]["error"] . "<br />";
A.ZELLOU
File Upload
Suite script avec restriction
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Taille : " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Enregistr dans : " . $_FILES["file"]["tmp_name"];
}
PHP
6
}
}
else
{
echo " fichier non valide ";
}
?>
Note: IE reconnat les fichiers jpg avec pjpeg, FireFox avec
jpeg.
A.ZELLOU
Mail
La fonction mail() est utilise pour envoyer des courriels
partir d'un script.
mail(to, subject, message, headers, parameters)
PHP
Description Paramtre
Obligatoire. Spcifie le rcepteur / rcepteurs de l'email to
7
A.ZELLOU
Obligatoire. Prcise l'objet de l'email. subject
Obligatoire. Dfinit le message qui sera envoy. Chaque ligne doit
tre spare par un caractre LF (\n).
Lignes ne devraient pas dpasser 70 caractres
message
Facultatif. Indique des enttes supplmentaires, comme From, Cc et
Cci.
Les en-ttes supplmentaires doivent tre spars par un CRLF (\r \n)
headers
Facultatifs. Spcifie un paramtre supplmentaire au programme
sendmail
parameters
Mail
Note: Pour que les fonctions de messagerie soient disponibles,
PHP ncessite l'installation d'un systme e-mail.
Le programme utiliser est dfini par les paramtres de
configuration dans le fichier php.ini.
Simple E-Mail
PHP
8
<?php
$to = "personne@example.com";
$subject = "Mail de test";
$message = "Bonjour, ceci est un email de test.";
$from = "envoyeur@example.com";
$headers = "From: $from";
mail($to,$subject,$message,$headers);
echo "Mail envoy.";
?>
A.ZELLOU
Cookies
Un cookie (biscuit) est utilis pour identifier un utilisateur.
C'est un petit fichier que le serveur donne l'ordinateur de
l'utilisateur.
Chaque fois que l'ordinateur demande une page avec le
navigateur, il enverra le cookie aussi.
Comment crer un cookie?
PHP
9
Comment crer un cookie?
La fonction setcookie() est utilise pour dfinir un cookie.
Elle doit apparaitre avant la balise <html>.
setcookie(name, value, expire, path, domain);
Exemple 1 : L'exemple suivant, cre un cookie appel "user" et
assigne au cookie la valeur "ZELLOU".
Ce cookie doit expirer au bout d'une heure:
<? php
setcookie ("user", "ZELLOU", time () +3600);
?>
<html> .....
A.ZELLOU
Cookies
Comment rcuprer la valeur d'un cookie?
La variable $_COOKIE est utilis pour rcuprer la valeur
d'un cookie.
L'exemple suivant, rcupre la valeur du cookie nomm
"user" et l'affiche sur une autre page:
PHP
10
<?php
echo $_COOKIE["user"];
print_r($_COOKIE);
?>
Dans l'exemple suivant on utilise la fonction isset() pour
vrifier l'existence du cookie.
<?php
if (isset($_COOKIE["user"]))
echo "Welcome " . $_COOKIE["user"] . "!<br />";
else echo " Bienvenue invit!<br />";
?>
A.ZELLOU
Cookies
Comment effacer un cookie?
Pour supprimer un cookie, mettez une date d'expiration dj passe.
Exemple:
<?php
setcookie("user", "", time()-3600);
?>
PHP
11
?>
A.ZELLOU
Ateliers
1. Construire une page qui indique le nombre de visites dun
utilisateur sur le site.
2. Dveloppez une page HTML mmorisant les informations
suivantes sur des cookies, avec une dure de vie prciser:
nom de l'utilisateur
nombre de visites de la page
PHP
12
nombre de visites de la page
date et heure de la dernire visite
couleur de fond de pages prfre
cet effet, cette page prsentera donc un formulaire
permettant l'utilisateur de saisir son nom et de choisir la
couleur de fond prfre
A.ZELLOU
Sessions
Une variable de session est utilis pour stocker des
informations ou modifier les paramtres d'une session
utilisateur.
Elles dtiennent l'information sur un seul utilisateur, et elles
sont valables pour toutes les pages dans une seule application.
Dmarrer une session PHP avec la fonction session_start()
PHP
13
Dmarrer une session PHP avec la fonction session_start()
Elle doit tre antrieure la balise <html>:
<?php session_start(); ?>
<html>
Ce code va crer une session pour l'utilisateur (assigner un
UID pour cette session utilisateur).
A.ZELLOU
Sessions
Stockage d'une variable de session
Pour stocker et rcuprer les variables de session, utiliser la
variable $_SESSION:
<?php
session_start();
// Stocker les donnes de session
PHP
14
// Stocker les donnes de session
$_SESSION['Vue']=1;
?>
<html>
<body>
<?php
//Rcupre les donnes de session
echo"Page Vue=". $_SESSION['Vue'];
?>
</body>
</html>
A.ZELLOU
Sortie:
Page Vue=1
Sessions
L'exemple suivant, cre un compteur de pages visits.
isset() vrifie si la variable "vue" est dj dfinie.
Si la variable "vue" est dfinie, on incrmente notre compteur. Sinon,
on cre la variable et on l'initialise 1.
<?php
session_start();
PHP
15
session_start();
if(isset($_SESSION['vue']))
$_SESSION['vue']=$_SESSION['vue']+1;
else
$_SESSION['vue']=1;
echo "Vue=". $_SESSION['vue'];
?>
A.ZELLOU
Sessions
Dtruire une session
Utiliser la fonction unset() ou session_destroy().
La fonction unset() est utilise pour librer une variable de session.
<?php
unset($_SESSION['vue']);
?>
PHP
16
?>
session_destroy() permet de dtruire carrment la session.
Avec session_destroy(), vous perdrez toutes les donnes stockes
dans la session.
<?php
session_destroy();
?>
A.ZELLOU
Atelier
Gestion de Panier de commandes :
Lobjectif est de raliser un petit site de e-commerce qui permet des
utilisateurs de commander des articles (stocks dans plusieurs fichiers
php).
Nous supposons que tous les clients qui accdent au site sont inscrits.
PHP
17
A.ZELLOU
Merci
A.ZELLOU

Você também pode gostar