Les sessions en PHP

stéphanie -  
fras34 Messages postés 92 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, je suis en train de faire un système de visites en PHP, et j'aimerais voir le suivi d'un visiteur.

pour cela, j'utilise les sessions et en particulier session_id() mais quand on passe d'une page à l'autre l'id de la session change, comment faire pour garder la meme session_id() dans chaque page?

j'ai essayer de placer $_session['id2'] = session_id(); mais la aussi
$_session['id2'] change et je ne comprend pas pourquoi.

Merci de m'aider
A voir également:

5 réponses

kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
au début de cahque fichier, j'imagine que tu as bien mis :
<?php
session_start();
?>

Et bien quand tu fait appel à uune autre page, tu met dans ton lien :
$url = 'page2.php?SID='.session_id();
0
stéphanie
 
il n'y a pas autrement que de passer le sid dans le lien???
pcq sinon je dois rajouter ça dans tous les liens c'est pô pratique
0
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
Tu te fais une fonction lien comme suit :
function lien($chemin)
{
 return $chemin."?SID=.$session_id();
}
0
fras34 Messages postés 92 Date d'inscription   Statut Membre Dernière intervention   36
 
Salut,

tu as acces au php.ini ? ou tu es sur un hebergement mutualisé ?
0
stéphanie
 
En fait jvais essayé d'expliquer pour etre claire...
j'ai un site hébergé sur la centrale de l'entreprise (c'est une obligation)

je voudrais faire des stats sur les visites du site mais je veux récupérer les infos des visiteurs sur mon serveur donc j'ai fait un script du style :

<div style="display:none">
<img src="http://monserveur/mapage.php">
</div>


et dans ma page PHP j'ai mis :

<? session_start()
if (isset($_session['id_sess']))
{
         $_session['id_sess']=session_id();
}
// ensuite tous les autres infos du visiteurs
...



Je veux faire cette manière comme ça un visiteur unique de mon site sera identifié par une id de session.

Bon tout ça fonctionne sauf que lid change à chaque page.
Par contre si j'héberge mon script sur le serveur centrale cela fonctionne impec.

J'aimerais que mon moduel de stat soit bien indépendant de mon site car par la suite j'utiliserais ce module pour plusieur site et consulteré mes stat de tous les site à partir de ce module.

Donc pour résumé : si à partir d'une page de SERVEUR1 je fais appel à une page se trouvant sur SERVEUR2 qui contient des sessions les session_id change à chaque appel de ce script

Par contre si le script se trouve sur le meme serveur cela fonctionne.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fras34 Messages postés 92 Date d'inscription   Statut Membre Dernière intervention   36
 
Les sessions sont des fichiers enregistrer sur le server dont le nom est l'id de session. Cet id peut être suivit de 2 manieres:

1°- Comme te l'a expliqué kij_82
2°- par une sorte de cookie

Dans le 2ème cas, le mode par defaut dans le php.ini (fichier de conf de php) doit être mis à
session.use_cookies = 1

Là l'id de session n'a pas besoin d'être passé par l'url.

Ce qui eplique la difference entre ton server de test et celui de ta boite.

Mais si c'est des stats que tu veux le mieux cest d'analyser les fichiers log de ton server
0