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

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();
И снова заработало.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Посещение сайта только для зарегистрированных пользователей

Автор FlexNL

Ответов: 9
Просмотров: 1001
Последний ответ 05.11.2021, 20:57:59
от FlexNL
Ошибка при Создание пунктов меню

Автор RomanRomanivich

Ответов: 0
Просмотров: 396
Последний ответ 23.09.2021, 15:01:14
от RomanRomanivich
Права доступа для отдельных пользователей

Автор vladmor

Ответов: 3
Просмотров: 550
Последний ответ 28.07.2021, 09:51:35
от ShopES
Создание сайта-аналога Ярмарки Мастеров

Автор sekundant11

Ответов: 5
Просмотров: 858
Последний ответ 25.03.2021, 06:55:27
от IToro82
Версия стилей и скриптов откуда подситавляется?

Автор Dolphin4ik_1

Ответов: 5
Просмотров: 495
Последний ответ 26.02.2021, 06:30:57
от beliyadm