Forum und email

session_start

(PHP 4, PHP 5)

session_start — Initialise une session

Description

bool session_start ( void )

session_start() crée une session (ou restaure celle trouvée sur le serveur, via l'identifiant de session passé dans une requête GET, POST ou par un cookie).

session_start() retourne toujours TRUE.

Note: Si vous utilisez des sessions basées sur les cookies, vous devez appeler session_start() avant d'afficher quoi que ce soit au navigateur.

Example#1 Exemple de session : page1.php

<?php
// page1.php

session_start();

echo 
'Bienvenue à la page numéro 1';

$_SESSION['favcolor'] = 'vert';
$_SESSION['animal']   = 'chat';
$_SESSION['time']     = time();

// Fonctionne si le cookie a été accepté
echo '<br /><a href="page2.php">page 2</a>';

// Ou bien, en indiquant explicitement l'identfiant de session
echo '<br /><a href="page2.php?' SID '">page 2</a>';
?>

Après avoir vu la page page1.php avec un navigateur, la seconde page page2.php va magiquement afficher les données de session. Lisez la référence sur les sessions pour des informations sur la propagation des identifiants de session, et l'utilisation de la constante SID.

Example#2 Exemple de session : page2.php

<?php
// page2.php

session_start();

echo 
'Bienvenue sur la page numéro 2<br />';

echo 
$_SESSION['favcolor']; // vert
echo $_SESSION['animal'];   // chat
echo date('Y m d H:i:s'$_SESSION['time']);

// Vous pourriez utiliser la constante SID ici, tout comme dans la page page1.php
echo '<br /><a href="page1.php">page 1</a>';
?>

Si vous avez utilisé une session nommée, vous devez appeler session_name() avant d'appeler session_start().

session_start() va configurer un gestionnaire interne d'affichage, pour assurer la réécriture des URL, lorsque le support transparent du SID est activé. Si vous utilisez ob_gzhandler ou ob_start(), l'ordre des gestionnaires d'affichage est important pour un affichage correct. Par exemple, l'utilisateur doit enregistrer ob_gzhandler avant que la session ne commence.

Note: L'utilisation de zlib.output_compression est recommandée, à la place de ob_gzhandler.

Note: Depuis PHP 4.3.3, l'appel à session_start() alors que la session a déjà débuté, retournera une erreur de niveau E_NOTICE. Le second appel à la fonction sera tout simplement ignoré.

Voir aussi $_SESSION, session.auto_start et session_id().