为了账号安全,请及时绑定邮箱和手机立即绑定

如何在类中启动自定义会话函数

如何在类中启动自定义会话函数

PHP
吃鸡游戏 2023-05-12 15:41:03
我正在学习 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();


查看完整回答
反对 回复 2023-05-12
  • 1 回答
  • 0 关注
  • 113 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信