Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2948 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Mes données de session s'effacent au retour d'une page

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Mes données de session s'effacent au retour d'une page

n°1005538
Fredux_lg
Posté le 08-03-2005 à 16:21:20  profilanswer
 

SAlut a tous,
 
j'ai un petit prob quand je sauves certaine données en variables de session. Je vai sessayer d'etre clair....
 
j'effectuer une recherche dans ma table SQL via un Formulaire et envoyer a un script qui génère la requete SQL suivant les critère du Formulaire.
je sauvegarde cette requete ds une variable de session: "$_SESSION['sql']"
ensuite ce script affiche les résultat de la recherche ds un tableau avec un lien vers le détail de chaque recherche
 
qd je clique sur ce lien, un autre script affiche le détail et avec un lien de retour vers la page de résultat de recherche, pour refaire la liste mais il me dit que la variable $_SESSION['sql'] n'existe pas :(
 
Vous comprenez ? :)
 
ma question est: pourquoi s'efface-t-elle ?
 
merci d'avance pour vos commentaires...
 
Fred

mood
Publicité
Posté le 08-03-2005 à 16:21:20  profilanswer
 

n°1005544
Djebel1
Nul professionnel
Posté le 08-03-2005 à 16:23:34  profilanswer
 

as-tu mis

Code :
  1. session_start()

au début de chaque page qui utilise des variables de session?

n°1005549
simogeo
j'ai jamais tué de chats, ...
Posté le 08-03-2005 à 16:24:33  profilanswer
 

session_start(); sur toutes les pages ou doivent être transmies les infos de session


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°1005566
soju
One shot !
Posté le 08-03-2005 à 16:28:39  profilanswer
 

un bout de ton code stp

n°1005701
Fredux_lg
Posté le 08-03-2005 à 17:36:53  profilanswer
 

Voila le code des page inpliquées
 
Mon formulaire: (ya pas de session_start(); pcq il est en include ds la page index)
 
<html>
<body bgcolor="#ccccff" text="#000000" link="#0000ff" vlink="#800080" alink="#ff0000">
 
<?
// un vide les variable pour une nouvelle recherche
unset ($_SESSION['rech_sexe']);
unset ($_SESSION['rech_pays']);
unset ($_SESSION['rech_min']);
unset ($_SESSION['rech_max']);
unset ($_SESSION['rech_yeux']);
unset ($_SESSION['rech_cheveux']);  
 
?>
<font size="+2">Recherche Simplifiée </font>
 
<form name="recherche_form" action="view_result.php?action=new&id=1" method="post">
je recherche:
 <input type="radio" name="sexe" value="homme"checked> un homme
 <input type="radio" name="sexe" value="femme"> une femme<br><br>
 
entre  
<select name="age_min">
       <option value="18"> 18</option>
       <option value="20"> 20</option>
       <option value="25"> 25</option>
       <option value="30"> 30</option>
       <option value="35"> 35</option>
       <option value="40"> 40</option>
       <option value="45"> 45</option>
       <option value="50"> 50</option>
      </select>
et
<select name="age_max">
       <option value="20"> 20</option>
       <option value="25"> 25</option>
       <option value="30"> 30</option>
       <option value="35"> 35</option>
       <option value="40"> 40</option>
       <option value="45"> 45</option>
       <option value="50"> 50</option>
       <option value="55"> 55</option>
       <option value="65"> 65</option>
      </select>
ans    
<br><br>
En <select name="pays">
       <option value="Belgique"> Belgique</option>
       <option value="France"> France</option>
      </select>
<br><br>
   <input type="submit" value="rechercher">
<br><br>
<a href="base.php?id=3.php">Recherche détaillée...</a>
</form>
 
</body>
</html>
----------------------------------------------------------
 
La page qui affiche les résultat des la recherche:
**************************************************
<html>
<body>
 
<?
session_start();
include ('FRAME_haut_page.inc.php');  
?>
<table summary="" width=100% border="1">
 <tr>
<!-- COLONNE GAUCHE -->
  <td width=20%>colone gauche</td>
<!-- PRINCIPALE -->
  <td width=60%>
<?
//si c'est une recherche postée on on cherche les résultats
 if ($_GET['action'] == "new" )
 {
  if ($_GET['id'] == 1 || $_GET['id'] == 2)
  { // on affiche les résultat de la recherche
   // 1 pour SIMPLE - 2 pour DETAILLEE
   $id = $_GET['id'];
   switch ($id)
   {
    case 1:
     include ('PROC_recherche_S.php');
     include ('FUNC_view_recherche.php');
     break;
    case 2:
     include ('PROC_recherche_D.php');
     include ('FUNC_view_recherche.php');
     break;
   }
  }
 }
else  
//Sinon c'est le retour sur la requete déja faite...
 
if ($_GET['action'] == "old" )
{
// **************************************
// C'est ICI que ca FOIRE !!!
//***************************************
 
$sql = $_SESSION['sql'];
 
include ('connect_base.php');
 
include ('FUNC_view_recherche.php');
}
 
?>  </td>
<!-- COLONNE DROITE -->
  <td width=20%></td>
 </tr>
</table>
<? include ('FRAME_bas_page.inc.php'); ?>
 
 
</body>
</noframes>
</frameset>
</html>
-----------------------------------------------------------
 
La page qui affiche les détail de l'élément rechercher:
*******************************************************
 
<html>
<body>
 
<?
session_start();
include ('FRAME_haut_page.inc.php'); ?>
 
<table summary="" width=100% border="1">
 <tr>
<!-- COLONNE GAUCHE -->
  <td width=20%>colone gauche</td>
<!-- PRINCIPALE -->
  <td width=70%>
<?
$membre = $_GET['id']; // on prende le nick donner par la "FUNC_view_result.txt"
include ('FUNC_affiche_fiche.php');
affiche_fiche($membre);
 
?>  </td>
<!-- COLONNE DROITE -->
  <td width=10%></td>
 </tr>
</table>
<? include ('FRAME_bas_page.inc.php'); ?>
 
 
</body>
</html>
----------------------------------------------------------
 
Voila je sais pas si vous comprenez tout.....
J'espère que si :)

n°1006210
Djebel1
Nul professionnel
Posté le 08-03-2005 à 23:54:25  profilanswer
 

session_start doit etre placé avant toute autre balise, genre <html> et <body>


Message édité par Djebel1 le 08-03-2005 à 23:56:23
n°1006721
Fredux_lg
Posté le 09-03-2005 à 13:26:03  profilanswer
 

Djebel1 a écrit :

session_start doit etre placé avant toute autre balise, genre <html> et <body>


 
j'ai essayer mais ca ne fonctionne toujours pas :(
la variable se perd quand meme :'(

n°1007037
soju
One shot !
Posté le 09-03-2005 à 16:46:26  profilanswer
 

Fredux_lg a écrit :

j'ai essayer mais ca ne fonctionne toujours pas :(
la variable se perd quand meme :'(


tu l'initialises où $_SESSION['sql'] ?? montre le code

n°1007065
Fredux_lg
Posté le 09-03-2005 à 17:17:08  profilanswer
 

soju a écrit :

tu l'initialises où $_SESSION['sql'] ?? montre le code


 
dans ma procedure de recherche (en INCLUDE ds la page qui affiche les résultats):
 
<?php
 
include ('connect_base.php');
 
$search_sexe = $_SESSION['rech_sexe']=$_POST['sexe'];
$search_pays = $_SESSION['rech_pays']=$_POST['pays'];
$search_age_min = $_SESSION['rech_min']=2005 - $_POST['age_min']+1;
$search_age_max = $_SESSION['rech_max']=2005 - $_POST['age_max']-1;
 
// on crée la requête SQL  
$sql = "SELECT nickname, city, country, language_1, language_2, language_3, ideal_relation, pic_1  
  FROM tbl_membres  
  WHERE sexe LIKE '$search_sexe'  
  AND country LIKE '$search_pays'  
  AND birth_year <= '$search_age_min'  
  AND birth_year >= '$search_age_max'";  
 
$_SESSION['sql'] = $sql; //on sauve la requete en SESSION
 
include ('FUNC_view_recherche.php');
?>
 
c pas pcq j'utilise des INCLUDE de petites procécures que la variable se perd ?  
je ne crois pas vu ke c'est juste comme si le code compris dans ces procédures était tapé tel quel... non ?
 

n°1007076
soju
One shot !
Posté le 09-03-2005 à 17:29:22  profilanswer
 

verifie que ton register_globals est a off, car dans le cas contraire ta variable $sql est la même que $_SESSION['sql'] ce qui peut poser quelques problèmes...
et un peu de debug : ajoute un print_r($_SESSION); dans tes pages.

mood
Publicité
Posté le 09-03-2005 à 17:29:22  profilanswer
 

n°1007330
Fredux_lg
Posté le 09-03-2005 à 21:13:52  profilanswer
 

soju a écrit :

verifie que ton register_globals est a off, car dans le cas contraire ta variable $sql est la même que $_SESSION['sql'] ce qui peut poser quelques problèmes...
et un peu de debug : ajoute un print_r($_SESSION); dans tes pages.


 
je suis un peu novice la dedans, ca s'initialise ou "register_global a off"  ?
pardon pour cette question de newbie   :D

n°1012159
Jotunheim
A.K.A. FenrirDarkWolf
Posté le 14-03-2005 à 15:42:53  profilanswer
 

Dans ton httpd.conf (arretez moi si je dis une connerie...)

n°1012346
cerel
Posté le 14-03-2005 à 17:26:09  profilanswer
 

Jotunheim a écrit :

Dans ton httpd.conf (arretez moi si je dis une connerie...)


 
Rate, httpd.conf c'est la config d'apache.
 
La config de php4 (donc register_globals) se trouve dans php4.ini

n°1012350
simogeo
j'ai jamais tué de chats, ...
Posté le 14-03-2005 à 17:27:32  profilanswer
 

php.ini ...


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Mes données de session s'effacent au retour d'une page

 

Sujets relatifs
Inclure régulièrement une pagerecuperer l'URL d une page en PHP?
session + controle de controle de champPuis je creer une arborescence liee a une base de donnees??
session_registerNe plus afficher une page déjà visitée
debutant - garder mes variables d'une page à l'autreimage + lien aléatoires à l'ouverture d'une page ... ??
[PHP] recupérer le contenu d'une page dans une session 
Plus de sujets relatifs à : Mes données de session s'effacent au retour d'une page


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR