2012-07-21 80 views
1

我创建了一个简单的登录表单数据发布于_self,然后我试图检查,以登录用户的凭据的Joomla登录简单的脚本

进行身份验证的脚本看起来像这样:

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

Joomla!有一个完整的用户管理系统,所以我不清楚你的问题你的目的是什么。您是否想为Joomla创建扩展程序!或者是其他东西? – Craig 2012-07-23 01:33:29

回答

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

它进入高级用户身份验证,并显示比我在这里更多的例子。

+0

非常感谢帕特里克,但就像我说的,我习惯于这种写作。但是,我担心joomla不会那样工作!我想我不应该使用会话变量。这就是为什么我很困惑..任何其他建议? – george 2012-07-21 10:49:23

+0

除了会话以外,唯一可以做的其他事情是基于数据库的认证系统,例如, mysql,甚至像memcached一样,但如果正确完成,会话会很好地进行身份验证。除此之外,简单用户身份验证并不需要太多的复杂性。 – pat34515 2012-07-21 10:56:16