J'utilise SESSIONS pour stocker des données à partir d'une base de données lorsqu'un utilisateur se connecte. Cependant, lorsque j'interroge une base de données sur une autre page, les variables SESSION changent sans que je leur attribue de nouvelles valeurs.
Est-ce que quelqu'un sait quel pourrait être le problème?
La page de connexion qui enregistre les variables:
enter code here
session_start();
if($_POST['login_button']) {
require_once('includes/config.inc.php');
$username = $_POST['login_username'];
$password = $_POST['login_password'];
$hash_pwd = sha1($password);
if(($username != NULL) && ($password != NULL)) {
$conn = mysql_connect('localhost', 'admin', 'root') or die(mysql_error());
mysql_select_db('main') or die(mysql_error());
$check_users = "SELECT * ".
"FROM users ".
"WHERE email = '{$username}' AND password = '{$hash_pwd}' ".
"LIMIT 1";
$result = mysql_query($check_users);
$counted = mysql_num_rows($result);
if($counted != 1) {
header("location:login.php?fail"); } else {
while ($row = mysql_fetch_array($result)) {
$useR_login_un = $row['name'];
$useR_login_user_id = $row['user_id'];
$useR_login_login_time = $row['login_times'];
$useR_login_user_email = $row['email'];
$useR_login_course = $row['course'];
$useR_login_campus = $row['campus'];
$useR_login_login_time = $useR_login_login_time + 1;
$useR_login_datenow = date("Y-m-d") . " " . date("H:i:s");
$useR_login_sid = sha1($useR_login_user_id) . rand() . md5($pinch_o_salt);
$update_login_times = "UPDATE users ".
"SET login_times = '{$useR_login_login_time}', last_login = '{$useR_login_datenow}' ".
"WHERE email = '{$useR_login_user_email}' AND user_id = '{$useR_login_user_id}'";
mysql_query($update_login_times);
mysql_close($conn);
$_SESSION['sid'] = sha1($useR_login_user_id) . $pinch_o_salt;
$_SESSION['user_id'] = $useR_login_user_id;
$_SESSION['username'] = $useR_login_user_email;
$_SESSION['name'] = $useR_login_un;
$_SESSION['course'] = $useR_login_course;
if($useR_login_login_time == 0) {
session_write_close();
header("Location: first_run.php");
exit;
}
else {
session_write_close();
header("Location: home.php");
exit;
}
}
}
} else { header("Location: login.php?fail"); exit; } }
EDIT: Il stocke les variables et quand je vais à une autre page, apparaissent les variables, mais quand je rafraîchir, certains d'entre eux sont perdus certains d'entre eux rester le même, et certains changent à l'information d'un autre utilisateur dans la base de données.
EDIT2: Je me suis rendu compte que cela ne se passe quand je fais une recherche à nouveau la base de données.
La seule chose qui est à l'origine des problèmes est (ON home.php):
$conn = mysql_connect('localhost', 'ggordan_admin', 'valeg0r') or die(mysql_error());
mysql_select_db('ggordan_wmin') or die(mysql_error());
$query = "SELECT * ".
"FROM users ".
"WHERE course = '".$_SESSION['course']."' ".
"LIMIT 3";
$result = mysql_query($query);
$numrows = mysql_num_rows($result);
echo $numrows;
while ($my = mysql_fetch_array($result)) {
$id = $row['user_id'];
$name = $row['name'];
}
Si je commente ceci, il ne semble pas se produire.
EDIT: Je me suis rendu compte qu'il a quelque chose à voir avec des affrontements variables sur un autre script. Si cela devait se produire
$conn = mysql_connect('localhost', 'ggordan_admin', 'valeg0r') or die(mysql_error());
mysql_select_db('ggordan_wmin') or die(mysql_error());
$query = "SELECT * ".
"FROM users ".
"WHERE course = '".$_SESSION['course']."' ".
"LIMIT 3";
$result = mysql_query($query);
$numrows = mysql_num_rows($result);
echo $numrows;
while ($my = mysql_fetch_array($result)) {
// if i change $id to $user_id it breaks the login script
$id = $row['user_id'];
$name = $row['name'];
}
Code? –