Модераторы: 2man
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавление пользователей в цикле 
V
    Опции темы
Alex103
Дата 14.5.2010, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 5.1.2005
Где: Украина, г. Харьк ов

Репутация: нет
Всего: нет



Добрый день.
Помогите решить следующую проблему. У меня задача, добавить много пользователей из excel файла. Все преобразования я сделал и перевел данные в массив. Далее делаю следующее:
Код

        foreach ($userList as $item){
            $salt  = JUserHelper::genRandomPassword(32);
            $crypt = JUserHelper::getCryptedPassword($item['zach'], $salt);
            $pass = $crypt.':'.$salt;
            $now =& JFactory::getDate();
            $name = $item['fam']." ".mb_substr($item['name'],0,1,'utf-8').".".mb_substr($item['otch'],0,1,'utf-8');
            
            $user = new JUser();
            $user->name = $name;
            $user->username = $this->translit($name." ".$item['group']);
            $user->email = '[email protected]';
            $uesr->password_clear = $item['zach'];
            $user->usertype = 'Registered';
            $user->block = 0;
            $user->gid = 18;
            $user->registerDate = $now->toMySQL();
        
            $user->password = $pass;
            $user->password2 = $item['zach'];
            
            print_r($user);
            //print_r($item);
            //print_r($user->save());
            
        }

По непонятным причинам добавляется только первый пользователь из массива, остальные игнорируются. Интересно то что, если делать prtint_r($users) то видно что объекты создаются и данные туда помещаются правильно. Пробовал ставить на начало другого пользователя - тоже самое. Я полагаю что foreach не дожидается выполнения метода save() и запускает следующий раз метод, а так как выполнение предыдущего не закончилась, возникает сбой.

Я пробовал добавлять: 
Код

unset($user);

в цикле, ничего не дало.

При помощи:
Код

for(){

}

тоже самое.

Наведите на путь истины!


--------------------
Мой адресс не дом и не улица, мой адресс WWW
PM MAIL WWW ICQ YIM   Вверх
Alex103
Дата 15.5.2010, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 5.1.2005
Где: Украина, г. Харьк ов

Репутация: нет
Всего: нет



Определил в чем проблема.
При добавлении пользователей я добавлял им одинаковый email, который в данном сервисе вовсе не используется.
Код
$user->email = '[email protected]';

Joomla не позволяет использовать один адрес двум юзерам.

Проблема кроется в проверке таблицы в файле libraries/joomla/user/user.php 493 строка:
Код
if (!$table->check()) {
            $this->setError($table->getError());
            return false;
        }

Вот эта то проверка и не выполнялась. Может кто столкнется с подобным. Благодарю всех кто хотел помочь.



--------------------
Мой адресс не дом и не улица, мой адресс WWW
PM MAIL WWW ICQ YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Joomla | Следующая тема »


 




[ Время генерации скрипта: 0.0568 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.