验证用户输入并存储登录凭据后,我通过调用session :: start启动会话,然后通过调用general :: reload重新加载index.php文件。我使用session :: is_start()来确定从索引文件加载哪个页面。
我认为这不正常,因为我总是加载相同的页面 - b1e.htm。
我担心的是我的静态类会话在AJAX / PHP调用和reload index.php调用之间没有维护它的值。
类似的帖子 - here
的index.php
include 'b2.php';
if(session::is_start())
{
include 'b2e.htm'; // user is logged in
}
else
{
include 'b1e.htm'; // user is not logged it
}
Snippet - session:start()和session :: is_start();
class session
{
protected static $ses_id ="";
public static function start()
{
self::$ses_id = session_start();
}
public static function is_start()
{
return self::$ses_id;
}
public static function finish()
{
self::$ses_id = 0;
$_SESSION=array();
if (session_id() != "" || isset($_COOKIE[session_name()]))
{
setcookie(session_name(), '', time()-2592000, '/');
}
session_destroy();
}
}
Snippet - general :: reload()
class general
{
public static function reload()
{
$uri = 'http://';
$uri .= $_SERVER['HTTP_HOST'];
header('Location: '.$uri.'/host_name');
}
答案 0 :(得分:1)
您可以封装和合并会话功能,但是您无法完全监视类的会话,因为php用户代码是无状态的(即使使用静态关键字)...即。这将取决于会议保留国家。
答案 1 :(得分:0)
您需要致电session_start();
以在每个页面上实际开始会话。