2012-08-28 4 views
0

Tank_auth보기에서 login_form을 HTML 템플릿에 추가하려고합니다.로그인 login_form로드하기 탱크 인증보기 PHP 오류

이렇게하면 누락 된 변수에 관한 몇 가지 오류가 반환되며, 내가 잘못하고 있는지 확실하지 않습니다.

내 컨트롤러 :

PHP는 오류가 있었다 다음입니다

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html lang="en"> 
    <head><?php echo $template['head'] ?></head> 
<body> 
    <div id="topbar"><?php echo $topbar['account'] ?></div> 
</body> 
</html> 

페이지를로드 할 때 내가 받고있어 오류 : 같은

public function index() 
{ 
    $topbar['account'] = $this->load->view('auth/login_form'); 
    $data['topbar'] = $topbar; 
    $this->load->view('main_template', $data); 
} 

홈페이지 템플릿 보인다 발생했습니다

심각도 : Noti CE

메시지 : 정의되지 않은 변수 : show_captcha

파일 이름 : 인증/login_form.php

줄 번호 :

: 47

또한, 나는에 대해 동일한 오류 메시지가 표시됨

Undefined variable: login_by_username

Heres the login form (손길이 닿지 않은 ... defa ULT의 tank_auth 양식)

<?php 
$login = array(
    'name' => 'login', 
    'id' => 'login', 
    'value' => set_value('login'), 
    'maxlength' => 80, 
    'size' => 30, 
); 
if ($login_by_username AND $login_by_email) { 
    $login_label = 'Email or login'; 
} else if ($login_by_username) { 
    $login_label = 'Login'; 
} else { 
    $login_label = 'Email'; 
} 
$password = array(
    'name' => 'password', 
    'id' => 'password', 
    'size' => 30, 
); 
$remember = array(
    'name' => 'remember', 
    'id' => 'remember', 
    'value' => 1, 
    'checked' => set_value('remember'), 
    'style' => 'margin:0;padding:0', 
); 
$captcha = array(
    'name' => 'captcha', 
    'id' => 'captcha', 
    'maxlength' => 8, 
); 
?> 
<?php echo form_open($this->uri->uri_string()); ?> 
<table> 
    <tr> 
     <td><?php echo form_label($login_label, $login['id']); ?></td> 
     <td><?php echo form_input($login); ?></td> 
     <td style="color: red;"><?php echo form_error($login['name']); ?><?php echo isset($errors[$login['name']])?$errors[$login['name']]:''; ?></td> 
    </tr> 
    <tr> 
     <td><?php echo form_label('Password', $password['id']); ?></td> 
     <td><?php echo form_password($password); ?></td> 
     <td style="color: red;"><?php echo form_error($password['name']); ?><?php echo isset($errors[$password['name']])?$errors[$password['name']]:''; ?></td> 
    </tr> 

    <?php if ($show_captcha) { 
     if ($use_recaptcha) { ?> 
    <tr> 
     <td colspan="2"> 
      <div id="recaptcha_image"></div> 
     </td> 
     <td> 
      <a href="javascript:Recaptcha.reload()">Get another CAPTCHA</a> 
      <div class="recaptcha_only_if_image"><a href="javascript:Recaptcha.switch_type('audio')">Get an audio CAPTCHA</a></div> 
      <div class="recaptcha_only_if_audio"><a href="javascript:Recaptcha.switch_type('image')">Get an image CAPTCHA</a></div> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <div class="recaptcha_only_if_image">Enter the words above</div> 
      <div class="recaptcha_only_if_audio">Enter the numbers you hear</div> 
     </td> 
     <td><input type="text" id="recaptcha_response_field" name="recaptcha_response_field" /></td> 
     <td style="color: red;"><?php echo form_error('recaptcha_response_field'); ?></td> 
     <?php echo $recaptcha_html; ?> 
    </tr> 
    <?php } else { ?> 
    <tr> 
     <td colspan="3"> 
      <p>Enter the code exactly as it appears:</p> 
      <?php echo $captcha_html; ?> 
     </td> 
    </tr> 
    <tr> 
     <td><?php echo form_label('Confirmation Code', $captcha['id']); ?></td> 
     <td><?php echo form_input($captcha); ?></td> 
     <td style="color: red;"><?php echo form_error($captcha['name']); ?></td> 
    </tr> 
    <?php } 
    } ?> 

    <tr> 
     <td colspan="3"> 
      <?php echo form_checkbox($remember); ?> 
      <?php echo form_label('Remember me', $remember['id']); ?> 
      <?php echo anchor('/auth/forgot_password/', 'Forgot password'); ?> 
      <?php if ($this->config->item('allow_registration', 'tank_auth')) echo anchor('/auth/register/', 'Register'); ?> 
     </td> 
    </tr> 
</table> 
<?php echo form_submit('submit', 'Let me in'); ?> 
<?php echo form_close(); ?> 

이 희망 누군가가 탱크 인증에 익숙하고 쉽게이 문제를 해결할 수 있습니다.

감사합니다.

+0

나는 그것이 깨끗한 설치에 아무런 문제가 없었음에도 불구하고 captcha 기능을 사용하고 있으며 사용자가 전자 메일 또는 사용자 이름을 통해 권한을 부여 받았 는가에도 불구하고 귀하의 코드와 tank_auth가 충돌한다고 생각합니다. –

+0

저는 기본 기능을 사용합니다. 즉, 전자 메일 또는 사용자 이름 (입력하기로 결정한 사용자)을 통해 권한을 부여 받아야합니다. 그리고 네, 현재 captcha 기능을 사용하고 있습니다 (기본값). CI 및 Tank Auth를 새로 설치합니다. 다른 페이지에서는 auth/login의 컨트롤러 URI에 직접 연결됩니다. 하지만 이번에는 내 페이지에 간단히 추가하고 싶습니다. –

+0

Tank_Auths 컨트롤러를 모델로 변경하고이를 통해 호출 해 보았습니다. 지금까지 문제 없음. –

답변

1

첫째가 로그인을 사용하여 당신에게 show_captcha을 통과, 당신이 통과되지 않은보기를 login_form 방법 인증 컨트롤러를 확인이 보안 문자를 표시하지 않습니다

$login_data['login_by_username'] = ($this->config->item('login_by_username','tank_auth') AND $this->config->item('use_username','tank_auth')); 
    $login_data['login_by_email'] = $this->config->item('login_by_email', 'tank_auth'); 

    $login_data['show_captcha'] = FALSE 

    $topbar['account'] = $this->load->view('auth/login_form',$login_data); 
    $data['topbar'] = $topbar; 
    $this->load->view('main_template', $data); 

show_captcha는 login_view,하지만 난 당신의 로그인 방법을 따르도록 제안하십시오 auth의 인증 컨트롤러에 감사드립니다.