我正在创建一个用户类来处理我的登录。由于我希望在验证用户名和密码后在类中设置会话,我是否必须在类的顶部使用session_start(),在要设置会话的公共函数内,或实例的位置产生的?也许它可以进入函数_construct()?
这就是我要打电话给班级的方式:
<php
include('user_class.php');
$user = new user;
$user->login($username,$password);
?>
答案 0 :(得分:5)
你可以添加session_start();在文件的顶部,您将该课程包括在内。
所以
<?php
session_start();
include('user_class.php');
$user = new user;
$user->login($username,$password);
?>
会起作用。
答案 1 :(得分:2)
在您的用户类旁边创建一个会话类。
然后,用户类只是将自己存储到会话类中,而不需要关心调用session_start
,这是会话类的工作。
<php
include('session_class.php');
include('user_class.php');
$session = new session;
if ($session->hasRegisteredUser()) {
$user = $session->getRegisteredUser();
} else {
$user = new user;
$user->login($username, $password);
$session->setRegisteredUser($user);
}
这是否回答了您的问题,或者您现在需要知道如何使用会话类进行操作?
答案 2 :(得分:2)
是的,您可以在类中使用会话,因为会话是php中的全局变量。
代码示例(添加新的会话变量):
<?php
class sessionControle{
...
...
public function addSession($index, $value){
$_SESSION[$index] = $value;
return $_SESSION[$index];
}
}
?>
在您的主要php文件中,您可以包含功能$_SESSIONS
全球
主文件中的代码:
<?php
session_start();
include_once("myClass.php");
$Se = new sessionControle;
echo $Se->addSession('User', 'Crx');
//Double check here !!
echo $_SESSION['User'];
?>
输出:Crx