0 Пользователей и 1 Гость просматривают эту тему.
  • 1 Ответов
  • 384 Просмотров
*

m.smetannikov

  • Захожу иногда
  • 69
  • 0 / 0
Всем привет.
В Joomla 3.4 у меня работало создание новых пользователей из скрипта который лежит к корне
Не помню откуда сделал копипаст этого кода, но он работал:
Код
	
if (!defined('_JEXEC', 1)) {
define( '_JEXEC', 1);
define ('JPATH_BASE', __DIR__);
require_once ( JPATH_BASE .'/includes/defines.php' );
require_once ( JPATH_BASE .'/includes/framework.php' );
$mainframe = JFactory::getApplication('site');
}
$db = JFactory::getDbo();
$user = JFactory::getUser();
function addJoomlaUser($name, $username, $password, $email) {
$data = array(
"name"=>$name,
"username"=>$username,
"password"=>$password,
"password2"=>$password,
"email"=>$email
);

$user = clone(JFactory::getUser());
//Write to database
if(!$user->bind($data)) {
throw new Exception("Could not bind data. Error: " . $user->getError());
}
if (!$user->save()) {
throw new Exception("Could not save user. Error: " . $user->getError());
}

return $user->id;
}
Потом я обновился до J3.5 и началось:
- сначала defined() ожидает один параметр, а передается 2 - defined() убрал вообще,
- потом появилась такая ошибка: Error displaying the error page: Application Instantiation Error: Failed to start the session because headers have already been sent by "Мой скрипт" at line 32 - в этой строке у меня после if идет echo отладочное - непонятно(решил как и в прошлый раз с defined() - комментарием непонятного для меня $mainframe = JFactory::getApplication('site'); который еще и нигде дальше не используется).
-дальше вот такая ошибка: Error displaying the error page: Application Instantiation Error: Could not save user. Error: Application Instantiation Error (это вот финальная ошибка дальше которой я не продвинулся)
-после того как при вызове попытался передать пользователя с уже используемым в Joomla e-mail появилась вот такая ошибка: Error displaying the error page: Application Instantiation Error: Could not save user. Error: JLIB_DATABASE_ERROR_EMAIL_INUSE то есть получается запрос в базу делается на проверку наличия передаваемого e-mail, но пользователь с новым e-mail все равно не сохраняется - вот это для меня вообще не понятно.

Подскажет кто - нибудь в чем дело?
*

m.smetannikov

  • Захожу иногда
  • 69
  • 0 / 0
В общем я не понимаю почему это работало, почему это перестало работать и почему это снова заработало.
Решение следующее: перед
Код
if (!$user->save())
я добавил
Код
$user->save();
И снова заработало.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Перенос пользователей с 2.5 на 3.8

Автор aleks_lv

Ответов: 4
Просмотров: 97
Последний ответ 10.12.2017, 01:00:41
от wishlight
Доступ для пользователей и скрытие пунктов меню

Автор tagilnext

Ответов: 2
Просмотров: 143
Последний ответ 16.11.2017, 21:07:04
от tagilnext
создание материала

Автор Odin_S

Ответов: 0
Просмотров: 87
Последний ответ 11.11.2017, 01:37:30
от Odin_S
регистрация пользователей с одинаковым e-mail

Автор yu78

Ответов: 11
Просмотров: 300
Последний ответ 29.10.2017, 17:57:42
от yu78
Проблема с авторизацией пользователей Joomla 3.0

Автор lenslikoko

Ответов: 9
Просмотров: 1148
Последний ответ 28.10.2017, 20:34:24
от Avanturist