0

我有兴趣使用 TankAuth for CodeIgniter 批量创建批量用户/密码。我在 CI 论坛上问了这个问题,但没有得到回应:

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

除了我的线程作为第三个结果和一堆不相关的网站之外,谷歌搜索并没有出现太多。

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>";
    }

}

只需从控制器 ping batchReg() 即可将其付诸实施!

4

1 回答 1

3

对我来说听起来像是一个简单的循环操作

以某种方式(无论来源)以可迭代的形式(如数组)获取您的用户名$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包含用户的所有新密码。

于 2011-02-02T03:26:04.770 回答