Académique Documents
Professionnel Documents
Culture Documents
CI1 GI
ENSA Ttouan
2013/2014
Mohammed AL ACHHAB
alachhab@gmail.com
Rappel
Se souvenir de
login de l'utilisateur
Fichiers
Plan
Introduction aux chiers
Introduction aux :
sessions
coockies
Bases de donnes
PHP/MySQL
Les fichiers
introduction
Pourquoi ?
trs souvent utiliss en PHP
recueillir les informations en provenance des postes clients/BD
cas de donnes simples et de taille modeste
BD pour les donnes complexes et les traitements pointues
exemple d'utilisations :
le nombre des visiteurs
sondages
donnes temporelles (BD)
Les fichiers
fopen()
Avant de raliser des oprations de lecture ou d'criture sur un
fichier il faut l'ouvrir explicitement
Fonction: $id_file = fopen(string $nom, string $mode)
$nom : le nom du fichier :
"monfichier.txt"
"../../repertoire/monfichier.txt"
"c:\\repertoire\\monfichier.txt" (sous windows)
"http://www.monsite.net/repertoire/monfichier.txt"
FTP
Les fichiers
lecture
fgets($id_file [, nombre_octets]) : rcupre la ligne courante sur
laquelle se trouve le pointeur du fichier
La chaine de retour est nulle si pas de ligne extraire
Pour parcourir un fichier texte utiliser une boucle
Monfic
ManipFile.php
Les fichiers
Exemple : Compteur de visites
DEMO ?
Visiteur N
Ecrire dans le fichier
Visiteur 1
Ecrire dans le fichier
compteur.php
Visiteur 2
Lire le fichier
Les fichiers
verouillage
Problme de concurrence :
Plusieurs clients demandent un fichier simultanment
deux scripts modient un chier en mme temps
Conit
Verrouiller un fichier pour ne pas autoriser tout accs / modification
/ ajout ce fichier
boolean flock($id_file, int N)
N : dfinit le mode de verrouillage du fichier :
=LOCK_SH (ou 1) : bloque l'criture dans le fichier mais laisse
le libre accs en lecture tous les utilisateurs
=LOCK_EX( ou 2) : bloque l'criture et la lecture du fichier par
un autre script
=LOCK_UN ( ou 3) : libre le verrou install prcdemment
Les fichiers
Exemple : Compteur de visites
compteur.php
Inclusion de fichiers
Inclusion d'un autre chier PHP :
Regroupement de fonctions (lies la manipulation de BD
par exemple) ou de variables (compt !!!)
Organisation d'un site Web
include("nom_fichier.php");
Exemple :
Se souvenir de
login de l'utilisateur
Fichiers
Les cookies
Un cookie est un petit chier plac sur l'ordinateur
du visiteur
Les cookies servent stocker de l'information chez
le visiteur
Ils sont propres un PC et ne sont pas rcuprables si l'utilisateur
se reconnecte partir d'un autre poste
Les cookies
Pour crire un cookie, il faut utiliser la fonction setcookie():
<?php setcookie("nom", "valeur"); ?>
setcookie() doit tre appele avant d'crire sur la sortie standard
Par dfaut, le cookie expire la fermeture du navigateur et est
accessible par toutes les pages de votre domaine
Pour changer cela :
<?php
setcookie("nom", //le nom du cookie
"valeur", //la valeur associe au cookie
time()+3600, //valable une heure(60*60)
"/chemin/",
/* le chemin d'accs aux dossiers qui contiennent les
scripts autoriss accder au cookie */
"www.domaine.com");
?>
Les cookies
Exemple
<?php
setcookie("Nom","OMAROMARO"); //cookie valable uniquement pour la session
// setcookie("nom") affecte la chane vide au cookie
setcookie("Prenom","FATAFIT",time()+(60*60*24)); //cookie valable 24 heures
?>
DEMO ?
menu Google Chrome Paramtres paramtres avancs "Confidentialit" Paramtres de
contenu
Les cookies
Exemple
La lecture des cookies se fait via la variable superglobale
$_COOKIE :
<?php
setcookie("nom1","valeur1");
setcookie("nom2","valeur2");
?>
<ahref="page2.html">page2</a>
Contenu de la page page1.php
<?
echo$_COOKIE["nom1"]."</br>";//affiche valeur1
echo$_COOKIE["nom2"]."</br>";//affiche valeur2
?>
Contenu de la page page2.php
Les cookies
Exemple : tableaux associatifs
La lecture des cookies se fait via la variable superglobale
$_COOKIE : <?php
setcookie("tab['key1']", "valeur1");
setcookie("tab['key2']", "valeur2");
setcookie("tab['key3']", "valeur3");
?>
<a href="page2.html"> page2 </a>
Contenu de la page page1.php
<? php
foreach($_COOKIE["tab"] as cle => $valeur) {
echo $cle.'=>'.$valeur.'<br/>';
}
Contenu de la page page2.php
?>
key1 => valeur1
key2 => valeur2
key3 => valeur3
Les cookies
Exemple
Se souvenir de
login de l'utilisateur
Fichiers
Les sessions
Une session permet de stocker des informations de l'utilisateur sur
le serveur et de les rutiliser dans toutes les pages du site pour un
mme visiteur :
Identifiants de connexion, informations personnelles,
Les sessions
Dmarrer une session :
Ouverture d'une session dans chaque page ayant accs aux
donnes l'aide de la fonction : session_start(("nom", "valeur");
Dans le cas de sessions avec cookie, il faut crire la fonction au
dbut du script
Dans le cas d'un dmarrage de nouvelle session, un fichier
(cookie) est cr sur le serveur pour cette session
Dans le cas ou le fichier existe dj (session dj dmarre), la
lecture des variables de sessions se fait via la variable superglobale
$_SESSION avec comme cls les noms des variables
Les sessions
Exemple : sessions avec cookies
<?php
session_start();
// dmarrage de session
$_SESSION['Nom'] ="Didi";
// criture dans la variable Nom la valeur Didi
echo "<a href= page2.php > page 2 </a>";
Nom =Didi
<?php
session_start(); // dmarrage de session
// Lecture de la variable Nom
if (isset($_SESSION['Nom']))
echo $_SESSION['Nom'];
?>
Les sessions
Exemple : autentification
<form method="POST" action="index.php">
login : <input type="text" name="login"/><br/>
motde passe : <input type="password" name="passwd"/><br/>
<input type="submit"/>
FormulaireConnexion.php
</form>
Les sessions
Exemple : autentification
<?php
session_start();
if ( isset($_POST['login']) && isset($_POST['passwd']))
&& verifierPassword($_POST['login'], $_POST['passwd'])
$_SESSION['login']=$_POST['login'];
elseif(isset($_GET['deconnexion']))
$_SESSION['login']=null;
$login=null;
?>
if(isset($_SESSION['login']))
$login=$_SESSION['login'];
if($login===null)
include("FormulaireConnexion.php");
else
include("FormulaireDeconnexion.php");
Index.html
Demo 2
En rsum
Les fichiers : pour les donnes
simples
taille modeste
Rappel
Se souvenir de
login de l'utilisateur
Fichiers