2012-01-05 152 views
0

我有兩種形式:(登錄表單,註冊表單),他們提交給我的組件。如何實現登錄和註冊?

登錄形式: 我想檢查登錄並傳遞並設置狀態爲「登錄」在joomla。

註冊形式: 我想在joomla註冊新用戶。

怎麼辦?

$inplogin = JRequest::getVar('inplogin'); 
$inppass = JRequest::getVar('inppass'); 

???? JFactory::login($inplogin, $inppass); ???? 

???? JFactory::registeruser($inplogin, $inppass); ???? 

???

+0

matanya,你不使用$ _SESSION與Joomla。 Joomla擁有自己的會話商店。 – Casey 2013-03-13 17:34:16

回答

2

對於登錄

$result = JFactory::getApplication()->login(array('username'=>$username, 'password'=>$password)); 

登記

require_once JPATH_ROOT.DS.'components'.DS.'com_users'.DS.'models'.DS.'registration.php'; 
$model = new UsersModelRegistration(); 
jimport('joomla.mail.helper'); 

// Attempt to save the data. 
jimport('joomla.user.helper'); 
$username = ; //your user name here 
$password = ; //your password here 
$data = array( 'username'=>$email,'name'=>$email,'email1'=>$email,'password1'=>$password, 'password2'=>$password, 'block'=>1); 
$return = $model->register($data); 
0

我不明白這是如何具體到joomla。

您需要在兩種情況下使用相同的$ _SESSION變量。在聲明變量之後,如果此變量存在(如果是,則憑證是否正確),可以檢查索引頁的開頭。是這樣的:

<?php 
    session_start(); 
    if (!isset($_SESSION['logged']) { 
    header("location:login.php"); 
    exit(); 
    } 
    ?> 
0

可以使用JUser與::綁定($用戶數據)和JUser與::保存($用戶數據)登記用戶。

0

在拉夫的回答擴展:

如果你只使用的Joomla框架,你沒有一個網站加載,你仍然需要初始化網站。

這就是說,這兩行應該做的伎倆:

$app = JFactory::getApplication('site'); 
$app->initialise();