2012-07-21 109 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