L'ID de session change de page en page [résolu] - PHP - Programmation
Marsh Posté le 21-08-2006 à 21:13:36
Bon, pour ceux que ça intéresse, souci résolu en passant par un .htaccess dans le répertoire en question, et en y mettant :
php_flag session.use_cookies off
php_flag session.use_trans_sid on
(et en supprimant les lignes ini_set dans le code bien sûr )
Marsh Posté le 22-08-2006 à 14:09:49
par curiosité, pourquoi tu veux absolument l'identifiant de session qui passe par url ?
Marsh Posté le 22-08-2006 à 16:27:06
L'appli en question c'est pour répondre à un besoin perso : en gros, un mini "wap"mail, consultable depuis un téléphone portable, pda, ...
Le souci, c'est que mon portable n'accepte pas les cookies , donc obligé de passer l'ID de session dans l'URL.
Marsh Posté le 21-08-2006 à 19:24:02
Bonjour,
je développe actuellement une petite appli PHP, dans laquelle j'utilise des sessions. Pour passer les sessions d'une page à une autre, je n'utilise pas les cookies (le client ne les accepte pas), mais le passage d'un ID de session dans l'URL.
Le php.ini contient session.use_cookies = 1, et je ne souhaite pas changer cette valeur.
Afin de forcer le passage de l'ID dans l'URL, j'ai
ini_set('session.use_cookies', false);
au début de chaque page.
La première page de l'appli est une page de login. En observant le formulaire, on voit que PHP a bien ajouté un champ :
<input type="hidden" name="PHPSESSID" value="cb60b2fbf293e600cd4a42866126db49" />
dans le formulaire, en prévision de la suite
Enfin, après m'être connecté, je vois que les différents liens de la page ont bien été modifiés pour ajouter l'ID de session, mais celui-çi est différent de celui de la page de login
Au début de ma page de login :
<?php
ini_set('session.use_cookies', false);
session_start();
unset($_SESSION['mail']);
unset($_SESSION['messages']);
?>
La seconde page :
<?php
ini_set('session.use_cookies', false);
session_start();
if(!isset($_SESSION['mail']))
{
$username = $_POST['username'];
$password = $_POST['password'];
$server='pop.free.fr';
$port=DEFAULT_PORT;
$mail = new wapmail();
$mail->setServer($server, $port);
$mail->setLogin($username, $password);
$_SESSION['mail'] = $mail;
if(!$mail->connect())
die("Error logging in" );
}
else
$mail = $_SESSION['mail'];
?>
Est-ce qu'il faut rappeler obligatoirement set_ini à chaque nouvelle page ?
Comment dire à PHP lors de l'arrivée sur la seconde page d'utiliser l'id de session envoyé par la première page ? La doc précise que session_start() est capable de récupérer l'ID reçu par POST, mais ça n'a pas l'air de marcher des masses
Message édité par freds45 le 21-08-2006 à 21:13:51
---------------
Filmstory : gardez trace des films que vous avez vu ! :D