Vous êtes sur la page 1sur 15

<FORM action="commande.

php">
<P>Nombre
<INPUT type="text" name="nombre_de_personnes">
<INPUT type="submit" value="commander"></P>
</FORM>

commande.php?nombre_de_personnes=4

register_globals
<?php
echo "le nombre est : $nombre_de_personnes"; ?>

$HTTP_POST_VARS $HTTP_GET_VARS
<?php
$nb = $HTTP_GET_VARS['nombre_de_personnes'];
echo "le nombre est : $nb"; ?>

! "# $_GET $_POST $_REQUEST


(register_long_arrays = On )
<?php
$nb = $_GET['nombre_de_personnes'];
echo "le nombre est : $nb"; ?>

import_request_variables
o #$ g %&'( p )*' c +
,$
o #$ - . ! !
<?php
import_request_variables("pg", "f_") ;
echo "le nombre est : $f_nombre_de_personnes"; ?>

/ extract
<FORM action="commande.php">
<P>Vous souhaitez commander une laisse pour :<BR>
<INPUT type="checkbox" name="laisse" value="1">chien<br>
<INPUT type="checkbox" name="laisse" value="2">chat<br>
<INPUT type="checkbox" name="laisse" value="3">
crocodile<br>
<INPUT type="submit" value="commander"></P>
</FORM>

commande.php?laisse=1&laisse=2

0- - ! $_GET 1
<?php
$nb = $_GET['laisse'];
echo "valeur de laisse = $nb";
?>
valeur de laisse = 2

* 1 -
<INPUT type="checkbox" name="laisse[]" value="1">
chien<br>
<INPUT type="checkbox" name="laisse[]" value="2">chat<br>
<INPUT type="checkbox" name="laisse[]" value="3">
crocodile<br>
commande.php?laisse%5B%5D=1&laisse%5B%5D=2

<?php
echo "laisse = ", $_GET['laisse'];
?>
laisse = Array

<?php
$laisse = $HTTP_GET_VARS['laisse'];
foreach ($laisse as $val){
echo "laisse = $val<br>";
}
?>
laisse = 1
laisse = 2
2 3 #

- 1

#$ 3506
?idclient=21000

2 $ - $
<INPUT type="hidden" name="idclient" value="21000">

2 +
nom=valeur ! 7- - ''
+- 8 (
! - -9 $ JJ-Mois-AAAA HH:MM:SS GMT)
! $ 9 : $ -9 :
! 7- 8 3 -$ 8; ! !

Envoi du cookie par le serveur (réponse HTTP)


5 $ * "2 + 9 + : 3 "; - '' 1
Set-Cookie: nom=valeur; expires=date; path=chemin;
domain=nom_de_domaine; secure

4 - 1
+ 8 $ -
$ $ ! 8 #- , +
$ $ 8 ! 7- +
+ ! 7-8 8 7 $$ 9 7 - :

Envoi du cookie par le client (requête HTTP)


Cookie: nom1=valeur1; nom2=valeur2 ...

Envoi de cookies au client dans un script PHP


booleen setcookie("nom", "valeur", expiration, "chemin", "domaine",
secure)

* 3 #$ $ # 63 # $ expiration $ $
3 6 + - ! 6 $ $
< , 9 - -: =
- 9 ! 3- :
,$ ,$
6 " - snack.fr ! + 6 (
,$ ( ,$ ,$
$ , 3 ! ( . 6
,$
+ ! 7- 8; > snack.fr( ! 7-
8; - $;$ - 8 8
! 7- +

<?php
// cookie qui expirera dans 10 minutes
setcookie("idclient","21000", time()+600, "/");

setcookie("langue", "fr");

setcookie("client[id]", "21000", time()+600, "/");


setcookie("client[langue]", "fr", time()+600, "/");
?>
Lecture des cookies envoyés par le serveur depuis un script
! register_globals=on 1 ! # --
8 +
! track_vars=on 1 $HTTP_COOKIE_VARS
"# $_COOKIE $_REQUEST

2 8 +

<?php
foreach ($HTTP_COOKIE_VARS as $cle=>$val){
if (is_array($val)){
foreach ($val as $cle2=>$val2){
echo "$cle : $cle2 = $val2<BR>";
}
}
else{
echo "$cle = $val<BR>";
}
}
?>
2 @ - $;$ - 8 index.php 8 - +
A

langue = fr
client : id = 21000
client : langue = fr
idclient = 21000

2 @ - - >

1
1 #

! "

,#
,8 6

4.1 Principe
8
! ! $ ! ; -- $
$ -
5 - 1 + 3 $$ B- !
$ 3 - 1 PHPSESSID
! <
4777db0b92dffd0f49219a27c59d132b

$ C 8 1
o + 9 D:
PHPSESSID=4777db0b92dffd0f49219a27c59d132b

o 506 1 - 3 ! . + A ( !
session.use_trans_sid !- E 8 3. ! ! -
8 $ ! -- $ - ! 3 enable-trans-sid
6 8 - 3506( 506 9 7
$ : ! $ #$ 3
1
?PHPSESSID=4777db0b92dffd0f49219a27c59d132b

?
6 phpinfo() $ 3 $ # 5
$ 93 $ - ! :( 8
! ! 9! - # : 2
! $ $$ 1
" $ 9session.name:(
" $- +# - 3
9session.save_handler:( - -(
" 3 #$ . $- + # 9session.save_path:( 3
#$ - $ @ +- (
" $- $ 3 . 9session.use_cookies:(
! off . 506 (
" $ - $ 8 3506 ! 3
9session.use_trans_sid:(
" ! - + $ - 9session.cookie_lifetime:( $
9session.cookie_domain:( $ $ 9session.cookie_path:
- -9session.cookie_secure:

4.2 Ouverture d’une session


F session_start 9 - ! -! $ !
+ :

Modifier le nom de la session et de l’identifiant


F session_name 9 # $ $. . :
F session_id 9 # $ 3 . :

2 ! ; - ! 3 !

6 8 $ --$ -( session_name 8
$ 3 ! 3 $ $ 3 3
$-$ -

Modifier la validité du cookie


6 session_set_cookie_params $ $ ! - + 8
! 7- 3 ! * $ #$ - ! + (
$ ( ,$ $ 8 ,$ - -

Modifier les valeurs des directives du php.ini avec ini_set


F ini_set # $ ! ! -
#$ $ !(
,$
#$ !

F ini_get pour ! ! - $,

/
Exemple

Ouverture d’une session


<?php
// autoriser les cookies
ini_set("session.use_cookies", 1);
// interdire l'ajout automatique dans l'URL
ini_set("session.use_trans_sid", 0);
// modifier la validite du cookie
session_set_cookie_params(0, "/");
// modifier le nom et l'identifiant
session_name("test");
session_id("22");

session_start();

echo "session ouverte : ";


echo session_name(), "=", session_id();
?>

session ouverte : test=22

Navigation sous une session existante


<?php
ini_set("session.use_cookies", 1);
ini_set("session.use_trans_sid", 0);
session_name("test");
session_start();
echo "votre navigation est suivie par la session ";
echo session_name(), "=", session_id();
?>

votre navigation est suivie par la session test=22

4.3 Variables de session

Création d’une variable


! register_globals=on : ! --
session_register 8 - ! $ #$

"# $_SESSION

# $HTTP_SESSION_VARS

G
Vérification de l’existence d’une variable
session_is_registered register_globals=on
isset 8 -

6 TRUE ! 6 $, #$
$ ! ( #$ ! - -

Affectation et lecture de la valeur


register_globals=on ! - $$ !
#
* ( $_SESSION IHTTP_SESSION_VARS

Suppression d’une variable


! -- ! session_register
session_unregister
* unset

Exemple

Création avec register_globals à on


<?php
session_start();
$livres = 1 ;
session_register('livres') ;
if (session_is_registered('livres')){
$livres = 4;
}
echo "la valeur est $livres";
?>

Consultation de la valeur de la variable


<?php
session_start();
echo "session ", session_name(), '=', session_id();
echo "<BR>la valeur est $livres ";
?>

session PHPSESSID=67623b8ca337e649e5ee08e8ccc79acf
la valeur est 4

4.4 Fermeture d’une session


6 session_destroy $ - - . 9!
- ( 3 8 -: & $
! # - . ( +

H
4.5 Exemple

* # > $ -
6 8 # 8 1
o - # $ (
o - -
o !# - # = $ 1
3 - # - (

- 9 $ :
6 $ ! 7- .commander.php 8 # !

J 8 # > 8 3 $$ !# (
! $,

Préférences communes
6 #- - # -$ ( $ 8 ( ! ( -
-- -

Script init.php : modification des directives


<?php
// parametres de session
ini_set("session.use_cookies", 1);
ini_set("session.use_trans_sid", 0);
session_set_cookie_params(0, "/");
// supprimer les balises html dans les entrees utilisateurs
foreach ($_POST as $cle=>$val){
$_POST[$cle] = strip_tags($val);
}

// creer ou restaurer une session


session_start();
?>

Début de page commun


K! 3 debutpage.php( ! $titre -- ( $ <
, 8 < $$ # >

Script debutpage.php : code HTML commun


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title><?php echo $titre ?></title>
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1">
<style type="text/css">
<!—
div.menu {text-align:center; word-spacing:20px;
margin-bottom:20px; border:groove;
padding: 10px}
div.info {text-align:center; border:none;
font-style:italic}
div.princ {border:dotted; padding: 10px}
-->
</style>
</head>
<body>
<h1 style="text-align:center"><?php echo $titre ?></h1>

Bandeau de navigation commun à toutes les pages


2 #- , $ 83 7 @ 3506
3 * + --#- --( 8 - 3506 8
! $ - $ 8 !( L 3 - - 506
* ( 3 - 3506 5 $ !
- $ # > ! 7-

Script finpage.php : bandeau de navigation


<div class="menu">
<a href='films.php'>cin&eacute;ma</a>
<a href='disques.php'>musique</a>
<a href='livres.php'>livres</a>
<a href='caddie.php'>caddie</a>
<a href='deconnexion.php'>d&eacute;connexion</a>
</div>
<?php
// afficher l'identifiant de session
echo "<div class='info'>";
echo "votre commande est suivie par une session : <br>";
echo session_name(), " = ", session_id(), "</div>";
?>
</body>
</html>

Pages de choix du produit

Script livres.php
<?php
require("init.php");

$titre = "Livres";
require("debutpage.php");
?>

<form action="commander.php" method="POST">


<div class="princ">
<input type="radio" name="livre" value="1">Le tour du monde en 80
jours<br>
<input type="radio" name="livre" value="2">De la Terre &agrave; la
Lune<br>
<input type="radio" name="livre" value="3">Vingt milles lieues sous
les mers<br>
<input type="radio" name="livre" value="4">Voyage au centre de la
Terre<br><br>
<input type="submit" value="commander">
</div>
</form>

<?php
require("finpage.php");
?>
Stockage du produit dans le panier de commande
6 8 3 ( $ - commander.php
$ ( ,$ ! $ - livres.php( ! $_POST
$ 8 -M ! N ! 6 !
#- -- $ # 8 8 - ! 7-

Script commander.php : variables de session


<?php
require("init.php");

$titre = "Commande";
require("debutpage.php");

// enregistrer la commande dans une variable de session


echo "<div class='princ'>";
foreach ($_POST as $type=>$val){
$_SESSION[$type] = $val;
echo "le $type num&eacute;ro $val est dans votre caddie<br>";
}
echo "</div>";

require("finpage.php");
?>

0- 3 - $$
- ( ! +- ! 8 $;$
$ 8 3 K , - ! $- (
sess_4777db0b92dffd0f49219a27c59d132b $ 1
livre|s:1:"3";

5 L - $$ $ $- ( $ -
-8 1
livre|s:1:"3";film|s:1:"2";

Affichage du panier de commande

Script caddie.php
<?php
require("init.php");
$titre = "Votre commande";
require("debutpage.php");

// lister la commande
echo "<div class='princ'>";
foreach ($_SESSION as $cle=>$val){
echo "$cle num&eacute;ro $val<br>";
}
echo "</div>";

require("finpage.php");
?>
Déconnexion

deconnexion.php
<?php
require("init.php");

// suppression du cookie
setcookie(session_name(), "", time()-3600, '/');

$titre = "D&eacute;connexion";
require("debutpage.php");

// suppression des variables de session


$_SESSION = array();

// afficher un message
echo "<div class='princ'>fin de la session</div>";

// fermer la session
session_destroy();

// afficher le bandeau de menu


require("finpage.php");
?>