Au début de mon index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <?php
session_start();
class gens {
var $id;
var $nom;
var $groupe;
var $mail;
var $titre;
var $avatar;
}
if (!isset($_SESSION['user'])) {
$_SESSION['user'] = new gens();
$_SESSION['user']->id = 0;
$_SESSION['user']->nom = 'Invité';
$_SESSION['user']->groupe = 0;
}
?> |
N.B. Quand j'authentifie la personne, les valeurs de l'objet sont remplies avec ses valeurs. Non connecté, il a une sorte de compte invité à droits restreints.
Toujours dans index.php, si je mets:
<div>test: <?php echo $_SESSION['user']->id; ?></div>
Il y a bien test: 0
Si j'appelle une fonction affId():
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| function affId() {
new Ajax.Request(
'affId.php',
{
method: 'get',
requestHeaders: ['Set-Cookie', 'PHPSESSID=' + sid],
parameters: {'sid': sid},
onComplete: gestionReponseAffId
}
);
}
function gestionReponseAffId(xhr) {
$('aff').innerHTML = xhr.responseText;
} |
sid contenant le phpessid (vérifié), mais j'ai essayant sans le parameters et sans le resquest headers, dans tous les cas, aucune différence.
le affId.php contenant:
1 2 3 4 5 6
| <?php
session_start();
$sid = $_GET['sid'];
header("Set-Cookie: PHPSESSID=".$sid);
echo $sid."ID: ".$_SESSION['user']->id;
?> |
Ca me renvoit bien le sid, mais pas le $_SESSION['user']->id.
J'ai essayé, sans le get du sid et sans le header set-cookie, ca ne marche pas mieux.
Et tant que ce mécanisme de session ne veut pas fonctionner, je suis bloqué.
Mes requetes en base étant conditionnées par exemple par le groupe de l'utilisateur ou son id, et j'aimerais garder en session plutot que tout passer en javascript et en clair.
Partager