我一直在开发一种运动选择系统,可以选择运动,但遇到了无法删除带有空格的运动的问题。
我已将此问题归结为发布表单,因为用于拾取表单的脚本在包含空格的情况下不会出现。我已经在这个问题上进行了广泛的谷歌搜索,但没有提出任何建议,因为所有其他类似问题都与表单配置不正确有关。
这是当前代码:
表单代码:
<!--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>";
?>
非常感谢您的帮助或见识。
答案 0 :(得分:0)
我最终将问题一直跟踪到发布数据的方式。本质上,PHP不能发布名称,或者至少不能很好地处理带有空格的名称属性。
我稍稍更改了代码,使其具有通用名称属性(例如recSport1,recSport2),并且如Dave所指出的那样将数据保留在引号中,从而解决了问题。
感谢所有帮助人员,非常感谢!