2011-02-01 14 views
0

CodeIgniterのTankAuthを使用して一括してユーザ/パスワードを作成することに興味があります。私はCIのフォーラムでこの質問をしたが、何の回答を得なかっ:Codeigniter/PHP:TankAuthを使用してバッチでユーザを作成する

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の

EDIT 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()!何とか

+0

ランダムなユーザー名とランダムなパスワード?あなたはどこかリストを持っていますか? – jondavidjohn

+0

私はリストを持っています。 "ライブラリのcreate_userメソッドを呼び出すことで新しいユーザーが登録されています(コントローラauth.php、149行)。複数のユーザーのログインを作成するには、ユーザーログイン、電子メール、パスワード、電子メールの有効化フラグ(特別なリンクをクリックすることで確認できる電子メール) "というパラメータをデータベースから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は、ユーザーのために、すべての新しいパスワードが含まれています。

+0

+1かなりこの – Ross

+0

これは私がやる予定だったものです。あなたは私にそれを打つ! :)今私のソースを投稿する必要はないと思う;) –

関連する問題