J'ai une classe qui définit diverses variables de session. Après avoir défini la variable de session, je fais un vidage var de SESSION et j'obtiens une sortie de tous. tout va bien jusqu'ici. Ensuite, je navigue vers une autre page.Pourquoi mon tableau SESSION est-il OK sur une page mais vide sur une autre?
session_start(); // i call this right after opening the php tag
var_dump($_SESSION); // i call this after setting the variables
et c'est vide cette fois?
Réglage mes sessions
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC))
{
$_SESSION['atid'] = $row['autotaskid'];
$_SESSION['bmsid'] = $row['bmsid'];
$_SESSION['shavlikid'] = $row['shavlikid'];
$_SESSION['cpid'] = $row['cpid'];
}
Essayer d'utiliser les variables sur une autre page
$autotaskid = $_SESSION['atid'];
$tsql = "SELECT COUNT(tblBackupArchive.StatusID) AS total, tblBackupArchive.StatusID ".
"FROM tblBackupArchive INNER JOIN ".
"tblBackup ON tblBackupArchive.BackupID = tblBackup.BackupID ".
"GROUP BY tblBackupArchive.StatusID, tblBackup.ClientID ".
"HAVING (tblBackup.ClientID = " . $autotaskid . ")";
Résultats dans
Undefined index: atid in C:\Program File...
Je me suis assuré que je suis l'émission du début _session(); fonction avant que tout autre code est exécuté sur chaque page qui les utilise.
Un autre point important: la page php qui appelle la méthode définissant les variables dans une iframe. Quand j'ouvre la page dans un nouvel onglet/fenêtre, les sessions sont correctement définies. C'est presque comme si la fenêtre principale avait des variables de session et que chaque iframe garde sa propre séparation.
Des idées?
Billy
+1 Enseigner un homme à pêcher .... –
Salut merci pour vos suggestions. J'ai ajouté le contre-test que vous avez posté. La chose intéressante est qu'après avoir essayé ce test, puis en naviguant vers la page où mes sessions sont définies, puis en passant à l'autre page, au lieu de voir le tableau de session vide, je vois maintenant le compteur. Le problème doit alors être avec le code définissant les sessions. J'ai mis les sessions dans une méthode utilisée seulement par la première page. peut-il être qu'ils sont détruits après avoir été utilisé? – iamjonesy
@Jonesy le code que vous avez posté ici est correct. Bien que je le fasse avec une seule instruction '$ _SESSION ['savedata'] = $ row;' et l'utilise ensuite comme $ autotaskid = $ _SESSION ['savedata'] ['atid']; 'parfois cela peut aider. sinon - vous devez ajouter var_dump ($ _ SESSION); dans autant d'endroits que vous pouvez –