Code Igniter のネイティブ フォーム バリデーション エラー関数を適切に機能させるのに非常に苦労しているため、あきらめようとしています。私のロジックは矢印のようにまっすぐに見えますが、エラー ポージングの動作は、私のロジックに基づいたループに陥っています。
ここに何が起こっているかのリストがあります。
*フィールドに何も入力せずにフォームを送信すると、無効な電子メールとパスワードのエラーが発生するはずです
*正しい電子メールを入力してパスワード フィールドを空白のままにすると、適切な無効なパスワード エラーが表示されます。
*正しいメールと間違ったパスワードを入力すると、ページが白くロードされます
※パスワード欄だけ入力すると=無効なメールが出てきます
※意味不明なメールを入力してパスワードを空欄にすると=無効なメールが表示される
起こっている偽のフードの多くの組み合わせがあります。
また、入力された電子メールがデータベースに存在しない場合に認識される場所に固有の電子メールを作成したいと考えています。
私はこれにあまりにも長い間立ち往生しており、本当に助けが必要です. 私はコードイグナイターに不慣れで、なぜこれが起こっているのか本当に混乱しています。どんな助けでも大歓迎です。
これが私のコードです:
形:
<?php
echo form_open('auth/validate_credentials_login');
echo "<span class='errors_login'>";
echo form_error('email_login');
echo "</span>";
echo form_label('', 'Email', 'email_login');
$data = array( 'name' => 'email_login', 'class' => 'input', 'placeholder' => 'Email');
echo form_input($data, set_value('email_login'));
echo "<span class='errors_login'>";
echo form_error('password_login');
echo "</span>";
echo form_label('', 'Password;', 'password_login');
$data = array( 'name' => 'password_login', 'class' => 'input', 'placeholder' => 'Password');
echo form_password($data, set_value('sha1(password_login)'));
echo form_submit('submit_login', 'Login');
echo form_close();
?>
コントローラ:
function validate_credentials_login()
{
$this->load->library('session');
$this->load->helper(array('form','url'));
$this->load->model('user_model', 'um');
$this->load->library('encrypt');
$this->load->library('form_validation');
$this->form_validation->set_rules('email_login', 'Email', 'required');
$this->form_validation->set_rules('password_login', 'Password', 'required');
$login = $this->input->post('submit_login');
if($login) {
if($this->form_validation->run() == FALSE)
{
$data['main_content'] = 'home/home_page';
$this->load->view('includes/templates/home_page_template', $data);
}
else
{
$user = $this->um->validate_home_login(array('email' => $this->input->post('email_login')));
if($user->password == $this->encrypt->sha1( $user->salt . $this->encrypt->sha1($this->input->post('password_login')))) {
$this->session->set_userdata(array(
'email' => $this->input->post('email_login')
));
redirect('account/edit');
exit;
}
}
}
}
前もって感謝します!