Variable SESSION

Résolu/Fermé
Jean - 28 mai 2008 à 14:34
 Jean - 28 mai 2008 à 16:10
Bonjour,
Je voudrais savoir à quoi sert une variable SESSION ?
Car j'ai sur toutes mes page php :
<?
php Session_start();
?>

Sauf pour la page php de départ ("celle qui s'enclenche desuite après une page de connexion html") :
<?
session_start();
$agent=$post ['codeAgent'];
$_SESSION ['codeAgent']=$agent
?>


Merci pour votre réponse (Et n'inventez pas Merci !!)

2 réponses

Barracuda8 Messages postés 107 Date d'inscription vendredi 4 mai 2007 Statut Membre Dernière intervention 19 décembre 2011 65
28 mai 2008 à 16:01
Alors, dans l'ordre:

La fonction session_unset() détruit toutes les variables de session. -> c'est vrai mais:
Tu peux aussi détruire une variable précise:

<?php unset($_SESSION['variable']);
echo 'La variable de session "variable" est maintenant détruite';
?>

Tu peux avoir autant de variables session que tu le désires.


Je croyais que la variable session se détruisait aprés la fermeture du navigateur, alors est il indispensable d'insérer la destruction des variable session ?
->c'est pas tout à fait ca:

Une variable session est active / viable pendant un certain temps définit par PHP (voir le fichier PHP INFO et la fonction phpinfo(); pour avoir les infos PHP).

Par exemple quand tu es sur un site de vente en ligne, ton caddie est mémorisé dans des variables sessions le temps de tes achats. En cas d'inactivité pendant un certain temps (disons 30 min par exemple) ta session est détruite automatiquement et toutes tes infos avec. Donc si tu pars manger en faisant ton caddie sans quitter le navigateur tu risque de perdre ton caddie.


session_start();
//indique que l'on veut utiliser les variables sessions et créer un fichier pour les utiliser si ce dernier n'existe pas encore
Si le fichier existe déjà, il n'est pas recréé et cette ligne signale seulement que l'on va utiliser les variables sessions.

$agent=$post ['codeAgent'];
//tu recuperes les données de ton formulaire et les stockent dans une variable (ici $agent)

$_SESSION ['codeAgent']=$agent
//tu recopies le contenu de $agent dans la variable session codeAgent


Mais tu avais déjà compris tout ca!

Maintenant, admettons que tu veuilles récuperer ce que tu as stocké dans la variable session "codeAgent" dans une autre page:

<?
session_start();
//mon fichier existe déjà, il n'est pas recréé, j'indique seulement que je vais utiliser des variables sessions
//C'est pourquoi tout tes fichiers utilisant les sessions commencent obligatoirement par cette fameuse fonction.

$codeAgentEnSession = $_SESSION ['codeAgent'];
//on récupere notre variable session dans une variable classique.
?>

Il faut bien comprendre que les variables sessions sont une notion totalement transparente à l'utilisateur et au programmeur. C'est un fonctionnement interne à PHP que tout bon programmeur doit connaître.

En espérant t'avoir éclairé,
Bonne journée,
Barracuda.
7
Merci beaucoup Barracuda8 je comprend mieux leurs utilitées dans un scripte. Tu ma réellement fait comprendre se que je voulais savoir.
Merci encore !!
0
Barracuda8 Messages postés 107 Date d'inscription vendredi 4 mai 2007 Statut Membre Dernière intervention 19 décembre 2011 65
28 mai 2008 à 14:39
Salut,

Mort de rire pour le "Et n'inventez pas Merci!".

Voilà un lien qui explique ce que sont les variables sessions

https://phpsources.net/tutoriel-sessions.htm

Je pense que si tu lis l'article tu arriveras à déterminer par toi même le sens donné à la variable $agent.

Bonne Journée!

Barracuda.
1
En tous cas merci à toi Barracuda8, je me rend immédiatement sur ton lien...
0
PHP Session - Détruire toutes les variables de session

La fonction session_unset() détruit toutes les variables de session.
<?php session_unset(); ?>
Je croyais que la variable session se détruisait aprés la fermeture du navigateur, alors est il indispensable d'insérer la destruction des variable session ?

Alors si je comprend bien :
0 <?
1 session_start();
2 $agent=$post ['codeAgent'];
3 $_SESSION ['codeAgent']=$agent
4 ?>

Ce code est incrémenté dans le premier formulaire car (l1) tout d'abord il y à création d'un ficher qui récupére toutes les données émises par l'agent, puis (l2) la variable de l'agent récupére les valeurs émises (Son code) et au final (l3) il permet de stocker les informations consernant l'agent (C'est à dire se qu'il a entré, où il est allé... => Cela fonctionne comme des cookies mais il ne sont pas visible par l'agent et par nous même, et ca fichier s'auto détruit au bout de 30min ou à la fin de la connexion);


0 <?
1 session_start();
3 ?>

En revanche je ne comprend pas pourquoi il y a une recréation d'un nouveau fichier qui récupére les informations a moin que se fichier n'ai pas été supprimé et donc il ne fait que être complété.
Est que c'est cela ?
0
Utilisateur anonyme > Jean
28 mai 2008 à 16:05
session_start(); crée une session/fichier si il n'existe pas
si la session/fichier existe déja, session_start(); ne fait que lire les informations de la session (du fichier)

il n'y a pas de recréation d'un nouveau fichier si il existe déjà
0