2012-04-20 36 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它應該爲你工作。