背景故事
我过去常常在GoDaddy专用服务器上托管我的网站。通常,我会(在用户成功登录后)将某些内容应用于
_SESSION
用于确定用户是否已成功登录的变量,如
if ($_SESSION['user_logged_in'] == true) {
// did stuff here
}
我通常会将这样的东西应用于页面的顶部,这样,如果用户没有登录,它就会将他们重定向到其他地方,比如。。。
<?php
if ($_SESSION['user_logged_in'] != true) {
// direct them to log in
header("Location: http://www.example.com/login");
die();
} else {
// user is logged in so show them stuff
}
?>
我正在从GoDaddy迁移到AWS,并使用Apache等构建了自己的EC2实例。现在,当用户未登录时访问页面时,我会收到以下错误
Notice: Undefined index: user_logged_in in /var/www/html/index.php on line X
我理解为什么我收到这条消息,因为从技术上讲,用户没有登录,会话变量也没有创建。
但是。。。。
我的第一个问题是,apache中是否有一个设置忽略会话变量是否已设置为不显示错误?我和GoDaddy在一起的时候从未收到过这条消息,所以我想是的。
其次,不使用类似的东西会带来什么安全风险
if (isset($_SESSION['variable'])
确定会话变量是否存在?
不会使用类似的东西
if ($_SESSION['user_logged_in'] != true) {
是同一件事吗?