$_SESSION + Include

$_SESSION + Include - PHP - Programmation

Marsh Posté le 17-03-2006 à 01:29:26    

Salut à tous,
 
j'ai retourné mon problème dans tous les sens, mais là je ne vois pas donc je fais appel à vos âmes charitables.
 
J'ai une page type dans lequels j'inclus les parties récurrentes (header, menu, footer...). Je déclare dans cette page une variable de session "redirection".
Cette variable me servira dans le fichier menu.php, plus précisement pour la valeur d'un champs hidden d'un formulaire du menu.
 
Le probléme c'est que la variable est reconnu et affiché dans la page type alors que dans menu la variable n'existe même pas.
 
 
Est ce que vous voyez pourquoi la page menu ne prend pas en compte les variable de session? j'ai essayer avec une scalaire dans un premier temps et j'ai tenté aussi avec une $GLOBAL, mais rien à faire.
 
 
Code de la page TYPE

Code :
  1. <?php
  2. session_start();
  3. $_SESSION['redirection']='http://'.htmlspecialchars($_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']);//DECLARATION DE LA VARIABLE
  4. //
  5. include('http://'.$_SERVER['SERVER_NAME'].'/header.php');//<!DOCTYPE html... //<html.... //<head>, meta, link CSS... </head>// <body>///ON S'EN FOUT
  6. ?>
  7. <div id="conteneur">
  8.  <?php  include('http://'.$_SERVER['SERVER_NAME'].'/menu.php'); ?>//LA VARIABLE DANS CETTE PARTIE DU CODE EST INEXISTANTE
  9.  <div id="contenu">
  10.   <?php echo "<p>".$_SESSION['redirection']."</p>"; ?>//LA VARIABLE DANS CETTE PARTIE DU CODE EST EXITE ET EST AFFICHEE
  11.  </div>
  12. </div>
  13. <?php include('http://'.$_SERVER['SERVER_NAME'].'/footer.php'); ?>//ON S'EN FOUT
  14. </body>
  15. </html>


 
 
Code de la page MENU (pas complet, rien d'essentiel amputé).

Code :
  1. <div id="menu">
  2. <h3>* Skin Selector</h3>
  3. <form action="<?php echo 'http://'.$_SERVER['SERVER_NAME'].'/css/switch_css.php'; ?>" method="post" name="skin">
  4.  <fieldset>
  5.   <legend>Skin Selector</legend>
  6.    <label for="css">CSS Choice</label>
  7.     <select name="css" size="1" />
  8.      <option value="1">NYC Edition</option>
  9.      <option value="2">No Style</option>
  10.     </select>
  11.    <input name="redirection" type="hidden" value="<?php if(isset ($_SESSION['redirection'])){ echo "OK"; }else{ echo "NULL"; } ?>" />
  12.    <input name="valid" type="submit" value="charger" />
  13.  </fieldset>
  14. </form>
  15. <hr />
  16. </div>


 
 
MERCI par avance et n'hésitez pas si je n'ai pas été assez clair ou si il manque des éléments.
 
Nico

Reply

Marsh Posté le 17-03-2006 à 01:29:26   

Reply

Marsh Posté le 17-03-2006 à 03:31:39    

parceque tu include une url et pas un fichier
 
pourquoi tu mets http:// etc...?
il suffit de mettre le chemin du fichier
 
test.php

Code :
  1. <?php
  2. session_start();
  3. $_SESSION['toto']=122332;
  4. include 'test1.php'; // affiche 122332
  5. include 'http://blabla/test1.php'; // Notice: Undefined variable: _SESSION
  6. ?>


test1.php

Code :
  1. <?php
  2. echo $_SESSION['toto'];
  3. ?>


 

Reply

Marsh Posté le 17-03-2006 à 09:48:58    

Merci Subtil,  
 
en effet la variable est existante avec les chemins relatif.
Aucun moyen avec un chemin absolu à ta connaissance?
 
Nico
 

Reply

Marsh Posté le 17-03-2006 à 09:50:52    

le fichier include est en .txt, ca marche car la c'est interprété sur le serveur mais avec une id de session qui n'est pas la meme que la tienne

Reply

Marsh Posté le 17-03-2006 à 10:04:34    

Ok, merci pour cette précision.

Reply

Sujets relatifs:

Leave a Replay

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