Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.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页面突然重定向_Php_Jquery_Ajax_Zend Server - Fatal编程技术网

PHP页面突然重定向

PHP页面突然重定向,php,jquery,ajax,zend-server,Php,Jquery,Ajax,Zend Server,我的PHP页面上有以下代码,它从客户端获取消息并将其存储到服务器上的日志文件中。该函数由jqueryajax函数调用(如下所示)。AJAX请求正确地发送数据,PHP代码工作正常。但是,当AJAX请求的响应被发回时,页面突然重定向到index.php(我的主页): PHP代码 function store_chat_msg_function() { //Check if session is active if(isset($_SESSION['NAME'])) {

我的PHP页面上有以下代码,它从客户端获取消息并将其存储到服务器上的日志文件中。该函数由jqueryajax函数调用(如下所示)。AJAX请求正确地发送数据,PHP代码工作正常。但是,当AJAX请求的响应被发回时,页面突然重定向到index.php(我的主页):

PHP代码

function store_chat_msg_function()
{
    //Check if session is active
    if(isset($_SESSION['NAME']))
    {
        $data = $_POST;

        $text = $data["message"];
        $filepath = $data["filepath"];

        $fp = fopen($filepath, 'a');
        fwrite($fp, "<div class='msgln'>(".date("g:i A").") <b>".$_SESSION['NAME']."</b>: ".stripslashes(htmlspecialchars($text))."<br></div>");
        fclose($fp);

        //Push data array to be sent into array
        $json = array();
        $bus = array(
            'message' => "1"
        );
        array_push($json, $bus);

        //Encode to JSON format
        $jsonstring = json_encode($json);

        //Specify type of data being sent
        header("content-type:application/json");    //<-----(error:line 179)

        //Finally send the data
        echo $jsonstring;
    }
    else
    {

    }
}
我删除了标题(“内容类型:application/json”);和数据类型:“json”,发现数据被我调试的ZEND服务器发送的错误数据弄乱了。错误是:


警告:会话_start():无法发送会话缓存 限制器-标题已在C:\Program文件中发送 (x86)\Zend\Apache2\htdocs\ChatServer\post.php第2行
警告:无法修改标题信息-标题 已在C:\程序文件中发送 (x86)\Zend\Apache2\htdocs\ChatServer\post.php联机 179
[{“消息”:“1”}]


因此,我明白我可能是因为ZEND debugger错误而弄乱了标题,该错误干扰了我的JSON数据(见错误末尾的附件)?给出了什么?感谢您的时间和耐心。

您无法修改标题,因此请将代码移到页面顶部:

header("content-type:application/json");
Top表示已处理页面的顶部,而不是函数的顶部


如果由于某种原因无法将
标题(“内容类型:application/json”)
移动到页面顶部,则将
添加
ob_start();
作为脚本的第一行。

在向客户端发送任何内容(包括标题)之前,需要调用session_start()。在发送标题时,它们必须是您在实际发送任何内容之前发送的下一个内容。
header("content-type:application/json");