我是php的新手..我只是想询问如何检查用户是否登录..
我有两种形式..一种是注册表单,另一种是登录表单..我的登录表单已经有效但是当我尝试从localhost访问注册而不是提示我登录页面时,我仍然可以访问错误的注册..
它应该首先提示我登录表单,因为我还没有登录..
我该怎么办?请帮帮我..先谢谢你..
答案 0 :(得分:3)
这是一种方法。
我假设您有一个由您的网页加载的库脚本。在那里的某个地方,在每个页面上定义一个会话:
session_start();
然后,当用户使用有效凭据登录时,将一些信息保存到全局$ _SESSION数组中。例如,如果您有一个登录($ username,$ password)函数,该函数从您的用户数据库(或用户对象)返回一行:
if ($user = login($username, $password)) {
$_SESSION['user'] = $user->id;
// Probably store some other stuff about the user here too
}
检查您是否已登录:
if (!empty($_SESSION['user'])) { /* .. */ }
要退出:
$_SESSION['user'] = false;
或者
unset($_SESSION['user']);
显然这很简单,你可能想看看像这样的东西:
但这是一个开始。
另见:
答案 1 :(得分:2)
看看PHP Sessions。您可以使用$ _SESSION存储有关用户的持久信息,无论他们是否已注册。
答案 2 :(得分:0)
您必须以允许您在每个后续页面上检查用户的方式存储用户是否已登录的信息。通常这是使用所谓的sessions完成的 - 这里的详细信息对于这个问题太多了 - 我强烈建议你学习PHP中的会话。另一种(更简单的)方法是存储用户使用cookie登录的事实,但这通常不如可以轻易篡改的那样好。但在了解会话变量的详细信息之前,使用cookie可能是快速而肮脏的方法。无论如何,您必须在此处了解更多有关实现目标的信息。您可能会发现,当您开始实施它们时,易于查看的任务会变得非常复杂。对用户来说更容易的事情,编码器必须做的工作越多。但这也是使编码从长远来看有趣的原因......不要放弃。
答案 3 :(得分:0)
您应该使用表单的name属性检查您的php代码中提交的表单。因此,如果您的登录表单中包含name="loginForm"
且注册时间为name="regisForm"
,那么请在您的代码中执行此操作
if(isset($_REQUEST['loginForm'])) {
...//do something with loginForm
}
else if(isset($_REQUEST['regisForm'])) {
..//do something with regisForm
}