le tableau $_SESSION avec des frames

le tableau $_SESSION avec des frames - PHP - Programmation

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 :)
 

Reply

Marsh Posté le 18-03-2005 à 14:43:33   

Reply

Marsh Posté le 18-03-2005 à 14:53:05    

Les frames, c'est le mal.:o
Si tu déclares ta session dans une frame et que tu veux l'utiliser dans une autre, effectivement ça risque de pas marcher...:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-03-2005 à 14:55:05    

utiliser les frames avec php !!
jamais vu ca !


---------------
Nos estans firs di nosse pitite patreye...
Reply

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 ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

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

Reply

Marsh Posté le 22-03-2005 à 16:28:08    

bah une session ca génère aussi un cookie si je ne m'abuse ;)

Reply

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)

Reply

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 !

Reply

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.
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 !


 
 
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();


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

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 ??

Reply

Marsh Posté le 22-03-2005 à 17:02:02   

Reply

Marsh Posté le 22-03-2005 à 17:02:38    

esox_ch ? il est dit ou que la base est du php5 ? :p

Reply

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


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

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 ?

Reply

Marsh Posté le 22-03-2005 à 17:27:59    

Reponse 5 posts plus haut (mon avant dernier post)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

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

Reply

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


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

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.

Reply

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 ^^

Reply

Marsh Posté le 23-03-2005 à 08:09:34    

fnemo a écrit :

On en est a la 4.3.10 ^^


 
5.0.3 [:aloy]


---------------
Can't buy what I want because it's free -
Reply

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

Reply

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!

Reply

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)  :non:  

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed