le tableau $_SESSION avec des frames - PHP - Programmation
Marsh Posté le 18-03-2005 à 14:53:05
Les frames, c'est le mal.
Si tu déclares ta session dans une frame et que tu veux l'utiliser dans une autre, effectivement ça risque de pas marcher...
Marsh Posté le 18-03-2005 à 14:55:05
utiliser les frames avec php !!
jamais vu ca !
Marsh Posté le 18-03-2005 à 15:43:38
utilisation des pseudo-frames et include conditionnel de la page d'admin (en fonction de $_SESSION['droit']== 'SuperBigBoss'])
Citation : Tous les tutoriels sont pareils |
ben tu en li un sur les pseudo-frames, tu vire tes frames classique (spa bien), et si ça marche tjs pas, tu reviens nous voir
Marsh Posté le 22-03-2005 à 16:06:22
passe par des cookies si tu veux a tout prix utiliser tes frames avec du php et des sessions
Marsh Posté le 22-03-2005 à 16:28:08
bah une session ca génère aussi un cookie si je ne m'abuse
Marsh Posté le 22-03-2005 à 16:29:58
ca genere une sorte de cookie cote serveur . c obligatoire
cote client, c autre chose ($_COOKIE)
Marsh Posté le 22-03-2005 à 16:39:30
Mets un session_start ou un session_register au debut de chaque page désirée et ça devrait pas poser de problème... mets un session_destroy en cas de déconnexion volontaire ou de fait.
Les frames n'ont rien à voir là dedans, hormis que toutes tes pages PHP sont isolées entre elles, donc si tu veux utiliser une session, il faut la rappeler à chaque fois... attention aux failles de sécurité avec ce système !
Marsh Posté le 22-03-2005 à 17:00:34
Snoopy71 a écrit : Mets un session_start ou un session_register au debut de chaque page désirée et ça devrait pas poser de problème... mets un session_destroy en cas de déconnexion volontaire ou de fait. |
Je crois que tu en est resté a php4 toi... en php5 session_destroy , etant basé sur session_register, lui meme basé sur le register_global, est devenu inutile ==>
$_SESSION = array();
$_SESSION = unset();
Marsh Posté le 22-03-2005 à 17:02:02
salut,
les sessions avec des frames ne devraient (pas testé) poser de pb coté php, à part un pb de lenteur (cf http://fr.php.net/manual/en/functi [...] -close.php).
Verifies que tu aies bien un session_start() ou session.auto_start a 1.
Peut etre aussi qu'un autre bout de code detruit ton tableau $_SESSION ??
Marsh Posté le 22-03-2005 à 17:03:55
Il dit ou que c'est du 4? Et de tout façon cette technique est vieille et depassée, elle doit etre abandonnée parcequ'elle porte a des trou de secu gros comme des ballons de foot
Marsh Posté le 22-03-2005 à 17:06:30
esox : je pense qu'il y a une maniere de parler ... bref c'est un autre sujet .
pour en revenir au sujet, si c du php4, tu detruis comment ta session autrement que par session_destroy ?
Marsh Posté le 22-03-2005 à 17:27:59
Reponse 5 posts plus haut (mon avant dernier post)
Marsh Posté le 22-03-2005 à 17:33:46
un unset() de $_SESSION en php4 ? pas tres clean ... le fichier de session existe toujours cote serveur
Marsh Posté le 22-03-2005 à 17:52:16
C'est de toutes facon mieux que qqch qui ne marchera que si le serveur est en register_global ON
Marsh Posté le 22-03-2005 à 18:14:53
http://fr3.php.net/manual/fr/ref.session.php
http://fr3.php.net/manual/fr/funct [...] estroy.php
Je n'en dirai pas plus car la discution risque de tourner au vinaigre...
Sur ce, je vais retourner à mon préhistorique PHP4.
Marsh Posté le 22-03-2005 à 21:00:05
euh, $_SESSION et les fonctions associees (session_regenerate_id; session_destroy...) ne sont pas liees au register_global ON ... qui est depuis la fin de la 4.1.2 devenu obsolete et de base mis a OFF.
On en est a la 4.3.10 ^^
Marsh Posté le 23-03-2005 à 08:09:34
fnemo a écrit : On en est a la 4.3.10 ^^ |
5.0.3
Marsh Posté le 23-03-2005 à 09:31:44
branche 4 => 4.3.10
branche 5 => 5.0.3
branche 4 et branche 5 sont deux "langages" differents
enfin bon c'est pas trop grave
Marsh Posté le 23-03-2005 à 10:31:50
Babar82,
j'ai pas tout lu, p-e que quelqu'un a répondu déjà....
Pour que ca marche, il faut que tu mette session_start dans ta page ou tu construit ton frameset et c'est tout
Pourquoi:
- quand tu ouvres une session, il crée un identifiant de session qui ensuite se promaine, soit dans un url soit est stocké dans un cookie
- quand tu utilises un frameset, il y a de forte chance qu'il génère un identifiant par frame s'il l'identifiant n'est pas généré auparavant!
Marsh Posté le 23-03-2005 à 13:32:11
esox_ch a écrit : Je crois que tu en est resté a php4 toi... en php5 session_destroy , etant basé sur session_register, lui meme basé sur le register_global, est devenu inutile ==> |
Faux, cf http://www.php.net/session_destroy (c'est session_unset qui est déprécié, pas session_destroy ).
De plus, comme indiqué ici : http://fr3.php.net/manual/en/funct [...] -unset.php , il ne faut jamais faire unset($_SESSION)
Marsh Posté le 18-03-2005 à 14:43:33
Bonjour,
j'ai donc un début de site avec des frames (appelées avec un $_GET[''].
Une premiere page rempli un formulaire, et les infos sont stockées dans le tableau superglobal $_SESSION[].
Mon probleme vient du troisieme frame qui ne s'affiche que si la session est "administrateur" ($_SESSION['droit']== ... ) .
Celui ci s'affiche bien lors de l'appel de la premiere page (contenant dans un frame le remplissage du tableau $_SESSION , juste apres un session_start() ) mais plus des l'appel d'une autre page:
(Undefined variable: _SESSION in ..)
Tous les tutoriels sont pareils, ils expliquent bien qu'on peut utiliser des variables session.... il suffit de ... mais ca marche pas.
Est ce a causse des frames.? je ne pense pas (?) ou alors expliquez moi comment corriger mon probleme.
D'avance merci