korben080 Posté(e) le 24 août 2004 Partager Posté(e) le 24 août 2004 Lu !! j'ai un pti soucis avec les Sessions. Donc j'ai une page dans la quelle je déclare ma session (session_start() et tout le tralala) Ensuite je fais un include mais si je fais un include avec un chemin relatif (./news/news.php) pas de problème je peux récupérer un élément stocker dans l'object session dans ma page appelante. Par contre si je met un include avec un chemin absolu (http://www.adresse/news/news.php) la session est introuvable. Si je fais un isset($_SESSION['maVar']) dans cette page "news.php" je me brosse. Me direz vous : pourquoi mettre un chemin absolu ci le relatif marche ? Le relatif marche du moment que l'on ne veut pas passer un paramêtre en methode get en même temps que l'include. donc: include ("./news/news.php") => marche include ("http://www.adresse/news/news.php") => marche mais plus de session include ("http://www.adresse/news/news.php?num=2") => marche mais plus de session include ("./news/news.php?num=2") => marche pas Bref ci quelqu'un pourrait me filer un chti coup de main ... Thx d'avance. Bye Lien vers le commentaire Partager sur d’autres sites More sharing options...
SyGEN Posté(e) le 24 août 2004 Partager Posté(e) le 24 août 2004 C'est pas un $_SESSION que tu dois faire mais un $_GET["tavar"] vu que c'est pas stocké dans ta session c'est passé en url. Lien vers le commentaire Partager sur d’autres sites More sharing options...
korben080 Posté(e) le 24 août 2004 Auteur Partager Posté(e) le 24 août 2004 re ! C'est gentil mais je ne suis pas completement débile. Bon aller c'est aussi un peu de ma faute je n'ai pas mi tout le contexte. Je m'explique: j'ai une page : -> afficherMembre.php elle permet d'afficher les info d'un membre. à cette page je lui envoie le numMembre pour savoir quelles tuples aller chercher dans la bdd. mais il y a 2 cas de figure. -> soit tu est un membre qui visite la fiche d'un autre membre. dans ce cas je veux cacher le mot de passe. -> soit tu est un membre qui visite ta fiche dans ce cas je veux afficher le mot de passe. Donc pour cela je fais ce test: "if($_SESSION['idMembre']==$_GET['numMembre'])" Donc le problème est que cette variable ($_SESSION['idMembre']) n'est pas instancié pour lui. Alors que dans les autres pages appelé avec un chemin relatif c'est bon. Bye Lien vers le commentaire Partager sur d’autres sites More sharing options...
SyGEN Posté(e) le 24 août 2004 Partager Posté(e) le 24 août 2004 Pourquoi tu te compliques la vie ainsi, te suffit de passer en post (ou en get mais humm) ces 2 variables dans affichermembre.php et les recuperer via $_POST et plus via un mix de $_SESSION et $_GET dans l'include.php pour faire ton test. Lien vers le commentaire Partager sur d’autres sites More sharing options...
korben080 Posté(e) le 24 août 2004 Auteur Partager Posté(e) le 24 août 2004 certe c'est faisable comme ceci mais je n'ai pas envie de passé des information de la session dans l'url. De plus ce sera le souc de faire passer tout ca en POST car pr l'instant j'appelle ma page par un lien donc apres fo ke je passe par un formulaire qui va etre envoyer lors du click sur mon lien donc la mise en place de javascript par la dessus. La methode Get est la je l'utilise et normalement ma Session possède déjà mon Id Membre pourquoi ne pas m'en servir . Si quelqu'un à une solution a mon problème de include avec les chemin relatif tou absolu... ce serait tres sympa Merci d'avance. bye Lien vers le commentaire Partager sur d’autres sites More sharing options...
SyGEN Posté(e) le 24 août 2004 Partager Posté(e) le 24 août 2004 certe c'est faisable comme ceci mais je n'ai pas envie de passé des information de la session dans l'url. Ben justement en post tu ne passe rien via l'url ... houhou. (tu n'as quand meme pas 60 vars a passer que je sache) Maintenant y a une autre soluce mais tout dépend de ta config c'est le session_register ou tu peux stocker l'info en global. Je privilégie pas cette solution et elle est a éviter si t'as virer les variables globales de ta config. Si pas, ben utilise le et ca réglera ton problème. Lien vers le commentaire Partager sur d’autres sites More sharing options...
warzi Posté(e) le 24 août 2004 Partager Posté(e) le 24 août 2004 include ("./news/news.php") => marche include ("http://www.adresse/news/news.php") => marche mais plus de session include ("http://www.adresse/news/news.php?num=2") => marche mais plus de session include ("./news/news.php?num=2") => marche pas lu quand tu fais les cas deux et trios il se passe ceci : le serveur se connecte a l'adresse indiquée le serveur de l'autre coté (qui peut être lui même mais le serveur s'en balance completement) lui renvoie la page (ce que tu recevrais si tu appelais cette page depuis ton browser) le premier serveur copie la reponse qu'il a recu dans son script et renvoie le tout a l'utilisateur pour le dernier, tu demande d'inclure un fichier nommé news.php?num=2 si tu trouves un fichier avec ce nom quelque part, tu dira au type qui a créé cela qu'il est un Lien vers le commentaire Partager sur d’autres sites More sharing options...
korben080 Posté(e) le 24 août 2004 Auteur Partager Posté(e) le 24 août 2004 SyGen => Oui c'est sur je n'ai pas 3 tonnes d'info mais dans ce cas je serais obliger de mettre du javascript pour déclancher le submit de mon formulaire,... je sais faire mais je trouve que c'est de la bidouille et je m'y refuse. Mais merci quand meme. Sinon je n'ai pas accès à la configuration de mon serveur. Warzy => Je c'est bien j'avais mi tout ca pour faire des exemples. Le seul cas qui m'interesse vraiment est le cas numéro 3: include ("http://www.adresse/news/news.php?num=2") => marche mais plus de session Tu me dis pourquoi cela ne marche pas (bien que je ne vois pas d'où viens le 2 eme serveur dont tu parles,...) mais aurais tu une solution à ce problème. Essayé chez vous. Une premiere page ki fixe une valeur ds la Session et qui possède un include comme celui ci dessus. et dans la seconde vous recupérez la variable dans la session. Moi ca ne marche pas, ou plustot je n'y arrive pas. Merci d'avance. Lien vers le commentaire Partager sur d’autres sites More sharing options...
warzi Posté(e) le 24 août 2004 Partager Posté(e) le 24 août 2004 la solution est de faire ton script plus intelligement tu crées une variable num qui est egale à 2 : $num=2; et ensuite tu apelle en relatif ta page include("./news/news.php"); et dans ton script, tu utilise cette variable num que tu viens de creer pour le deuxieme serveur, c'est simple. sur le net tu as une relation client serveur. le client demande une page et le serveur la lui donnes. Mais si ton serveur est un serveur php, il va d'abbord interpreter un code avant de renvoyer la reponse qui est un fichier que le client peut interpreter(html). quand tu demandes a php d'inclure la page http://www..., le serveur devient un client pour un autre serveur (qui peut être lui) et il va demander la page. Le serveur ne pouvant qu'envoyer comme reponse un fichier interpreté, l'identiffiant de session utilisé dans l'include sera l'identifiant du serveur, pas celui du client que tu es. Lien vers le commentaire Partager sur d’autres sites More sharing options...
korben080 Posté(e) le 24 août 2004 Auteur Partager Posté(e) le 24 août 2004 Ok Ok Warzy ! Je voyais pas cela comme ca pour le coup de tes 2 serveurs car c'est un abus de langage. Je faisais le même mas cela ma semblé un jour et mon prof de dev Web m'en a fait la confirmation. Il n'y a pas de "serveur PHP" en faite c'est un serveur WEB (http comme on veut) qui possède également une machine virtuelle afin d'interpréter le PHP. Ceci est beaucoup plus clair dans le monde java et J2EE avec le JSP. Mais bon c'est un légé detail vu que tout le monde emplois les mêmes termes. c'est d'ailleur le plus important. Sinon le problème c'est que l'URL que je passe à mon include fait partie d'URL donc je ne peux pas directement fixer une variable puis la récupérer dans mon include. J'ai par exemple cela : fichier page.htm <a href="./accueil.php?url=http://www.adresse/news/news.php?num=2">go</a> fichier accueil.php <? session_start(); $_SESSION['id']=1; $url=$_GET['url']; include($url); ?> fichier news.php if($_SESSION['id']==$_GET['num']) { echo "ok"; } Voila schématiquement ma structure. Je voudrais faire ca. Vos méthodes sont sympa mais a chaque fois il faudrait que je modifie la struture de mon site donc j'aimerai savoir si on peut faire autrement et si ca n'est pas possible je prendrai vos solutions. Merci bien qd meme. Bye Lien vers le commentaire Partager sur d’autres sites More sharing options...
korben080 Posté(e) le 24 août 2004 Auteur Partager Posté(e) le 24 août 2004 RE ! j'ai trouvé cela qui illustre le mécanisme de construction de mes pages. Mais héas dans sont exemples il n'explique dans aucun cas comment récupéré des url avec des paramêtres: pseudo-frame Voici un bout de l'article: Le code de la page index.php <div class="entete" > <?php include('entete.htm'); // Nous appelons l'entete du site ?> </div> <div class="colonneGauche" > <?php include('menu.htm'); // Nous appelons notre menu ?> </div> <div class="colonneDroite"> <?php include($_GET['page'].'php'); // Nous appelons le contenu central de la page ?> </div> <div class="pied"> <?php include('pied.htm'); // Nous appelons le pied de page ?> </div> Je ne crois donc pas avoir pris une méthode de singlé mais ca marche pas qd meme snifff. Non serieu si quelqu'un pouvait m'aider. merci d'avance. Bye Lien vers le commentaire Partager sur d’autres sites More sharing options...
warzi Posté(e) le 24 août 2004 Partager Posté(e) le 24 août 2004 je viens de voir ce que tu avais :) <a href="./accueil.php?url=http://www.adresse/news/news.php?num=2">go</a> es ce que tu dois vraiment donner toute l'adresse ?? si www.adresse est ton site depuis lequel tu pars, tu as interêt a faire <a href="./accueil.php?url=./news/news.php&num=2">go</a> tu recuperes url dans accueil.php et tu récuperes num dans news.php donc tu devrais modifier tous tes liens Lien vers le commentaire Partager sur d’autres sites More sharing options...
korben080 Posté(e) le 24 août 2004 Auteur Partager Posté(e) le 24 août 2004 et tu récuperes num dans news.php Oui mais la c'est le meme probleme. Pour faire passer le num a news.php il me faut soit mettre dans l url de mon include et la ce ne marche pas. soit mettre une varialbe $num avant min include. comme tu le proposait tout a l heure. C'est pas le top mais je pense ke je vais faire cela Surtout que dans pratiquement tout mes cas (99.99% le reste est a verifier) je n'ai qu'un num a faire passer. Bon ci ta des nouvelles je suis preneurqd meme. Bye Lien vers le commentaire Partager sur d’autres sites More sharing options...
warzi Posté(e) le 24 août 2004 Partager Posté(e) le 24 août 2004 ben non pas du tout tu peux la recuperer ou tu veux ta variable Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.