2012-03-11 5 views
3

私はまだCodeIgniterで覚えています。Ion Authライブラリに基づくCodeIgniterでのログインフォームの作成

Ion Auth libraryに基づいて私のcodeigniterアプリケーションでログインフォームを作成したいと思います。

私は命令の次のライブラリをインストールしていると/ログイン、認証/ CREATE_USER、認証/ログアウト、等...しかし

をのauthするために移動するとき、それは正常に動作し、私はスタンドアローンのページを必要としませんログインするには、私のホームページにフォームを埋め込みたいと思います。私は私のホームページにログインビューを提供したサンプルを使用する場合、私は、次のエラーを取得:

  • メッセージ:未定義の変数:メッセージ
  • メッセージ:未定義の変数:アイデンティティ
  • メッセージ:未定義の変数:パスワード

上記の変数は私の見解では定義されていないことを認識していますが、どこでどのように定義しなければならないのか、ライブラリに付属の提供されたサンプルで正常に動作するのはなぜですか?

答えて

0

設定/ routes.phpの

$route['login/check'] = 'auth/my_front_end_login'; 

<?php echo form_open('login/check'); ?> 

<fieldset> 
    <legend>login Credentials<legend> 

    <label for="identity">&lowast; Identity</label> 
    <input type="text" name="identity" id="identity" value="<?php echo set_value('identity');?>" /> 
    <?php echo form_error('identity');?> 

    <label for="password">&lowast; Password</label> 
    <input type="password" name="password" id="password" value="<?php echo set_value('password');?>" /> 
    <?php echo form_error('password');?> 

    <label for="message">&lowast; Message</label> 
    <input type="text" name="message" id="message" value="<?php echo set_value('message');?>" /> 
    <?php echo form_error('message');?> 
</fieldset> 

<?php echo form_close();?> 

コントローラ/ AUTH

public function my_front_end_login(){ 
    if($this->form_validation->run('login_frontend')) // uses config/form_validation.php 
    { 
     //validation passed, now attempt login via ION_AUTH 
     //open ION_Auth library file and see what the login method requests in its params. 
     if(ION_Auth::login($params)) // Im not familiar with it 
     { 
     //login success 
     } 
     else 
     { 
     //login failure 
     } 
    } 
    else 
    { 
     $this->index(); 
    } 
} 
+0

ありがとう、これは動作します。しかし、私はまだサンプル・ビューがそれらの変数に文句を言っていないのですが、私の見解はなぜか分かりません。もう少し調べてみると、ci_vars(それらの変数を保持する:メッセージ、アイデンティティ、...)がサンプルビューに読み込まれますが、私のビューには表示されません。あなたの時間をもう一度ありがとう。 – farjam

+0

私はION_Authに精通していませんが、問題はフォーム検証の失敗の方向性にあるかもしれません。上記のケースでは、単に$ this-> index()メソッドを呼び出します。したがって、set_value()変数はそのスコープ内で使用できます。 ie:ホームページ – Philip

0

form_input($ message)を使用している場合など、ログインフォームを埋め込むビューに関連するコントローラで、適切なライブラリをロードしていますか...とにかくチェックすることでこれを避けることができます$ var is_setの場合。

+0

私のコンストラクタにform_validationがロードされています。私はこれらのエラーを避けるためにissetを使うことができます。なぜ私の見解ではなく、提供されたサンプルビューでフォームが正常に動作するのか不思議です。 – farjam

0
<?php echo form_open('login/check'); ?> 

<fieldset> 
    <legend>login Credentials<legend> 

    <label for="identity">&lowast; Identity</label> 
    <input type="text" name="identity" id="identity" value="<?php echo set_value('identity');?>" /> 
    <?php echo form_error('identity');?> 

    <label for="password">&lowast; Password</label> 
    <input type="password" name="password" id="password" value="<?php echo set_value('password');?>" /> 
    <?php echo form_error('password');?> 

    <label for="message">&lowast; Message</label> 
    <input type="text" name="message" id="message" value="<?php echo set_value('message');?>" /> 
    <?php echo form_error('message');?> 
</fieldset> 

<?php echo form_close();?> 
関連する問題