我有一个php include文件,function.php包含以下代码片段:
function check_login($mysqli) {
// Check if all session variables are set
if(isset($_SESSION['user_id'], $_SESSION['username'])) {
$user_id = $_SESSION['user_id'];// current value will be 9
$username = $_SESSION['username'];
if ($stmt = $mysqli->prepare("SELECT password FROM members WHERE user_id = ? LIMIT 1")) {
$stmt->bind_param('i', $user_id);
$stmt->execute();
$stmt->store_result();
//
//
//
return true;
}
}
}
在另一个文件test.php中,我执行
if(check_login($mysqli) == true) //......
然后在test.php中进一步向下,我设置了变量$ user_id
的值$user_id = "5";
现在问题是,因为$ user_id已经在我的functions.php文件中定义为会话的user_id的值,所以它会覆盖实际的会话数据。
这几乎就像test.php中的$ user_id将变量视为全局变量,这会导致会话的user_id也发生变化。
为什么会这样?
答案 0 :(得分:0)
感谢您的帮助!我终于弄明白了。 Register_globals设置为on。卫生署!