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 ![[:aloy] [:aloy]](https://forum-images.hardware.fr/images/perso/aloy.gif)
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