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
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 :
$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
***********************************************************************************************************************************
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]
*************************************************************************************************************************************
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 :
// code pour afficher le texte
<?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 :
<?php
session_start();
$msc = $_POST['msg'];
/*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!! */
$namec = $_POST['login'];/*pour cette variable pas moyen de la récupérer,elle provient aussi du fichier skin.html
include("skin.html" );*/
?>
************************************************************************************************************************************
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
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
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
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 :
<?
session_start();
$login="coucou";
$_session['login'] = $login;
echo $login ;
echo $_session['login'];
session_register('login');
?>
ce qui m' affiche coucoucoucou
Je ferme tout et je lance le 2eme fichier
Code :
<?
session_start('login');
$login1=$_session['login'];
echo $login1;
echo $_session['login'];
echo $login;
?>
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
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