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

时间:2018-07-27 15:22:59

标签: php forms 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>";
   ?>

非常感谢您的帮助或见识。

1 个答案:

答案 0 :(得分:0)

我最终将问题一直跟踪到发布数据的方式。本质上,PHP不能发布名称,或者至少不能很好地处理带有空格的名称属性。

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

感谢所有帮助人员,非常感谢!