gpt4 book ai didi

PHP页面突然重定向

转载 作者:行者123 更新时间:2023-12-01 03:37:47 24 4
gpt4 key购买 nike

我的 PHP 页面上有以下代码,它从客户端获取消息并将其存储到服务器上的日志文件中。该函数由 jquery AJAX 函数调用(如下所示)。 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
{

}
}

AJAX功能是:

//On submit message
$("#submitmsg").click(function(){

var ptarget = $(this).html();

//get some values from elements on the page:
//Set parameters...
var clientmsg = $("#usermsg").val();

//Clear the text box
$("#usermsg").val("");

var data = {
"action": "send_chat_msg",
"message": clientmsg,
"filepath": globalrefreshfile
};
data = $(this).serialize() + "&" + $.param(data);

//Send the data using post and put the results in a div
$.ajax({
url: "post.php",
type: "POST",
data: data,
datatype: "json",
success: function(data) {
if(data[0].message!="1"){
alert("Message was not sent.");
}
},
error: function(jqXHR, textStatus, errorThrown) {
alert(jqXHR.status);
alert(errorThrown);
$("#chatbox").html('There was an error updating chat window');
$("#chatbox").fadeIn(1500);
}
});
});

我删除了 header("content-type:application/json");和 datatype: "json"在 AJAX 函数中,发现数据被我正在调试的 ZEND 服务器发送的错误数据弄乱了。错误是:

"
Warning: session_start(): Cannot send session cache limiter - headers already sent in C:\Program Files (x86)\Zend\Apache2\htdocs\ChatServer\post.php on line 2
Warning: Cannot modify header information - headers already sent in C:\Program Files (x86)\Zend\Apache2\htdocs\ChatServer\post.php on line 179
[{"message":"1"}]

所以我知道我认为我可能已经弄乱了基于 ZEND 调试器错误的 header ,该错误干扰了我的 JSON 数据(见错误末尾附加的内容)?是什么赋予了?感谢您的时间和耐心。

最佳答案

如果无法将 header("content-type:application/json"); 移动到脚本中,请添加 ob_start(); 作为脚本中的第一行由于某种原因位于页面顶部。

关于PHP页面突然重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28880198/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com