codeigniter空格或标题导致警告

时间:2012-11-02 07:07:43

标签: php codeigniter

我昨天整天都收到警告错误,无法将其取消。不知道发生了什么。它抱怨在第1行的property_model.php上执行重定向之前发送了一些输出。我去那里检查了一切,但没有运气。我还检查了空格。我将粘贴错误和代码。

  

遇到PHP错误

     

严重性:警告

     

消息:无法修改标头信息 - 已发送的标头   (输出始于   /home/sddhd/public_html/rsw/application/models/property_model.php:1)

     

文件名:helpers / url_helper.php

     

行号:542

现在上面显示的模型代码是:

<? class Property_model extends CI_Model {
    function __construct()
        {
            parent::__construct();
        }

        function insert_property($propertyID)
        {
            $this->property_id = $propertyID;
            $this->type = $_POST['property_type'];
            $this->city = $_POST['property_city'];
            $this->address = $_POST['property_address'];
            $this->description = $_POST['property_description'];
            $this->owner = $_POST['property_owner'];
            $this->date_added = date("Y-m-d");
            $this->price = $_POST['property_price'];
            $this->offer_type = $_POST['property_offer'];
            $this->contact = $_POST['property_contact'];
            $this->db->insert('property', $this);
        }

        function insert_image_details($id, $url, $extension)
        {
            $current->property_id = $id;
            $current->extension = $extension;
            $current->url = $url;
            $this->db->insert('photos', $current);
        }
    }
?>

以及重定向调用的使用(包括调用模型的整个控制器调用):

<?php
class Property extends CI_Controller {
    public function __construct()
    {
        parent::__construct();
        $this->load->helper('form');
                $this->load->helper('url');
        $this->load->model('property_model', 'propertymodel');
        $this->load->database();
    }

    public function index() {
        $this->load->view('home');
    }

    public function new_property()
    {
        $this->load->view('new_property', array('error' => '' ));    
    }

    public function create_property()
    {
        //Pass the posted data to model for insertion
        $propertyID = uniqid();
        $this->propertymodel->insert_property($propertyID); 
        $this->do_upload($propertyID);
        redirect('/home');
    }


        public function do_upload($propertyId)
        {
            $config['upload_path'] = './uploads/';
            $config['allowed_types'] = 'gif|jpg|png|jpeg';
            $config['max_size'] = '1000';
            $config['max_width']  = '1024';
            $config['max_height']  = '768';

            $this->load->library('upload', $config);
                if ( ! $this->upload->do_upload())
                {
                    $error = array('error' => $this->upload->display_errors());

                    $this->load->view('create_property', $error);
                }
                else
                {
                    $data = array('upload_data' => $this->upload->data());
                    //array to access all the file uploaded attributes
                    $image_data = $this->upload->data();

                    //parameters to be passed to model: 
                    $imgUrl = "../.".$config['upload_path'].$image_data['file_name'];
                    //$imgTitle = $image_data['file_name'];
                    $fileExtension = $image_data['file_ext'];
                    $this->propertymodel->insert_image_details($propertyId, $imgUrl, $fileExtension);
                }           
        }//end of function


}
?>

非常感谢任何帮助

5 个答案:

答案 0 :(得分:2)

你在属性控制器中有错误。 在方法create_property

中替换这两行
$url= base_url().'home';
redirect($url);

redirect('/home');

答案 1 :(得分:2)

我遇到了同样的问题。什么都没有帮助。然后我决定创建一个完整的新文件,并将导致错误的文件中的内容复制到新文件中。这有效!显然,原始文件在位置0处有一个隐藏字节。

答案 2 :(得分:0)

你启用了error_reporting吗?该模型可能会引发您不会在此处看到的错误。此错误会导致已发送的标头。

顺便说一下,方法$currentinsert_image_details的来源是什么?那可能会引发错误。

答案 3 :(得分:0)

可能会在加载实际页面之前发送一些警告。请使用文档根目录的index.php中的以下函数打开错误报告。

ini_set('display_errors', 'On');
error_reporting(E_ALL);

答案 4 :(得分:0)

在Stackoverflow中找到另一个人发布的替代解决方案。

 //Alternate Code for solve this issue
    $url = 'site/function1';
    echo'
    <script>
    window.location.href = "'.base_url().'index.php?/'.$url.'";
    </script>
    ';

这非常有效!希望使用它没有任何缺点!谢谢大家的支持。

Codeigniter: headers already sent error