php - 当数据包含空格时,PHP 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指出的引号中,从而解决了问题。
感谢所有帮助家伙,非常感谢!