Sessions?

Brindille
Invité n'ayant pas de compte PHPfrance

23 juil. 2005, 11:32

Bonjour,

Je relis mes docs de formation sur un caddy virtuel mais je ne comprends plus ces lignes de codes :
sessions_start();
if (!$PHPSESSID)
{
session_register('items');
}
else
if (! $items)
{
session_register('items');
}
Merci pour votre aide

Mammouth du PHP | 19672 Messages

23 juil. 2005, 12:02

Qu'est-ce que tu ne comprends pas au juste ?

Ça, ce sont des lignes de vérification et d'initialisation de variables de session, mais c'est aussi un peu n'importe quoi.

La seconde ligne vérifie la non existence d'un identifiant de session pour créer une variable de session: c'est idiot juste après le session_start() puisque l'identifiant dans ce cas existera de toutes façons.

Si je comprends ce que tu veux faire, voici un bout de code et l'explication:
<?php
sessions_start(); /* On lance la session (où on la prolonge si elle existait déjà) */
/* On vérifie l'existence de la variable de session "items" et si elle n'existe par on la crée */
if (!isset($_SESSION['items']))
{
    $_SESSION['items'] = array();
}
?>
Mais en fait la création de cette variable n'est pas utile: tu peux la créer au moment de l'utiliser ou la mettre à jour si elle contient déjà des données.

Comme c'est une liste d'article (à priori ?) c'est un tableau, donc on l'initialise en tableau ce qui te permet d'ajouter des articles ou d'en retirer.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Brindille
Invité n'ayant pas de compte PHPfrance

23 juil. 2005, 12:59

En fait je ne comprends plus :
if ( ! $PHPSESSID)
Ici on regarde si une session a été initialisée?

Cette partie de code est inclut dans ma page qui ajoute des quantités au panier.

Et je comprends pas non plus d'où vient 'items' puisque cette variable n'apparait plus après.

Au final, je n'ai finalement besoin d'utiliser que session_start ()?

Une question: J'ai pu lire sur les forums que session_register() était obsolète?

Mammouth du PHP | 983 Messages

23 juil. 2005, 13:09

Au final, je n'ai finalement besoin d'utiliser que session_start ()?
Oui ca suffit amplement.
Une question: J'ai pu lire sur les forums que session_register() était obsolète?
Oui c'est obsolète maintenant.
Il suffit de faire $_SESSION['ta_variable'] = 'sa valeur';
De même, session_is_registered('var') est obsolète, il vaut mieux faire:
<?php
session_start();
if(isset($_SESSION['var'])){
//traitement...
}
?>