2012-03-11 2 views
3

저는 CodeIgniter에서 여전히 학습하고 있습니다.Ion Auth 라이브러리를 기반으로 CodeIgniter에서 로그인 폼을 만듭니다.

Ion Auth library을 기반으로하는 codeigniter 응용 프로그램에서 로그인 양식을 만들고 싶습니다.

내가 지시에 따라 라이브러리를 설치하고/로그인, 인증/CREATE_USER, 인증/로그 아웃, 등등 ... 그러나

를 정식하기 위해 탐색 할 때 잘 작동, 내가 독립 실행 형 페이지를 필요가 없습니다 로그인하려면 양식을 홈페이지에 삽입하고 싶습니다.

  • 메시지 : 내 홈페이지에 샘플 제공 로그인보기를 사용하면, 다음과 같은 오류를 얻을 정의되지 않은 변수 : 메시지를
  • 메시지 : 정의되지 않은 변수 : 정체성
  • 메시지 : 정의되지 않은 변수 : 비밀번호

위의 변수가 내보기에 정의되어 있지 않다는 것을 알고 있습니다. 어디에서 어떻게 정의해야하며 라이브러리와 함께 제공된 샘플에서 제대로 작동하는지 이유를 알 수 없습니다.

답변

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();?> 

컨트롤러/인증

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 (메시지, ID 등) 변수가 샘플보기에로드되지만 내보기에는로드되지 않은 것처럼 보입니다. 시간 내 주셔서 다시 한번 감사드립니다. – farjam

+0

나는 ION_Auth에 익숙하지 않지만, 폼 유효성 검증 실패가 지시되는 방식에 문제가있을 수 있다고 말했기 때문에, 위의 경우에 나는 $ this-> index() 메소드를 호출한다. 따라서 set_value() 변수는 해당 범위 내에서 사용할 수 있습니다. ie : 홈페이지 – Philip

0

예를 들어 form_input ($ message)을 사용하는 경우 "form_validation"과 같이 로그인 양식을 삽입하려는보기와 관련된 컨트롤러에서 필요한 라이브러리를로드합니까? 어쨌든 검사하여이를 방지 할 수 있습니다 if $ 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();?> 
,617,