2012-04-20 66 views
0

在我的代码它们是一个错误,那么这个笨:一个PHP错误遇到

一个PHP错误遇到

严重性的解决方案:警告

消息:无法修改标题信息 - 头已经发出(输出开始/home/websites/public_html/application/controllers/user.php:64)

文件名:助手/ url_helper.php

行号:546

这是我的代码

function register() 
{ 
        $email=$_POST['email']; 
        $pass=$_POST['pass']; 
        $cpass=$_POST['cpass']; 
      $valid = array(
            array(
             'field' => 'email', 
             'label' => 'Username(Email)', 
             'rules' => 'trim|required|valid_email|is_unique[register.email]' 
            ), 
            array(
             'field' => 'pass', 
             'label' => 'Password', 
             'rules' => 'trim|required||matches[cpass]|min_length[8]|max_length[30]|' 
            ), 
            array(
             'field' => 'cpass', 
             'label' => 'Confirm Password', 
             'rules' => 'trim|required' 
            ) 
          ); 
       $this->form_validation->set_rules($valid); 
     $this->form_validation->set_error_delimiters('<div class="error_txt">', '</div>'); 
     if ($this->form_validation->run() == FALSE) 
     { 
      echo "error"; 
      redirect('/home/'); 
     } 
     else 
     { 

      $this->load->model('User_model');  
      $rs=$this->User_model->register($_POST); 

      redirect('/home/'); 
     } 
} 
+0

如果您发现有帮助,您应该选择一个答案作为最佳答案。 – 2013-11-27 14:31:47

回答

5

它大概发生在这里:

回声 “错误”;

而是尝试将错误返回给调用者,然后从视图中显示错误。

0

不要在ajax调用中使用重定向。您可以使用JavaScript重定向来实现您的目标。试试这个片断:

if ($this->form_validation->run() == FALSE) 
{ 
    echo "error"; 
} 
else 
{ 
    $this->load->model('User_model');  
    $rs=$this->User_model->register($_POST); 
} 

在Javascript:

window.location = '<?php echo site_url('home'); ?>'; 
0

redirect实际发送Location头到浏览器。

您的输出已经开始。服务器必须在任何输出开始之前发送标题。您在重定向之前正在执行echo。所以它抛出一个错误,因为它不能在输出开始后发送头文件。

删除那echo它应该为你工作。