Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 重定向到同一页面时,codeigniter中未显示表单验证错误_Php_Codeigniter_Redirect_Controller_Logic - Fatal编程技术网

Php 重定向到同一页面时,codeigniter中未显示表单验证错误

Php 重定向到同一页面时,codeigniter中未显示表单验证错误,php,codeigniter,redirect,controller,logic,Php,Codeigniter,Redirect,Controller,Logic,我的网站有多个页面,每个页面都包含页脚。我有一个联系我们的表格在我的网站页脚。当用户用有效值填充表单时,它应发送邮件并返回到同一页面,但如果用户提交表单时未填充任何字段,则当前页面应加载错误消息。我已经自动加载表单验证、会话库和表单以及url助手 以下是我的看法: <form action="<?php echo site_url('main/contactMail')?>" method="post" class="wpcf7-form" novalidate

我的网站有多个页面,每个页面都包含页脚。我有一个联系我们的表格在我的网站页脚。当用户用有效值填充表单时,它应发送邮件并返回到同一页面,但如果用户提交表单时未填充任何字段,则当前页面应加载错误消息。我已经自动加载表单验证、会话库和表单以及url助手

以下是我的看法:

      <form action="<?php echo site_url('main/contactMail')?>"  method="post" class="wpcf7-form"  novalidate="novalidate">

          <input type="hidden" value="<?php echo current_url();?>" name="url">
           <label for="your-name"> Full Name</label> <input type="text" name="your-name" />
           <label for="your-email"> Email*</label> <input type="email" name="your-email" />
            <label for="phonenumber">Phone Number *</label> <input type="tel" name="phonenumber" />
            <label for="textarea"> Message </label><textarea name="textarea" cols="40" rows="2"> 
            </textarea></div>
          <input type="submit" value="Send" class="wpcf7-form-control wpcf7-submit square-button material-btn" />


        <?php echo  validation_errors();?>
                 </form>

当用户提交表单而不填写表单时,当前页面正在加载,但不会显示错误。

您需要在构造函数中加载库:

 $this->load->library('form_validation');



$url = $this->input->post('url');
          $this->form_validation->set_rules('your-name','Name','required|alpha_numeric_spaces');
          $this->form_validation->set_rules('your-email','Email','required|valid_email');
          $this->form_validation->set_rules('phonenumber','Mobile','required|numeric');
          $this->form_validation->set_rules('textarea','Text', 'required');
          if($this->form_validation->run() == FALSE)
          {
             $this->session->set_flashdata('error', validation_errors());
             redirect($url);
          }
在希望接收错误或消息的控制器函数中,可以将它们设置为$data数组,如下所示:

if (!empty($this->session->flashdata('message'))) {

              $data['message'] = $this->session->flashdata('message');
          } elseif (!empty($this->session->flashdata('error'))) {

              $data['error'] = $this->session->flashdata('error');
          }

        <?php 
          if (isset($message)) {
              echo '<p class="alert alert-info">'.$message.'</p>';
          } elseif (isset($error)) {
              echo '<p class="alert alert-danger"><strong>Error: </strong>'.$error.'</p>';
          }
        ?>
if(!empty($this->session->flashdata('message')){
$data['message']=$this->session->flashdata('message');
}elseif(!empty($this->session->flashdata('error')){
$data['error']=$this->session->flashdata('error');
}

将此设置放在控制器的构造函数上:

$this->load->library('form_validation');
在视图中,在DOM或HTML元素的顶部写下以下内容:

<?php echo validation_errors(); ?>

<?php echo validation_errors(); ?>