我是一个PHP新手,当我提交它们时,我有一个问题,POST变量有时是空的.让我难以理解的部分是每次都不会发生这种情况,我通常只需刷新页面就可以在PHP程序中获取发布数据.有时它需要几次,但一旦数据通过一次,它将继续通过罚款.
其他PHP应用程序(Wordpress和其他)工作正常,从不给出任何错误,所以我很确定我的PHP应用程序有问题.
我在CentOS 5.2服务器上安装了PHP 4.2.9,并将KeepAliveTimeout设置为1.
我处理提交数据的应用程序代码:
<?php
session_start();
if (isset($_SESSION['username'])) {
$expire = time() + (60*60*24*30);
setcookie("username", $_SESSION['username'], $expire);
}
header("Cache-control: no-cache");
if (!isset($_SESSION['username'])) {
header('Location: ./login.php');
die();
}
if(empty($_SERVER['CONTENT_TYPE'])){
$type = "application/x-www-form-urlencoded";
$_SERVER['CONTENT_TYPE'] = $type;
}
var_dump($_POST);
echo "\n";
var_dump($_SERVER);
?>
Run Code Online (Sandbox Code Playgroud)
任何帮助都将不胜感激
编辑:我发现工作发布请求和失败的请求之间存在一个区别.Firebug告诉我,当帖子失败时,状态是302重定向而不是200 ok.我不确定是什么导致这种情况,但我在发送表单中有标题缓存控件,就像它出现在上面的代码片段中一样.
有任何想法吗?
您忘记了INPUT标记上的name =参数.
<input type="text" id="xyz" name="xyz" value="123"/>
Run Code Online (Sandbox Code Playgroud)
您可以检查 $_REQUEST 变量,它是 $_POST 和 $_GET 数组的组合。如果变量不存在,则它们尚未发送,问题可能出在客户端。
您可以使用网络流量分析工具(例如 Firebug 的“网络”选项卡)来查看实际发送到服务器的内容。
| 归档时间: |
|
| 查看次数: |
10163 次 |
| 最近记录: |