我创建了一个简单的登录表单,将数据发布到_self,然后我尝试检查凭据以便记录用户。
验证脚本如下所示:
if ($_POST['username'] && $_POST['password'] )
{
$db =& JFactory::getDBO();
$query = 'SELECT `id`'
. ' FROM #__users'
. ' WHERE username='.$_POST['username'];
$db->setQuery( $query );
$result = $db->loadResult();
if (!$result) {
echo 'User does not exist';
}
if($result && (USERNAME & PASS MATCH))
{
<< LOGIN AND REDIRECT TO CERTAIN PAGE >>
}
else
{
echo 'Invalid username or password';
}
}
在我的简单php脚本中,当用户名和密码匹配时,我常常将SESSION变量设置为true,这就是我认为用户登录的方式。
在这,我应该采取什么行动?用户登录时是否在数据库中设置了一个字段?换句话说,我想将用户登录,然后重定向到另一个页面。
有什么建议吗?
答案 0 :(得分:1)
用户登录后,您可以执行以下操作:
if($result && (USERNAME & PASS MATCH))
{
$_SESSION['logged_in_user'] = $user;
header("location: /loggedin.php");
}
然后在loggedin.php
的顶部设置身份验证检查:
session_start(); // If
if (!isset($_SESSION['logged_in_user'])) {
// User is not logged in, so send user away.
header("Location:/login");
die();
}
// User is logged in; private code goes here.
这是一个很棒的用户登录系统教程:http://en.wikibooks.org/wiki/PHP_Programming/User_login_systems
进入高级用户身份验证并显示比我更多的示例。