En session PHP, les données sont généralement stockées dans un fichier. La seule chose stockée dans le cookie est un identifiant de session. Lorsque les sessions sont activées et qu'un cookie de session valide est trouvé, PHP charge les données de session des utilisateurs à partir du fichier dans un super global appelé SESSION assez drôle.
Les sessions de base démarrent en appelant session_start();
avant l'envoi du texte au navigateur. puis les éléments sont ajoutés ou supprimés de l'objet de session en utilisant l'indexation simple du tableau, par exemple.
$_SESSION['favcolour'] = 'blue';
plus tard ...
$favcolour = $_SESSION['favcolour'];
cookies de base seulement des sessions (pas de stockage local) peuvent être créés avec un appel à
set_cookie('favcolour','blue'[,other params]);
avant tout texte est envoyé au navigateur, puis récupéré à partir du cookie superglobal
$favcolour = $_COOKIE['favcolour'];
vous n'avez pas besoin d'appeler session_start()
si vous effectuez des sessions de cookie uniquement.
les options [autres] params sont plus avancés et peuvent être lus sur ici http://www.php.net/manual/en/function.setcookie.php
Les sessions peuvent devenir une discussion très complexe, je vous suggère de faire un travail de lumière en eux et puis développez vos connaissances.
DC
tout ce que vous avez toujours voulu savoir sur les sessions PHP
http://www.php.net/manual/en/book.session.php
DC
Pour réutiliser le code de gestion de session PHP vous devez ajouter un gestionnaire d'écriture à l'aide session_set_save_handler
puis ne fais absolument rien dans ce gestionnaire. C'est parce que son appelé après la sortie vers le navigateur est fermé, donc vous ne pouvez rien envoyer au navigateur. Avant d'écrire des données non en-tête dans le navigateur, utilisez les fonctions set_cookie et stockez le contenu du tableau $ _SESSION (après sérialisation et cryptage) dans un cookie. Lorsque les applications démarrent, vous pouvez lire le cookie le désérialiser et le placer dans le tableau $ _SESSION.
C'est un indice rapide à quoi faire comme je ne l'ai jamais fait, je préfère écrire tout mon propre code de cookie. Il y a peut-être quelques getcha's mais ce n'est pas difficile, quelques tests devraient trouver des gotcha.
DC
Je ne suis pas sûr que je suis. Vous voulez stocker des données de session dans des cookies? est-ce une bonne idée? –
Veuillez noter que les cookies ne peuvent stocker qu'un maximum de 4 Ko de données. C'est généralement la raison pour laquelle vous ne voyez pas de stockage de session basé sur les cookies.Prenez également en compte le fait qu'un certain nombre d'utilisateurs ont des cookies totalement désactivés ou configurés avec un accès restrictif avec la politique de sécurité de leur navigateur. –
@cballou: Les anciennes sessions régulières utilisent généralement des cookies. Ils stockent simplement le SESSID et le reste des données est stocké sur le serveur. Bien que je pense que PHP essayera de bourrer le SESSID dans le paramètre 'GET' si les cookies sont désactivés. – mpen