FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » impossible de récupérer variable de session depuis une page frame
 

impossible de récupérer variable de session depuis une page frame

Il y a 301 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : impossible de récupérer variable de session depuis une page frame
 
Plus d'informations

bonjour à tous,
pour info: je tourne avec php5,apache 2 ,linux64bit
mon problème:je n' arrive pas à récuperer mes variables de session dans  une page avec deux frames qui font appel  toute les deux à un fichier php!!  
explication des fichiers utilisés en simplifiant le code pour atteindre le but recherché:
les fichiers permettent d' interfacer un petit chat donc :
 
 fichier index.html qui permet d' enregistrer par l' intermediaire d' 1 FORM method POST les utilisateurs et mot de pass
 
 fichier logindatabase.php qui recoit les variables du fichier 1 et verifie dans la base de donnée, si ok alors démarrer une session  et excécuter le fichier :
 
 main.php qui est la page qui contient les  frames. Ces frames contiennent les deux fichiers.php qui ont pour but :
 
1er fichier        refresh.php   de la   1er frame              Afficher message
 
2eme fichier     post.php       de la    2eme frame           saisie des messages
 
 
 
 
c' est à partir d' ici que le problème de mes variable de session commence, les variable de la session n' existe plus apparement lors de l' éxécution des fichiers sources de chaque frame  
 
alors j ai essayé plein de truc vu que j ai un bouquin php genre :
 
meme en passant dans le fichier de configuration php la variable global session un truc comme ca à    on  et bien rien  
 meme avec session_register(); rien non plus  
meme avec le nomage et l' utilisation  $_session("login" )=$login;
 
voila donc j ai l' impression que je perds la session lorsque je  demande au script du fichier login.php d' exécuter le fichier  main.php qui affiche la page avec les frames, qui eux meme font appel à un fichier.php dans lequel je veus récuperer mes variables php.
 
pour info qui nous interesse dans le script : login.php            
 
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
  extract($_POST);

session_start();
    $_session["login"] = $login;
SESSION_REGISTER("login" );  
    pour cette instruction je ne veus pas rester en global_session on, c' était pour tester
die("<META HTTP-equiv='refresh' content='0;URL=main.php'>" );exit;
 
je dois utiliser cette instruction pour faire appel au fichier  
sinon avec l' instruction  include ca ne marche pas (page blanche) d' ailleur je me demande si c' est pas la le probleme  et si il y a une solution pour ca aussi
 
bon jusque la mes variable existe!!!!! et ca marche mais après l' ouverture du chat donc frame.php echo session_id() me renvoit lors des test rien  
 
 
et dans les autre fichier php j' utilise session_start();
 
derniere infos ce problème n' existe plus des lors que le fichier index.html et login.php qui recoit les variables  du formulaire est  executé à l' interieur de la page qui contient les frames donc en fait la premiere page qui s' ouvre est la page avec les frames et les autres fichiers sont executé à l' interieur de celle ci  mais pour des raison d' hestétique ca ne va pas!!
voila si quelqu' un à une idée de genie parcque la je sèche et d' ailleur je comprend pas trop pourquoi  meme avec session_register et global_session à on ca ne marche pas !!
 
merci d' avance pour les réponse @bientôt!!


Message édité par dragonix le 20-11-2006 à 09:44:34

Profil : Pointeur
Plus d'informations

ca parait bizarre tout de meme
 
on peut avoir un peu plus de code ?

Plus d'informations

slt et merci beaucoup pour le coup d' oeil  
 
je le redis encore ca fonctionnait très bien quand j' utilisais que des includes et quand je ne chargait pas de nouvelle  page avec frame donc..... mais pour des raisons esthétique et de fonctionnement je veus utiliser cette arboréscence
j ai eus le meme problème lorsque jai voulu récuperer des variables depuis une nouvelle fenetre ouvetre avec la fonction  window.open.....   la aussi après plus de variable ..  
 
donc mon but obtenir la variable de session lors de l' exécution des fichiers post.php skin.php et cUsers.php

Code :
  1. $login


 
 
Fichier login.php
(je met juste le code util c.à.d jusqu'au démmarrage session et execution du fichier main.php qui affiche ma page de frames
***********************************************************************************************************************************

Code :
  1. <?
  2. if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
  3.   extract($_POST);
  4.     session_start();
  5.     $_session['login'] = $login;
  6.     session_register('login');[#0000ff]// bon cette foction normalement n' y est pas mais comme ca     [/#0000ff]                                    [#0000ff]//fonctionnait pas j' ai voulu essayer de les enregistrer [/#0000ff]  
  7. die("<META HTTP-equiv='refresh' content='0;URL=main.php'>" );
  8. exit;
  9. [#0000ff][#0000ff]//include('main.php'); cette fonction ne veus pas me charger la page de frame du coup j' utilise die....  
  10. // On inclut le formulaire d'identification[/#0000ff][/#0000ff]
  11.  
  12.   }


 
**************************************************************************************************************************************
 
fichier main.php  
Fichier charger d' afficher les frames et les fichiers sources des frames:
 

Code :
  1. <html>
  2. <head>
  3.            
  4. <frameset rows="*,50%,10%" noresize >
  5.     <frameset cols="*,150" noresize>
  6.       <frame name="fra_messages" id="fra_messages" src="refresh.php3" noresize scrolling="auto">
  7.       <frame name="fra_users" id="fra_users" src="cUsers.php" noresize scrolling="auto">
  8.     </frameset>
  9.     <frame name="fra_saisie" id="fra_saisie" src="post.php3" noresize scrolling="auto">
  10. </frameset>


 
*************************************************************************************************************************************
et les deux fichiers refresh.php et post.php la ou je perds mes variable de session à première vue
le fichier  refresh.php qui est chargé d' afficher les messages ne se sert pas des variable pour l' instant donc lui ca va pour le moment mais peut etre que par la suite j' en aurait aussi besoin ici de ces variable de session
 
fichier refresh.php

Code :
  1. // code pour afficher le texte  
  2.    <?php include("repmessages/messages.txt" ); ?>


***************************************************************************************************************************************
fichier post.php
(chargé de récuperer les variables $msg et $login et d' enregistrer le message dans un fichier texte)
 

Code :
  1. <?php
  2. session_start();
  3. $msc = $_POST['msg'];
  4. /*La récupe de cette variable fonctionne très bien vu que le fichier qui la POST et  qui se nome             skin.html  est exécuté dans la frame ou en tout cas  il est inclus par lafonction include  en fin de ce script donc no problem la variable existe!! */
  5. $namec = $_POST['login'];/*pour cette variable pas moyen de la récupérer,elle provient aussi du fichier skin.html
  6. include("skin.html" );*/
  7. ?>


************************************************************************************************************************************
le fichier skin.html
Le fichier chargé d' afficher la zone de saisie et d' envoyer par la méthode POST les variables dans le fichier post.php

Code :
  1. <form name="send" method="post" target="fra_saisie" id="fra_saisie" action="post.php3">
  2. <input type="hidden" name="[#ff0e00]login[/#ff0e00]" value="[#ff0e00]<?php echo FilterText($namec); ?>[/#ff0e00]">
  3. <table width="100%" border="1" bordercolor="#000099" bordercolorlight="#0000CC" bordercolordark="#000066" bgcolor="#000F22" cellpadding="0" cellspacing="0">
  4. <tr bordercolor="#000099"><td align="center"><input type="text" name="[#ff0e00]msg[/#ff0e00]" size="100"><script language="JavaScript">[#ff0e00]document.send.msg.focus()[/#ff0e00];</script></td></tr>
  5. </table>
  6. </form>


 
*************************************************************************************************************************************
 
fichier cUser.php
qui lui aussi doit récuperer la  variable login  de session pour l' instant mais peut etre plus par la suite et la aussi pas moyen  
 

Code :
  1. <?
  2. session_start();
  3. <? if (!(file_exists("datas/" . $login))) { ?>
  4.     <script language="javascript">
  5.         alert("Vous avez été��déconnecté� merci de bien vouloir vous reconnecter." );
  6.         parent.close();
  7.     </script>
  8. <? } ?>


Message édité par dragonix le 20-11-2006 à 09:45:23
Profil : Pointeur
Plus d'informations

balise [code] :o
 
et édite ton message stp :o
 
et puis j'ai dit un peu plus, pas tout :o

Profil : Pointeur
Plus d'informations

et j'ai l'honneur de t'apprendre que le php est case sensitive :o
donc $_SESSION est différent de $_session, qui lui est différent de $_SeSsIoN :o

Plus d'informations

oui je me rappelle plus très bien parcque j ai fais  pas mal d' essai mais j ai testé en maj parcque dans mon bouquin de php   eux il mette $_SESSION en majuscule alors va comprendre et d' ailleurs meme pour  $namec = $_POST['login']; eux il mettent $namec = $_POST["ogin"]; alors la aussi je comprends pas   bon voila  

Plus d'informations

suis désolé pour la tonne de code

Plus d'informations

bon j ai pas compris" et edite ton message "

Profil : Pointeur
Plus d'informations

va lire l'aide et les règles :jap:

Plus d'informations

bon voila  j ai edité le code je m' excuse encore pour ce message un peu brouillon.
et puis pour la casse j' était au courant malgré mes connaissances restreintes en programmation ,mais il faut dire qu' il y a matière à réfléchir surtout quand on se trouve devant un problème et qu' on se dit qu' un bouquin  sur php va nous etre util et que tout le long du tom les s_session et bien d' autre sont en majuscule j' ai vérifié comme pour la syntaxe  genre $_SESSION["login"]; avec de guillemet au lieu des aprostrophes, alors forcément après on ne sait plus quoi écrire et on ne sait même pas si ca fonctionne et qui dit la vérité en tout cas pas ce bouquin puisque ca marche pas!!


Message édité par dragonix le 20-11-2006 à 09:48:32
Plus d'informations

du coup c' est quoi tout en minuscule  $_session...session_start...mais par exemple $_POST s' écrit bien $_POST ca c bien en majuscule

Plus d'informations

pour simplifier mon problème  
si on créer un premier script php dans lequel on démarre une session et que l' on déclare une variable $login que l' on affiche ensuite fin de script
ensuite on fait un deuxième script qui n' a aucun lien avec le premier  et qui sera excecuté séparément, dans ce sript on demande de rouvrir la session, et d afficher la variable ce qui est possible avec $_session['login'] .  
 
si on excécute le premier fichier il affiche la variable on ferme tout,et en suite on exécute le 2em fichier normalement il doit la aussi récuperer la variable ?
sinon a quoi sert cette fonction de réouverture de session ?
et moi j ai l' impression que ca, ca ne fonctionne pas d'ailleurs le session_register() devrait lui aussi enregistrer en dur les variables et pourtant j ai essayé rien pas moyen des que je sorts du script principal plus de variable!!!
 
test simple  
bon voila je viens de faire le test avec les deux fichiers  
 fichier 1

Code :
  1. <?
  2. session_start();
  3. $login="coucou";
  4. $_session['login'] = $login;
  5. echo $login ;
  6. echo $_session['login'];
  7. session_register('login');
  8. ?>


 
ce qui m' affiche coucoucoucou
Je ferme tout et je lance le 2eme fichier  

Code :
  1. <?
  2. session_start('login');
  3. $login1=$_session['login'];
  4. echo $login1;
  5. echo $_session['login'];
  6. echo $login;
  7. ?>


 
rien ne s' affiche donc la session qui soit disant est enregistré  en mémoire ou en dur jsais pas trop elle est ou?


Message édité par dragonix le 20-11-2006 à 11:32:13
Plus d'informations

bon ca yes alors c' était bien une erreur de case :
donc c' est bien en fait :
$_SESSION['login'] en majuscule comme dans ce tom autant pour moi mais ce qui m' as induit en erreur depuis le départ c que j' avais récuperer un script de chat qui à premiere vue fonctionnait puisque tout les fichier étaient include les un dans les autres donc du coup je ne perdais pas mes variables  récupérées avec la méthode POST donc je ne sortais pas du script initial je pense, mais en fait la fonction $_session['login'] ne fonctionnais pas pfffffffffff  
enfin je suis ravis que ca fonctionne j' ai refait le test des deux fichiers et c' est bon
merci d' avoir insisté pour la casse c' est vrai que je pigeais plus vraiment, le résultat est la
@bientôt


Message édité par dragonix le 20-11-2006 à 13:46:35

Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » impossible de récupérer variable de session depuis une page frame
 

Annonces Google
Publicité