Aller au contenu

session PHP / include


korben080

Messages recommandés

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

Lien vers le commentaire
Partager sur d’autres sites

re !

C'est gentil mais je ne suis pas completement débile. :roule::roule:

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

Lien vers le commentaire
Partager sur d’autres sites

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

Merci d'avance.

bye :pleure:

Lien vers le commentaire
Partager sur d’autres sites

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

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

:oops:

Lien vers le commentaire
Partager sur d’autres sites

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

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

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

Lien vers le commentaire
Partager sur d’autres sites

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é :D:D mais ca marche pas qd meme snifff. :roll:

Non serieu si quelqu'un pouvait m'aider.

merci d'avance.

Bye :transpi:

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

:keskidit:

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...