我正在学习 php。我有一个类和一个函数来启动自定义会话,如下所示,现在如何在每个 php 页面中使用所述自定义 session_start?请帮忙。我的代码就像<?php// myclass.phpclass abcd{ function sec_session_start() { $session_name = 'sec_session_id'; // I have Set a custom session name $secure = false; $httponly = true; if (ini_set('session.use_only_cookies', 1) === FALSE) { $err='Could not initiate a safe session (ini_set)'; $err = Encryption::encode($err); header("Location: ../login.php?error_msg=".$err); exit(); } // Gets current cookies params. $cookieParams = session_get_cookie_params(); session_set_cookie_params($cookieParams["lifetime"], //session_set_cookie_params(time()+3600, $cookieParams["path"], $cookieParams["domain"], $secure, $httponly); // Sets the session name to the one set above. session_name($session_name); session_start(); session_regenerate_id(true); }}?>在这种情况下,显示以下错误: 注意:会话已经启动 - 忽略 session_start()myphp 页面如下 -<?php// mypage.phpinclude_once "myclass.php";$mevalue = new abcd;$mevalue->sec_session_start();code code code?>请帮我解决这个问题。
1 回答
jeck猫
TA贡献1909条经验 获得超7个赞
会话应该持续整个页面访问,而不是在每个页面上更新,例如,用户登录一次并将其存储到会话中,因此用户不需要为每个新页面或点击再次登录。
大多数情况下,如果有人访问您的页面,会话就会开始,并一直持续到用户离开页面 -> 关闭会话。
最好的方法是检查是否为该用户打开了一个会话,只有在用户没有会话时才启动一个会话。
要关闭会话,可以使用
session_write_close ( void ) : bool
有了这个,您可以更新代码以具有get_session功能。在此功能中,您可以检查会话是否存在并使用该会话,如果不存在则启动一个新会话
class abcd{
function init_session()
{
if (!isset($_SESSION)) {
$this->sec_session_start();
}
}
function sec_session_start() {....
在你的页面中
$mevalue->init_session();
- 1 回答
- 0 关注
- 113 浏览
添加回答
举报
0/150
提交
取消