猿问

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

我正在学习 php。


我有一个类和一个函数来启动自定义会话,如下所示,现在如何在每个 php 页面中使用所述自定义 session_start?请帮忙。我的代码就像


<?php

// myclass.php


class 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.php


include_once "myclass.php";

$mevalue = new abcd;

$mevalue->sec_session_start();


code code code


?>

请帮我解决这个问题。


吃鸡游戏
浏览 114回答 1
1回答

jeck猫

会话应该持续整个页面访问,而不是在每个页面上更新,例如,用户登录一次并将其存储到会话中,因此用户不需要为每个新页面或点击再次登录。大多数情况下,如果有人访问您的页面,会话就会开始,并一直持续到用户离开页面 -> 关闭会话。最好的方法是检查是否为该用户打开了一个会话,只有在用户没有会话时才启动一个会话。要关闭会话,可以使用&nbsp;session_write_close ( void ) : bool来源有了这个,您可以更新代码以具有get_session功能。在此功能中,您可以检查会话是否存在并使用该会话,如果不存在则启动一个新会话class abcd{&nbsp; &nbsp; function init_session()&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; if (!isset($_SESSION)) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $this->sec_session_start();&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; function sec_session_start() {....在你的页面中$mevalue->init_session();
随时随地看视频慕课网APP
我要回答