我正在开发一个需要使用会话的 PHP 应用程序。我用三层架构开发了我的应用程序。
我只使用一个 PHP 页面和虚拟表单来提交用户操作,所有处理都是通过实体/函数特定类进行的。
首次打开页面时,我会检查变量,如果之前从未打开过,我会显示登录表单。
当我收到来自此表单的帖子时,我会检查用户,如果用户正常,我会开始会话
if(isset($_POST['login']))
{
if($_POST['login']=='login')
{
//valida user
$accoes=$du->login($_POST['username'],$_POST['password']);
if($accoes===false)
{
echo "<SCRIPT LANGUAGE=\"JavaScript\" TYPE=\"text/javascript\">";
echo "alert('Erro no Login');";
echo "</SCRIPT>";
unset($accoes);
}
else
{
//utilizador valido
echo "<SCRIPT LANGUAGE=\"JavaScript\" TYPE=\"text/javascript\">";
echo "alert('Utilizador válido');";
echo "</SCRIPT>";
session_start();
$user="teste";
$screen="logged";
$_SESSION['user']=$user;
}
}
}
尽管通过用户操作刷新此页面时,我看不到会话 ID 或会话变量。
我是否遗漏了诸如 session_commit 或其他指令之类的内容?
session_start() 是否应该在尝试检查会话变量之前出现?
PHP.ini 文件中是否缺少某些内容?
当我重新加载时,我做的第一件事是检查会话变量
if(session_id() != '') {
$user=$_SESSION['user'];
}
我知道我应该知道如何解决这个问题,但是直到现在我对 PHP 的体验还只是 Flex/Flash,所以会话管理并不是真正必要的。
谢谢您的帮助