我似乎有一个奇怪的服务器设置处于活动状态,如果我的帖子字段没有任何值,就会被删除。所以我们讨论的是服务器配置!
我有一个非常简单的表格来测试它:
请。。。不要在这个小表单中搜索bug,因为它只是向你显示服务器正在忽略空参数。下面是问题末尾的打字部分。。。所以,在你认为这个问题没有用之前,先把它看完。
<?php
echo '<h2>GET</h2>';
print_r($_GET);
echo '<h2>POST</h2>';
print_r($_POST);
echo '<h2>REQUEST</h2>';
var_dump($_REQUEST);
echo '<h2>FILE_GET_CONTENTS</h2>';
var_dump(file_get_contents('php://input'));
?>
<form method="POST">
<input type="text" name="test" /> <input type="submit" name="button" value="submit">
</form>
如果我不填写输入字段,我会得到以下输出:
GET
Array ( )
POST
Array ( [button] => submit )
REQUEST
array(1) { ["button"]=> string(6) "submit" }
FILE_GET_CONTENTS
string(19) "test=&button=submit"
如果我在输入字段中填充任何值(如"test"),我会得到以下输出:
GET
Array ( )
POST
Array ( [test] => test [button] => submit )
REQUEST
array(2) { ["test"]=> string(4) "test" ["button"]=> string(6) "submit" }
FILE_GET_CONTENTS
string(23) "test=test&button=submit"
那么,如果有任何价值的话,为什么我的领域"测试"只存在呢?
这个问题的主要原因是,typed3使用空字段进行验证,该操作将以其所有形式进行,如更改配置设置或测试设置。所有这些函数都不起作用,因为表单提供的标志不存在。
这就是打字3动作表的样子:
<form method="post">
<input type="hidden" name="install[controller]" value="tool">
<input type="hidden" name="install[action]" value="testSetup">
<input type="hidden" name="install[token]" value="ldfjlskdflsdkjflsdkjf">
<input type="hidden" name="install[context]" value="backend">
<h4>Scaling images</h4>
<fieldset class="t3-install-form-submit">
<ol>
<li>
<button class="btn " type="submit" name="install[set][testScalingImages]">
Test scaling images
</button>
</li>
</ol>
</fieldset>
</form>
如果我在提交按钮中添加一个值="1",那么一切都会正常,因为我的服务器不会删除参数,那么。。。但我不想在所有的typeo3安装中更改所有的typed3表单。因此,它必须是任何服务器配置问题。
我读了很多关于在代码网站上工作以获得更原始的后期数据变体的文章,但由于我必须在大量的typed3安装中更改这一点,因此服务器范围的解决方案会更好。
您应该将表单更改为:
<form method="POST">
<input type="text" name="test" /> <input type="submit" name="button" value="submit">
</form>
如果没有设置任何类型,服务器就无法理解您期望通过此输入得到什么。