$_POST、$_GET 和 $_REQUEST 为空

2024-04-19

SOLVED:我省略了输入字段中的名称属性。 我有一个简单的 html/php 表单。我提交了。 $_POST 始终为空。如果我尝试 get ,那么 GET 总是空的。 $_REQUEST 和 php://input 相同。我没有得到任何回报。

有很多关于这个主题的帖子,但我还没有找到解决我的问题的方法。我没有重写或重定向。 method_request是POST。与表单中的 id 没有冲突, php://input 也是空的,REQUEST 也是空的。我已将 Suhosin.simulation 打开,这意味着它不起作用。 POST_MAX_SIZE = 16M。对于两篇小文本来说应该足够了。

php.ini 变量request_order 和variable_order 分别是GP 和GPS。 Magic_quotes_gpc 已关闭。默认 mime-type = text/html 并且每个页面都有字符集 UTF-8。 函数 php_sapi_name() 的结果是 apache2handler。

PHPVersion = 5.3,Suhosin - 补丁 0.9.1。操作系统 = Ubuntu 12.04 LTS,Apache = 2.2.22。

这是两个文件。我对它们进行了一些简化,但通常它们工作没有任何问题。我有类似的 GET 方法文件。

<?php

$tmpHeader = "<!DOCTYPE html><html><head>\n";
$tmpHeader .= "<meta charset=\"UTF-8\"> <meta http-equiv=\"Content-Type\" content=\"application/x-www-form-urlencoded; charset=utf-8\">\n";
$tmpHeader.= "<title>testPost</title>\n";
$tmpHeader.= "<link rel=\"stylesheet\" href=\"/css/layout.css\">\n";
$tmpHeader.= "<link rel=\"stylesheet\" href=\"/css/semantics.css\">\n";
$tmpHeader.= "<link rel=\"stylesheet\" href=\"/css/defaults.css\">\n";
$tmpHeader.="</head>";

$tmpBody = "<body id=\"defaultBody\"><section id=\"page\">\n";
$tmpBody .= "<div id=\"container\">\n";
$tmpBody .= "<form id=\"pagewrap\" name=\"pagewrap\" method=\"POST\" action=\"http://www.thuis.lb/testPost_2.php\" enctype=\"application/x-www-form-urlencoded\">\n";
$tmpBody .= "<input type=\"hidden\" id=\"context_id\" value=\"testPost\">\n";
$tmpBody.="<header id=\"pageHeader\">\n";
$tmpBody.="<div id=\"leftHeader\"><img src=\"".clientSideImages."Homerus.jpg\" alt=\"homerus\"></div>\n";
$tmpBody.="<div id=\"centralHeader\"><h1>Slogan</h1></div>\n";
$tmpBody.="</header>\n";

$pageData = "<section id=\"doc_content\">\n";
$pageData.= "<fieldset><legend>testPost</legend>\n";
$pageData.= "<div class=\"fourcolumns_odd\"><label for=\"username\">username</label></div>\n";
$pageData.= "<div class=\"fourcolumns_even\"><input type=\"text\" id=\"username\" value=\"\"></div>\n";
$pageData.= "<div class=\"fourcolumns_odd\"><label for=\"password\">password</label></div>\n";
$pageData.= "<div class=\"fourcolumns_even\"><input type=\"text\" id=\"password\" value=\"\"></div>\n";
$pageData.= "<div class=\"onecolumn\"><input type=\"submit\" id=\"submitButton\" value=\"inloggen\"></div>\n";
$pageData.= "</fieldset>\n";
$pageData.= "<input type=\"hidden\" id=\"passwordHash\" value=\"\">\n";
$pageData.="</section><!--end of section doc_content -->\n";
$tmpBody .= "<div id=\"leftWing\"><img src=\"".clientSideImages."IronPillarDelphi.jpg\" alt=\"homerus\"></div>\n";
$tmpBody.= "<div id=\"centerField\" class=\"centerVertically\">".$pageData."</div>\n";
$tmpBody.= "<div id=\"rightWing\"><img src=\"".clientSideImages."IronPillarDelphi.jpg\" alt=\"homerus\"></div>\n";
$tmpBody.="</form>\n";
$tmpBody.= "</div><!-- end of container -->\n";
$tmpBody.="</section><!-- end of page -->\n";
$tmpBody.="</body></html>\n";

logStatement('requestheaders: ');
$testpostdata = file_get_contents("php://input");
log_r($testpostdata);

print $tmpHeader.$tmpBody;
?>

$_POST 数据应发送到的另一个文件:

<!DOCTYPE html><html><head>
<meta charset="UTF-8"> <meta http-equiv="Content-Type" content="application/x-www-form-urlencoded; charset=utf-8">
<title>testPost_II</title>
<link rel="stylesheet" href="/css/layout.css">
<link rel="stylesheet" href="/css/semantics.css">
<link rel="stylesheet" href="/css/defaults.css">
</head><body id="defaultBody"><section id="page">
<div id="container">
<form id="pagewrap" name="pagewrap" method="POST" action="http://www.thuis.lb/testPost.php" enctype="application/x-www-form-urlencoded">
<header id="pageHeader">
<div id="leftHeader"><img src="/images/Homerus.jpg" alt="homerus"></div>
<div id="centralHeader"><h1>Slogan</h1><span>Special for ><?php print getValue('username','nothing found');?></span></div>
</header>
<div id="leftWing"><img src="/images/IronPillarDelphi.jpg" alt="homerus"></div>
<div id="centerField" class="centerVertically"><section id="doc_content">
<input type="text" id="context_id" value="<?php var_dump($_POST);?>">
<fieldset><legend>testPost_2</legend>
<div class="fourcolumns_odd"><label for="username">username</label></div>
<div class="fourcolumns_even"><input type="text" id="username" value="<?php print     getValue('username','Noname');?>"></div>
<div class="fourcolumns_odd"><label for="password">password</label></div>
<div class="fourcolumns_even"><input type="text" id="password" value="<?php echo getValue('password','Secret');?>"></div>
<div class="fourcolumns_odd"><label for="request_method">request method</label></div>
<div class="fourcolumns_even"><input type="text" id="username" value="<?php print $_SERVER['REQUEST_METHOD'];?>"></div>
<div class="onecolumn"><input type="submit" id="submitButton" value="inloggen"></div>
</fieldset>
</section><!--end of section doc_content -->
</div>
<div id="rightWing"><img src="/images/IronPillarDelphi.jpg" alt="homerus"></div>
</form>
</div><!-- end of container -->
</section><!-- end of page -->
</body></html>

www.thuis.lb 是本地服务器的名称。它的 IP 为 127.0.0.1。 Thuis 是荷兰语“在家”的意思。 我是否忘记了什么或我做错了什么?

编辑:更多信息。 在更复杂的第一个 php 中,与数据库进行信息交换。这就像一个魅力。完全没问题。 因此我认为这个问题是一个安全问题。我将添加 www.thuis.lb 的虚拟主机文件。虽然它几乎就像默认的虚拟主机,但这可能是问题所在。

<VirtualHost thuis.lb:80>
    ServerName www.thuis.lb
    ServerAlias thuis.lb *.thuis.lb
    ServerAdmin [email protected] /cdn-cgi/l/email-protection
    DocumentRoot /var/www/thuis
    RewriteEngine On
    RewriteOptions Inherit

<Directory /var/www/thuis/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>

ErrorLog /var/log/apache2/thuis/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel debug

CustomLog /var/log/apache2/thuis/access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>

编辑二:我可以添加更多信息。在访问日志中有这样一行: 127.0.0.1 - - [04/Apr/2013:11:13:43 +0200]“POST /testPost_2.php HTTP/1.1”200 2020“http://www.thuis.lb/testPost.php http://www.thuis.lb/testPost.php" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:19.0) Gecko/20100101 Firefox/19.0"。这表明 apache2 正在正常接收帖子。但是 PHP 中的 $_POST 仍然完全是空的。 Firebug>Net>Headers中显示的是Content Length 0。


您的所有表单输入字段都有 name 属性还是只有 id 属性?它可能就像向每个输入字段添加名称属性一样简单。

<input type="text" id="afield" value="a value">

不一样

<input type="text" id="afield" name="afield" value="a value">

$_POST['afield'] 应该只返回上面第二个示例的值

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

$_POST、$_GET 和 $_REQUEST 为空 的相关文章

  • 使用哈希检查具有 $_POST 值的页面是否已刷新

    当将表单发布到同一个PHP页面时 正确的方法是什么来查找页面是否被意外刷新而不是再次提交 这是我现在正在使用的 tmp implode POST myHash md5 tmp if isset SESSION myHash SESSION
  • PHP set_include_path 的“起点”是什么

    在 PHP 中 set include path 相对于什么 它是 PHP exe 所在的文件夹吗 是网络根吗 换句话说 set include path 或 set include path 指的是哪个文件夹 相对路径是从文件所在位置解析
  • Jwt 令牌是唯一的

    我正在使用 JWT 网络令牌系统 我能够成功生成令牌 我在 Laravel 中创建 JWT 令牌 如下所示 我正在使用以下技术堆栈 拉拉维尔 5 2 http laravel com 框架 JWT 包裹 https github com t
  • 如何增加 Smarty 变量?

    我通常不是一个聪明人 所以我有点卡住了 我想回显数组的索引 但我想每次回显时都增加它 这就是我所拥有的 ul foreach from gallery key index item image li img src image alt li
  • 在 PHPUnit 中实现给定接口的模拟对象上未定义方法?

    我是单元测试和 PHPUnit 的新手 我需要一个模拟 我可以完全控制它 实现ConfigurationInterface界面 测试对象是ReportEventParamConverter对象和测试必须检查我的对象和界面之间的交互 Repo
  • SQLSTATE[HY000]:一般错误:1215 无法添加外键约束 laravel 9

    尝试分配外键 但是当您运行迁移时 我收到此错误 我不明白问题是什么 SQLSTATE HY000 一般错误 1215 无法添加外键约束 SQL alter tablecategories添加约束categories parent key f
  • Laravel ErrorException:未定义的变量:\storage\framework\views\ 中的错误

    我尝试使用 redis 队列来延迟发送邮件 但每次都会收到错误 ErrorException 未定义的变量 错误 C wamp64 www laravel boltra storage framework views c653bafa95f
  • 可能的 PDOException 错误(MySQL 5)?

    因此 我正在为我的网络应用程序设置一个安装程序 并具有数据库凭据的输入字段 我的验证过程的一部分包括测试数据库连接 使用 PHP 的 PDO 库 如果连接失败 我希望能够区分错误的密码 错误的地址 不存在的数据库名称等 以便我可以引用表单上
  • PHP:查找所有以“:”开头的单词

    你能帮我用 PHP 函数 正则表达式在给定的文本中找到所有以字符 开头的单词吗 换句话说 所有以 开头并用 空格 分隔的子字符串 Since word应该可能是有效的 我想 word another应该算两个词 那么你就不能说总有一个空格
  • PHP 中检查数字是否为浮点型

    这实在是太奇怪了 我有这段代码 rewardAmt amt if is float rewardAmt print r is float die else print r is not float die amt 的值为 0 01 但它正在
  • 如何在 PHP 中实现 Google OpenID 身份验证并在本地主机上测试

    我是 OpenID 新手 想在我的网站上实施 Google OpenID 身份验证 我找不到任何例子 任何人都可以建议我一些好的教程 一步一步 或任何带有代码的工作示例 以使用 PHP 实现 Google OpenID 身份验证 我建议使用
  • time() 会返回相同的输出吗?

    当用户注册时 我正在为 PHP 中的用户生成令牌 我想知道两个用户是否可以获得相同的令牌 因为这会破坏系统 请让我知道这是否足够 token md5 rand time 编辑 我现在正在使用我在另一个问题上找到的generate uuid
  • MySQL记录保存到数据库的当前时间

    我正在使用 Zend Framework 1 12 和 Mysql 我想在数据库中添加列 该列保存记录插入表中时的当前日期时间 有人知道我如何定义此列吗 此功能必须在 Mysql 站点上运行 而不是在 PHP 站点上运行 您必须将列类型更改
  • Cake PHP 中的自定义分页

    我是 cakePHP 的初学者 我不想在 cakePHP 中创建自定义分页 功能 paginator gt numbers 它显示的页码如下 1 2 3 4 通过查看选项 有一些选项可以更改分隔符 添加样式类 css 等等 我想要的是这样的
  • Web 服务 SOAP 请求适用于 SOAPUI,但不适用于 PHP

    我已经尝试了几乎所有我能找到的可能的解决方案 但我似乎无法让这个脚本工作 以下是我之前的一些尝试 如何使用 wse php 库通过 SOAP 连接到安全的 Web 服务 https stackoverflow com questions 1
  • 单击时获取按钮值并回显它

    我是 php 的初学者 我的第一个任务是构建一个计算器 我在这里询问如何从按钮获取值并在同一页面上回显它 我正在尝试使用 isset 通过方法发布 但能够在同一页面上显示任何值
  • 在mysql查询中对多个日期范围求和

    我有一个 MySql 表 产品 包含三列 Date Product Qty 我的目标是每周对每种产品的数量进行求和 获取两个给定日期之间的 SUM 很容易 SELECT SUM qty FROM products WHERE date gt
  • 如何在 PHP、HTML 表单和 Javascript 之间传递布尔值

    我有一个 PHP 程序 它使用 HTML 表单并使用 JavaScript 进行验证 HTML 表单中有一个隐藏字段 其中包含一个布尔值 该值由 PHP 设置 由 JavaScript 在提交时进行验证 然后传递到另一个 PHP 页面 当我
  • CodeIgniter 中的多条件 WHERE 子句

    我想删除核心 PHP 中的一些数据 例如这个查询 WHERE user id id AND sender id send id OR user id send id AND sender id id 所以我在 CodeIgniter 中使用
  • PHP Money_format(); £ 符号不是 GBP

    我不知道如何获取货币符号 目前我正在使用 setlocale LC MONETARY en GB money format i 1000 这给了我输出 GBP1 000 但我想要 1 000 我已经查看了 PHP 手册 但没有多大帮助 有任

随机推荐