0

ユーザー名とパスワードの 2 つのフィールドを持つフォームを検証したいと考えています。データを挿入すると、CodeIgniter はエラー メッセージを表示しますが、正しいデータを挿入します。

景色:

<div id="acformulario"> 
    <?php echo validation_errors(); echo form_open('cindice/valida');?>
        <label for="correo" id="dcorreo">Direcci&oacute;n de correo</label>
        <input type="text" name="drcorreo" id="dcc"/><br /><br />
        <label for="contrasenya" id="cont">Contrase&ntilde;a</label>
        <input type="password" name="contrasena" id="cmcont"/><br /><br />
        <!--<label for="enviar"></label>-->
        <input type="submit" name="envia" id="bentrar" value="Entrar"/> 
    </form>
</div>

コントローラー:

public function valida() 
 {
    $this->input->post('drcorreo');
    $this->input->post('contrasena');

    $this->form_validation->set_rules('correo','Direcci&oacute;n de 
            correo','trim|required|valid_email|xss_clean');
    $this->form_validation->set_rules('contrasenya','Contrase&ntilde;a',
            'trim|required|md5|xss_clean');

    if ($this->form_validation->run()==true)
     {
        echo ("correct");   
     }
    else {

        echo ("wrong");

     }  
 }

正しいまたは間違ったデータを入力すると、ルールのメッセージが表示されます。たとえば、両方のフィールドが必須ですが、空のフィールドで送信ボタンをクリックすると、画面で間違って表示され、ユーザー名が必要であることを確認する必要があります。

どうしたの?

ありがとう。

4

3 に答える 3

0

コードが更新されました:

見る:

<div id="acformulario"> 
    <?php echo validation_errors(); echo form_open('cindice/valida');?>
      <label for="correo" id="dcorreo">Direcci&oacute;n de correo</label>
      <input type="text" name="drcorreo" id="dcc"/><br /><br />
      <label for="contrasenya" id="cont">Contrase&ntilde;a</label>
      <input type="password" name="contrasena" id="cmcont"/><br /><br />
      <input type="submit" name="envia" id="bentrar" value="Entrar" />  
    </form>
</div>

コントローラ:

public function valida() 
{
  $this->input->post('drcorreo');
  $this->input->post('contrasena');

      $this->form_validation->set_rules('drcorreo','Direcci&oacute;n de   
      correo','trim|required|valid_email|xss_clean');
  $this->form_validation->set_rules('contrasena','Contrase&ntilde;a',
      'trim|required|md5|xss_clean');
      if ($this->form_validation->run()==true)
     {
        echo ("good");  
     }
    else {

        echo ("wrong");

         }  
}
于 2013-05-14T11:11:55.550 に答える
0

まず第一に、あなたの名前が混同されました codeingiters フォームの検証では、ラベルではなく入力タイプの名前がパラメーターとして使用されます。

入力名がdrcorreo

その後、あなたのset_rules使用に

set_rules('drcorreo','Direcci&oacute;n decorreo','trim|required|valid_email|xss_clean');

最初のパラメータは入力フィールドの名前です

于 2013-05-14T09:04:31.823 に答える
0

$this->form_validation->set_rules('drcorreo','Direcci&oacute;n de 
            correo','trim|required|valid_email|xss_clean');
$this->form_validation->set_rules('contrasena','Contrase&ntilde;a',
            'trim|required|md5|xss_clean');

set_rules メソッドの最初のパラメーターを変更します。入力の名前を取ります。

于 2013-05-14T10:39:23.983 に答える