| Accueil | table PHP | index PHP | précédent | suivant |

Les variables de session

On appelle session la durée pendant laquelle un visiteur reste sur votre site. Pendant sa visite, plusieurs scripts s'exécuteront sans doute et ils doivent pouvoir communiquer entre eux en échangeant des données. Celles ci seront contenues dans un tableau associatif nommé $_SESSION[] qui restera accessible à tous les scripts pendant la session.

Pour que les variables puissent être enregistrées et lues dans ce tableau associatif, chaque script devra débuter par la fonction session_start() qui doit impérativement se trouver en tête du fichier .php et être exécutée avant tout envoi de code HTML, faute de quoi un diagnostic d'erreur sera affiché.

Dans l'exemple suivant, deux scripts (page1 et page2) échangent une variable de session : elle est initialisée par le premier script et modifiée par le second :


<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Titre de cette page : script021</title>
<meta name="description" content="Phrase décrivant clairement cette page" />
<meta name="keywords" content="mot1 mot2, mot3 mot4 mot5, mot6" />
<link rel="stylesheet" type="text/css" href="../pagesHTML/Style37.css" />
</head>

<body>

<div id="conteneur">

<h3>Page 1</h3>

<?php
if(! isset($_SESSION["var_sess1"]))
{$_SESSION["var_sess1"]=0;}
?>

La page 2 fait progresser d'une unité la variable $_SESSION["var_sess1"]&nbsp;:<br/><br/>

<?php
$var_sess1=$_SESSION["var_sess1"];
echo "\$_SESSION[\"var_sess1\"] = $var_sess1<br/><br/>";
?>

<table>
<tr>
<td>
Page suivante :
</td>
<td>
<a href="script022.php" ><img class="image" src="../images/next.bmp" alt="page suivante" /></a><br/>
</td>
</tr>
</table>

</div>

</body>

</html>

<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Titre de cette page : script022</title>
<meta name="description" content="Phrase décrivant clairement cette page" />
<meta name="keywords" content="mot1 mot2, mot3 mot4 mot5, mot6" />
<link rel="stylesheet" type="text/css" href="../pagesHTML/Style37.css" />
</head>

<body>

<div id="conteneur">

<h3>Page 2</h3>

J'ajoute 1 à la variable de session&nbsp;: <br/><br/>

<?php
$_SESSION["var_sess1"]++;
$var_sess1=$_SESSION["var_sess1"];
echo "\$_SESSION[\"var_sess1\"] = $var_sess1<br/><br/>";
?>

<table>
<tr>
<td>
<a href="script021.php" ><img class="image" src="../images/prev.bmp" alt="page suivante" /></a><br/>
</td>
<td>
Page précédente
</td>
</tr>
</table>

</div>

</body>

</html>


Exécuter ce script




suivant