Joomla - автоматически регистрирует пользователей, используя переменные $ _GET - PullRequest
0 голосов
/ 16 ноября 2010

Я знаю, это звучит очень глупо, но у нас есть клиент, который рассылает информационные бюллетени.Но целевой рынок крайне неграмотен, поэтому клиент требует, чтобы мы включили данные для входа в URL-адреса в информационном бюллетене, чтобы пользователи могли автоматически входить в интерфейс Joomla.

То, что я предложилчто мы просто создаем сценарий, который получает имя пользователя и пароль из URL с помощью $ _GET, а затем как я могу передать его объекту $ my, который создается только после входа пользователя через страницу входа в Joomla?

Очевидно, я не понимаю, что здесь связано с кодом, но концепция осталась прежней, мы хотим автоматически регистрировать людей, используя URL-адрес, а затем, если это может перенаправить их на страницу, которую они хотели перейти, все одним махом.

Заранее благодарим за любые комментарии и советы.

Ответы [ 2 ]

2 голосов
/ 16 ноября 2010

Это ужасно с точки зрения безопасности, но все, что вам нужно сделать, это передать

login.php?username=X&password=Y

и изменить свой логин, чтобы принимать $ _REQUEST вместо $ _POST

$username = $_REQUEST['username'];
$password = $_REQUEST['password'];

$loggedIn = User::Login($username, $password);

Но опять же, это УЖАСНО с точки зрения безопасности.

Если вам действительно нужен быстрый способ сделать это, вам следует подумать о том, чтобы отправить им по электронной почте хэш некоторой соли и их имя пользователя, а затем зарегистрировать их таким образом.Примерно так:

login.php?user=aw48hgghsudghaw9eg

Тогда

$hash = $_GET['user'];
$result = mysql_query("SELECT username, password 
                       FROM users 
                       WHERE md5("SALT_STRING", username) = $hash");
if (mysql_num_rows($result)) {
    $row = mysql_result($result);
    $loggedIn = User::Login($row['username'], $row['$password']);
}

Или что-то подобное.

1 голос
/ 06 марта 2015
        $mainframe = JFactory::getApplication();
        $credentials = array(); 
        $credentials['username']  =  $app->input->get('username', '', 'string');
        $credentials['password']  = $app->input->get('password',  '', 'raw');
        $mainframe->login($credentials);
        //$mainframe->redirect(JRoute::_('index.php', false));
...