首页 > 解决方案 > 当数据包含空格时,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>";
   ?>

任何帮助或见解将不胜感激。

标签: phpformspost

解决方案


我最终将问题追溯到我如何发布数据。本质上,PHP 不能发布或者至少不能很好地处理带有空格的发布名称属性。

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

感谢所有帮助家伙,非常感谢!


推荐阅读