OVH Community, votre nouvel espace communautaire.

Problème de perte variable session


Ethan0026
08/11/2010, 20h25
up, aucune solution ?

Ethan0026
07/11/2010, 14h38
ah bah non alors, car je regarde les cookies crées et il a y a bien le cookie "dif"...

tartine
06/11/2010, 21h07
Bah si comme moi tu n'acceptes pas les cookies tiers, tu ne reçois alors pas le cookie de OVH, et la session se perd.

Ethan0026
06/11/2010, 14h01
je ne vois pas en quoi cela pourrai interferer... ?

tartine
06/11/2010, 13h58
Ça ne serait pas lié à ceci ? :
http://forum.ovh.com/showthread.php?t=64400

Ethan0026
06/11/2010, 13h05
Code PHP:
session_name('dif');
session_start();
ob_start();

require(
"includes/Dbn/libphp1.inc"); // Database Connection Class
require("includes/qu/libphp.M.inc"); // Query Class
require("includes/session.inc.php"); // Session management class

// Check if submit is enabled, and $_POST[register_data] is true
if( (isset($_POST['submit'])) and (isset($_POST['login_data']) == "DC(*gddgdsgdgssg"))
{
      
/*
      Html Field Value -> Required name for input tag
      
      eg. 
      
      Email Address = user_email
      Password = user_password
      Login Button = submit
      
      */
      
      
try
      {
      
      
$user_email escape($_POST['user_email']);
      
$password $_POST['user_password'];
      
      
// Check email address for validity      
      
if( (!(eregi('^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$'$user_email)) ) )
      {
      
// Invalid email address
      
header("Location: login_d.php?e=0");
      break;
      }
          
      
// If password is invalid
      
if((strlen($password) < PASSWORD_MIN_CHAR) or (strlen($password) > PASSWORD_MAX_CHAR))
      {
      
// Invalid password
       
header("Location: login_d.php?e=1");
       break;
      }
      
      
$password md5($password);
      
      
// Connect to mysql database
       
$conn MysqlConnect::connect();
      
MysqlConnect::db_use($conn"fsdfdfdh");
      
      
// Open new instance of the query class
      
$query = new MysqlQuery($conn);
      
      
// Check for email already in DB
      
$qmail $query->GetSingleQuery('--SINGLE',"SELECT user_name,user_email,user_password,id FROM dif_users WHERE user_email = '{$user_email}';",array("user_name","user_email","user_password","id"));
      
      
// Check for errors
      
if($qmail 0)
      {
      
// Error, redirect
      
header("Location: login_d.php?e=2");
      break;
      }
      else if(
$qmail["user_email"] == "")
      {
      
// User does not exist
      
header("Location: login_d.php?e=3");
      break;
      }
      
      
// Check for match
      
if(strcmp($password,$qmail["user_password"]) == 0)
      {
      
// All good, start session, redirect
      
if( (Session::start($qmail["id"],$qmail["user_name"])) == 0)
      {
          
// Session started, redirect to cpanel page
          
header("Location: cpanel/index.php");
          break;
      }
      else
      {
          
// Error setting session
          
header("Location: login_d.php?e=5");
          break;
      }
      
      }
      else
      {
      
// Password error - incorrect password
      
header("Location: login_d.php?e=4");
      break;
      
      }
     
      }
      catch(
Exception $e)
      {
      
header("Location: login_d.php?e=6");
      break;
      }
      


}
else
{
     
// Redirect to home page, as this page should not be accessed unless post session
     
header("Location: login_d.php");
     break;
}
 
ob_end_flush();
  

?>

Je cerne un peu plus le pb :
Alors voila, a chaque fois que je definis une variable $_SESSION dans cette page php alors elle n'est plus définie dans la page suivante...

Ethan0026
06/11/2010, 12h51
ah oui et je precise que lorsque je stocke la variable je fait appel a une fonction dans un include

Ethan0026
06/11/2010, 12h48
Oui j'avais effectivement oublié le session_start sur mon test...
Mais cela ne résoud toujours pas mon problème je ne comprend plus...

Gaston_Phone
05/11/2010, 23h26
Essaie aussi avec :
et 2.php :
Code PHP:
session_start(); 
echo 
$_SESSION['test'];
?>




test 2





Gaston_Phone
05/11/2010, 23h24
Et si tu supprimais le session_name('dif'); ?

Ethan0026
05/11/2010, 23h19
Bon le problème est beaucoup plus général en fait, AUCUNE variable session ne s'enregistre

voici mon test :

1.php :
Code PHP:
session_name('dif');
session_start();
ob_start();

$_SESSION['test']="test";
header("Location: 2.php");
break;
?>
et 2.php :
Code PHP:




test 2



echo $_SESSION['test'];
?>

Résultat : ABSOLUMENT RIEN sur la page 2.php

Ethan0026
05/11/2010, 23h09
Bonsoir,

Je m'arrache les cheveux depuis quelques heures maintenant concernant un problème lié aux variables de session.
Voici le contexte : J'ai commandé un hébergement mutualisé pro chez ovh, et j'upload mon site php/sql tout beau tout propre qui marche parfaitement en local.
Le problème : Il y a des pages de login dans mon site, qui utilisent des variables de session pour pouvoir faire des verification contre le hack etc...
Après plusieurs heures, je me rend compte que d'une page à une autre les variables session que je définis n'existent plus !

En effet, je définis une variable session dans le script de la premiere page et je regarde le output pour voir si elle a bien été crée : oui c'est bon elle est crée. Puis j'arrive dans la seconde page et j'appelle cette variable fraichement crée... erreur ! elle n'existe plus ! Que faire ??

Merci d'avance !

Info suplémentaires :
mes pages commencent par :
Code PHP:
session_name('dif');
session_start();
ob_start();
ma varible est : (oui un peu longue )
Code PHP:
$_SESSION['_URL$CLICK_D(*@#!_D@R*&$%(){*@)_D_'