0

ユーザーがテキストフィールドにデータを入力したかどうかをチェックするコードがあります。

if ( $this->input->post('current_password') || 
     $this->input->post('new_password') || 
     $this->input->post('repeat_password') ) {
   return true;
} else {
   return false;
}

上記falseのコードがを返すのに、以下のコードが戻るのはなぜtrueですか?

if ( $this->input->post('current_password') ) {
   return true;
} else {
   return false;
}
4

2 に答える 2

2

これは機能するはずです:

if ( ($this->input->post('current_password')) || 
     ($this->input->post('new_password')) || 
     ($this->input->post('repeat_password')) )
{
    return true;
} 
else 
{
    return false;
}

私はあなたが( )の間にいくらかのスペースを入れて追加を含める必要があったと思います||

于 2013-01-05T03:28:37.827 に答える
1

これらのタイプのフィールドは、1つのことしか意味しません。ユーザーパスワード変更フォームに使用しているのは正しいですか?その場合:

//Below means that the user required to fill in all 3 of the fields. None of them must return false (be left blank)
if ($this->input->post('current_password') && $this->input->post('new_password') && $this->input->post('repeat_password') ) {
  return true;
} else {
  return false;
}

ただし、codeigniterは、フォームバリデーターを使用してフォームフィールドをチェックするためのより良い方法をサポートしています。

$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');

$this->form_validation->set_rules('password', 'Password', 'required');
$this->form_validation->set_rules('newpass', 'New password', 'required');
$this->form_validation->set_rules('passconf', 'Password Confirmation', 'required');

if ($this->form_validation->run() == FALSE) {
  $this->load->view('myform');
} else {
  $this->load->view('formsuccess');
}
于 2013-01-05T04:11:06.930 に答える