2

我昨天一整天都收到警告错误,无法将其关闭。不知道发生了什么。它抱怨在第 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


}
?>

任何帮助将不胜感激

4

5 回答 5

3

我有同样的问题。没有任何帮助。然后我决定创建一个完整的新文件并将导致错误的文件中的内容复制到新文件中。这行得通!显然原始文件在位置 0 有一个隐藏字节。

于 2013-04-08T19:25:34.257 回答
2

您在属性控制器中有错误。在方法 create_property 中替换这两行

$url= base_url().'home';
redirect($url);

redirect('/home');
于 2012-11-02T07:38:12.260 回答
0

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

ini_set('display_errors', 'On');
error_reporting(E_ALL);
于 2012-11-02T08:13:41.097 回答
0

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

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

这真的很好用!希望使用它没有缺点!谢谢大家的支持。

Codeigniter:标头已发送错误

于 2012-11-02T08:42:57.630 回答
0

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

顺便问一下,$current方法中的哪里insert_image_details来的?这可能会引发错误。

于 2012-11-02T07:14:15.893 回答