Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/05/2007, 10h55   #1
Invité régulier
 
Inscription : février 2006
Messages : 47
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 47
Points : 9
Points : 9
Par défaut [Cookies] Transmission du PHPSESSID dans url

Bonjour à tous,

j'ai une petite colle qui m'occupe depuis plusieurs jours, je pense que vous pourrez m'aider

Dans ma page index.php :

je créé une session avec session_start();
j'initialise par exemple $_SESSION['test']=1;

J'ai besoin de transmettre la session via l'url à une page externe (que j'utilise dans index.php - ajax) et je fais comme ça : mapage.php?PHPSESSID=session_id();

vu que j'ai transmis l'id de session, je m'attendais à ce que mapage.php puisse avoir accès à la session or ce n'est pas le cas, dans mapage.php j'ai
session_start();
print $_SESSION['test'] //ne renvoie rien , la session n'est pas conservé

Que se passe-t-il ?
1- je n'applique pas la bonne méthode de transmission ?
2 - mon serveur refuse le passage de session en url ?

Si vous avez des idées, je suis preneur !!

Merci à vous,

Tibo
tiboel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 11h15   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Quelle est la raison de cette transmission manuelle, puisque PHP s'en charge en temps normal ? Quelle est la configuration du serveur pour la transmission (cookie et/ou use_trans_sid) ?

Pour être portable, je vous recommande d'utiliser : 'mapage.php?' . session_name() . '=' . session_id(); et n'oubliez pas de récupérer cet identifiant et de le passer à session_start comme paramètre.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 12h01   #3
Invité régulier
 
Inscription : février 2006
Messages : 47
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 47
Points : 9
Points : 9
pas mal le coup de session_name ?

Pkoi je veux transmettre l'id de session car je construits le site comme une API cad que j'utilise :

$url=$Main->getRoute(700,array(session_name()=>session_id()));
$xml = new SimpleXMLElement($url, NULL, TRUE);

la page 700 doit pouvoir être accessible de l'extérieur pour peu que l'on est appliqué une méthode login pour avoir un id session valide.

voici le fichier ini que j'utilise

session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 5 5
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path C:\PROGRA~1\EasyPHP\\tmp\ C:\PROGRA~1\EasyPHP\\tmp\
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0
tiboel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 13h28   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par tiboel
2 - mon serveur refuse le passage de session en url ?
Oui du fait de session.use_trans_sid à Off mais vous pouvez le faire "manuellement" comme vous tentez de le faire.

Citation:
Envoyé par tiboel
1- je n'applique pas la bonne méthode de transmission ?
Oui comme dit plus haut, sur la page de "réception", il faudrait pour récupérer la session à partir de son identifiant :
Code :
1
2
3
4
5
if (isset($_GET[session_name()])) {
    session_start($_GET[session_name()]);
} else {
    // Arrêter le script ?
}
Ces techniques facilitent le vol de session du fait d'une transmission visible de l'identifiant, mais dans le cadre d'une API c'est peut être déjà moins grave.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 13h37   #5
Invité régulier
 
Inscription : février 2006
Messages : 47
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 47
Points : 9
Points : 9
Merci je vais essayer, c'est la première chose auquel j'avais pensé mais que je n'avais pas essayé car la doc php donne :

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).

donc je pensais qu'il n'était pas nécessaire de récupérer de passe le session id en param de session_start qui n'en accepte pas à priori

Merci !!

Tibo
tiboel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 13h41   #6
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Oui, désolé, c'est une erreur de ma part. C'est session_id qu'il faut appeler avant session_start pour fixer l'identifiant :
Code :
1
2
3
4
5
6
if (isset($_GET[session_name()])) {
    session_id($_GET[session_name()]);
} else {
    // Arrêter le script ?
}
session_start();
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 13h44   #7
Invité régulier
 
Inscription : février 2006
Messages : 47
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 47
Points : 9
Points : 9
Ca me semble plus propre à intégrer dans mon script !!!

Merci beaucoup en tout cas et encore bravo pour la réactivité ,

Tibo
tiboel est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h10.


 
 
 
 
Partenaires

Hébergement Web