Codeigniter / PHP: создание пользователей в пакетном режиме с TankAuth - PullRequest
0 голосов
/ 02 февраля 2011

Я заинтересован в создании массовых пользователей / паролей в пакете, используя TankAuth для CodeIgniter.Я задавал этот вопрос на форумах CI, но не получил ответов:

http://codeigniter.com/forums/viewthread/110993/P330/#837327

Поиски в Google не показывают ничего, кроме моей темы в качестве третьего результата икуча несвязанных сайтов.

http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=create+batch+users+tankauth

Кто-нибудь успешно сделал это с помощью алгоритма рекурсии?Если да, можете ли вы опубликовать код, чтобы я пошёл по правильному пути?Спасибо!

Версии программного обеспечения:

CI 1.7.3

TankAuth 1.0.7

PHP 5.x

РЕДАКТИРОВАТЬ 2/15:

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

function batchReg()
{
    $this->load->model('mymodel');

    // connect to the database
    $this->mymodel->dbconnect();

    // build it
    $query = "SELECT user, email, pass from newusers ORDER BY user ASC";

    // ship it
    $result = mysql_query($query);

    // loop it
    while ($row = mysql_fetch_array($result))
    {
        $data = $this->tank_auth->create_user($row['user'], $row['email'], $row['pass'], FALSE);
        print_r($data);
        echo "<p>";
    }

}

Просто отправьте команду patch bgReg () с контроллера, чтобы запустить его в действие!

1 Ответ

3 голосов
/ 02 февраля 2011

Для меня звучит как простая операция с циклом

каким-то образом (независимо от источника) получить ваши имена пользователей в итерируемой форме, такой как массив $user_list

мы скажем, что это выглядит так

Array(
    Array(
        [username] => '...',
        [email]    => '...',
        [password] => '',     //leave password empty
    ),
    Array(
        [username] => '...',
        [email]    => '...',
        [password] => '',     //leave password empty
    ),
    ... etc.
)

Затем создайте простую процедуру зацикливания для обработки новых регистраций, сохраняя пароль обратно в массив, чтобы у вас был полный список логинов, новых (рандомизированных) паролей и электронных писем.

//loop by referance in order to properly store the generated password
foreach($user_list as &$user) {

    //generate 8 char password and store it
    $user['password'] = substr(uniqid(),2,8);

    //run register routine (not sure on tank auth's specific syntax
    $this->tankauth->register($user['username'],$user['email'],$user['password'],FALSE);
}

Затем в конце ваш $user_list содержит все новые пароли для ваших пользователей.

...