当数据包含空格时,PHP post不起作用



我一直在开发一个选择运动的运动选择系统,但遇到了无法删除带有空格的运动的问题。

我已经将这个问题追溯到了post表单,因为当表单包含空格时,用于获取表单的脚本不会。我在这个问题上做了大量的谷歌搜索,但没有找到任何东西,因为所有其他类似的问题都与配置不当的表单有关。

这是当前代码:

表单代码:

<!--Remove Sport-->
<form action="" id="RecSportRemoveForm" method="POST">
<p>Remove Sport</p>
<?php
$sportFile = "recSport.data";
$sportOptionsArray = unserialize(file_get_contents($sportFile));
$sportLength = count($sportOptionsArray);
for($i = 0; $i < $sportLength; $i++) {
echo ("<input type='checkbox' name=$sportOptionsArray[$i] value=$sportOptionsArray[$i]>$sportOptionsArray[$i]<br>");
}
echo ("<br><button type='submit'>Remove</button> <br>");
?>
</form>

接收代码:(为了澄清,我正在另一个地方过滤和重新排列密钥,这样就不是问题了(

<!--Checks Remove Sport-->
<?php
$sportFile = "recSport.data";
$sportOptionsArray = unserialize(file_get_contents($sportFile));

$sportLength = count($sportOptionsArray);
for($i = 0; $i < $sportLength; $i++) {
if (isset($_POST[$sportOptionsArray[$i]]) == TRUE){
$removeSport = $_POST[$sportOptionsArray[$i]];
$key = array_search($removeSport, $sportOptionsArray);
unset($sportOptionsArray[$key]);
echo ($sportOptionsArray[$key]);
file_put_contents($sportFile, serialize($sportOptionsArray));
echo "<script type='text/javascript'>alert('Remove');</script>";
echo "<script type='text/javascript'>alert($removeSport);</script>";
echo "<meta http-equiv='refresh' content=0;URL=adminDashboard.php>";
}
}
//echo "<script type='text/javascript'>alert('Remove');</script>";
//echo "<script type='text/javascript'>alert($removeSport);</script>";
?>

如有任何帮助或见解,我们将不胜感激。

我最终跟踪了这个问题,直到我如何发布数据。从本质上讲,PHP不能发布,或者至少不能很好地处理带有空格的名称属性。

我稍微更改了代码,使其具有通用名称属性(例如recSport1、recSport2(,并如Dave所指出的那样将数据放在引号中,从而解决了问题。

感谢大家的帮助,非常感谢!

最新更新