1

我创建了一个简单的登录表单,将数据发布到 _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,这就是我认为用户登录的方式。

在这里,我应该做什么?用户登录时是否设置了数据库中的字段?换句话说,我想让用户登录,然后重定向到另一个页面。

有什么建议么?

4

1 回答 1

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

它涉及高级用户身份验证,并显示了比我在这里更多的示例。

于 2012-07-21T10:27:15.587 回答