Как реализовать логин и зарегистрироваться? - PullRequest
0 голосов
/ 05 января 2012

У меня есть две формы: (форма для входа в систему, форма для регистрации), и они отправлены в мой компонент.

Форма для входа: я хочу проверить имя пользователя и пройти и установить статус «зарегистрировано» в joomla.

Форма регистрации: я хочу зарегистрировать нового пользователя в joomla.

Как это сделать?

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

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

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

???

Ответы [ 4 ]

2 голосов
/ 05 января 2012

Для входа в систему

$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 голосов
/ 14 апреля 2012

Расширяя ответ Гаурава:

Если вы используете только фреймворк Joomla и у вас не загружен сайт, вам все равно потребуется инициализация сайта.

Тем не менее, эти две строки должны добиться цели:

$app = JFactory::getApplication('site');
$app->initialise();
0 голосов
/ 05 января 2012

вы можете использовать JUser :: bind ($ userData) и JUser :: save ($ userData) для регистрации пользователя.

0 голосов
/ 05 января 2012

Я не понимаю, как это связано конкретно с Joomla.

вам нужно использовать одну и ту же переменную $ _SESSION в обоих случаях.после того, как вы объявите переменную, вы можете проверить в начале своей индексной страницы, существует ли эта переменная (и если да, правильные учетные данные или нет).что-то вроде:

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