我尝试制作管理员面板而我正在使用sessions
,但有问题,会话不起作用,
$r=mysql_fetch_array($result);
$login=$r["login"];
session_register('login');
Header("Location: protected.php");
<?php
session_start();
if (!isset($_SESSION['login'])) {
echo "Not work";
}
else{
echo "Work";
}
?>
我不知道是什么问题,因为在index.php我注册会话,但是在protected.php这个会话没有设置。
答案 0 :(得分:6)
请勿使用session_register()
。它已在PHP 5.4.0中删除。
在index.php中,将session_start();
添加到顶部,并将您的注册号码替换为$_SESSION['login'] = 'val';
答案 1 :(得分:2)
自5.3.0起,session_register()的使用已弃用,自4.1.0以来未推荐使用。
相反,使用$_SESSION[]创建会话变量的格式与引用它相同:
$_SESSION['login'] = $r["login"];
使用此方法无需初始化$login
变量,因为结果集中的登录值直接设置为会话变量。
<?php // Use of session_register() is deprecated
$barney = "A big purple dinosaur."; session_register("barney");
// Use of $_SESSION is preferred, as of PHP 4.1.0
$_SESSION["zim"] = "An invader from another planet.";
// The old way was to use $HTTP_SESSION_VARS
$HTTP_SESSION_VARS["spongebob"] = "He's got square pants."; ?>
此外,建议不要使用mysql_fetch_array
,而应使用MySQLi或PDO_MySQL扩展名。
答案 2 :(得分:2)
session_register()
,请在此处阅读以获取更多信息: