2 回答
TA贡献1797条经验 获得超6个赞
您无法调用您的Session类,因为您需要包含它,session_start()并且您只能在start方法中使用它。
选项 1:您必须session_start()在要处理会话的每个页面中调用
选项 2:向您的类添加一个函数并在您class创建后调用它并添加到那里,session_start()以便在您包含会话类的任何地方session_start都已经被初始化
例子:
会话文件
class Session {
static function init(){
session_start();
}
//rest of your methods...
}
//initialize it
Session::init();
使用 session.php 的页面
include('Sessions.php');
Session::update();
TA贡献1963条经验 获得超6个赞
更好地在 php.ini 或 ini_set() 函数中设置 php 会话超时变量,不要创建自己的 $_SESSION['expire'] 变量;您可以在每次用户发送请求时重新生成_session_id();更好地在会话中测试用户 IP 地址。在大多数项目中,您在服务器上只有一个页面或只有您自己的页面。
在会话中设置用户 ID:
$_SESSION['userid'] = $loggoed_id_from_db;
// and test
if((int)$_SESSION['userid'] == 0){
header('Location: logout.php');
exit;
}else{
if(empty($_SESSION['ip'])){
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
}else{
if($_SESSION['ip'] != $_SERVER['REMOTE_ADDR']){
header('Location: logout.php');
exit;
}
}
}
而且可能你没有从课堂上开始上课!
- 2 回答
- 0 关注
- 191 浏览
添加回答
举报