Bonjour,

Alors voilà depuis la mise en ligne de mon site sur un serveur mutualisé ovh, j'ai un problème de perte de variable session.
Je m'explique : Le problème se situe au niveau de ma page de login

Voici un plan du processus :

login.php -> login_proc.php -> cpanel.php

login : Page de login simple avec formulaire
login_proc : processus de validation du pseudo mot de passe etc...
cpanel.php : Page du compte d'arrivé apres login

Le problème c'est que la page cpanel.php redirige automatique à login.php (normal c'est fait exprès si on est pas logué), mais ceci se passe meme apres le login. En effet, cpanel.php verifie si les variables de sessions sont bien crées, ce qui n'est pas le cas...

après analyse, j'ai remarqué que dans login_proc.php, les variables de session sont bien definies mais qu'après le header pour être redigé vers cpanel.php, les variables disparraissent !

Que faire ??

Voici les bouts de codes : (je précise que j'utilise un include dans login_proc.php car j'ai crée une classe pour gérer les sessions
et il n'y a pas de session_start dans cette classe, normal vu qu'elle est "include" directement dans la page login_proc.php qui elle a son session_start)
Bref le problème ne se situe pas la mais où il y a le header qui envoie vers cpanel.php

login_proc.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<?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['loginata']) == "DC(*gddgdsgdgssg")) 
{ 
      /* 
      Html Field Value -> Required name for input tag 
       
      eg. <input type="textbox" id="user_name" name="user_name" value ="" /> 
       
      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.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.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.php?e=2"); 
      break; 
      } 
      else if($qmail["user_email"] == "") 
      { 
      // User does not exist 
      header("Location: login.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) 
      { 
 
 
          // PROBLEME ICI, MEME UNE VARIABLE DU TYPE
	// $_SESSION['test'] = "test"; n'est pas retrouvé dans cpanel.php
	// donc le pb se situe dans le header ci dessous non ?
 
          header("Location: cpanel/cpanel.php"); 
          break; 
 
 
 
      } 
      else 
      { 
          // Error setting session 
          header("Location: login.php?e=5"); 
          break; 
      } 
 
      } 
      else 
      { 
      // Password error - incorrect password 
      header("Location: login.php?e=4"); 
      break; 
 
      } 
 
      } 
      catch(Exception $e) 
      { 
      header("Location: login.php?e=6"); 
      break; 
      } 
 
 
 
} 
else 
{ 
     // Redirect to home page, as this page should not be accessed unless post session 
     header("Location: login.php"); 
     break; 
} 
 
ob_end_flush(); 
 
 
?>

Merci d'avance !!