【问题标题】:implode(): Invalid arguments passed in. Cant see the defined variable for the arrayimplode():传入的参数无效。看不到数组的定义变量
【发布时间】:2016-04-07 20:45:09
【问题描述】:

我创建了以下复选框表单来显示爱好。该数组在同一个单元格中进入数据库,这是完美的,但是,在我提交之前,页面上出现了以下错误。 (我是新手,任何帮助将不胜感激:))

未定义索引:爱好在(第 29 行) 警告:implode():传入的参数无效(第 29 行)

代码:

$checkbox=implode(',', $_POST['hobbies']);

if(isset($_POST['Submit'])){

  //for($i=0; $i<sizeof($hobbies);$i++){

   $query=queryMysql("INSERT INTO hobbies  VALUES ('$user', '" .$checkbox. "')");

    mysql_query($query) or die(mysql_error());
    echo "record is inserted";
  }




echo <<<_END

<body>
<form method='post' action='hobbies.php' >
<input type="checkbox" name="hobbies[]" value="reading">Reading<br>
<input type="checkbox" name="hobbies[]" value="cycling">Cycling<br>
<input type="checkbox" name="hobbies[]" value="swimming">Swimming<br>
<input type="checkbox" name="hobbies[]" value="running">Running<br>
<input type="submit" name='Submit' value='Submit'/></form>
</body>
</html>




_END;
?>

【问题讨论】:

  • 最初加载页面时,没有$_POST['hobbies']这样的变量,所以把它放到你的if语句中。
  • 这个问题已经在下面得到了回答,所以附带说明一下:你不会让陌生人进入你的房子,但你似乎可以让他们进入你的数据库。 “是的,伙计们,提供你想要的任何东西!如果你的名字恰好是blahblah' OR 1/*,那就这样吧!”
  • 将此行 $checkbox=implode(',', $_POST['hobbies']); 放入 if 条件中。
  • 你应该看看数组的序列化,而不是用逗号连接值(你必须添加转义,顺便说一句)。

标签: php checkbox implode


【解决方案1】:

也许把这行:$checkbox=implode(',', $_POST['hobbies']); 放在你的if(isset($_POST['Submit'])){ } 条件中。

【讨论】:

    【解决方案2】:

    试试这个代码,我希望它能工作:-

    if(isset($_POST['Submit'])){
    
    
      $checkbox=implode(",", $_POST['hobbies']);
    
       $query=queryMysql("INSERT INTO hobbies  VALUES ('$user', '$checkbox')");
    
        mysql_query($query) or die(mysql_error());
        echo "record is inserted";
      }
    
    
    echo <<<_END
    

    【讨论】:

      【解决方案3】:
      I think you need to more customization like this 
      
      
              if(isset($_POST['Submit'])){
      
              if(is_array( $_POST['hobbies']) && count( $_POST['hobbies']) >0){
              $checkbox=implode(',', $_POST['hobbies']);
      
                //for($i=0; $i<sizeof($hobbies);$i++){
      
                 $query=queryMysql("INSERT INTO hobbies  VALUES ('$user', '" .$checkbox. "')");
      
                  mysql_query($query) or die(mysql_error());
                  echo "record is inserted";
                }
              echo <<<_END
          } ?>
              <body>
              <form method='post' action='hobbies.php' >
              <input type="checkbox" name="hobbies[]" value="reading">Reading<br>
              <input type="checkbox" name="hobbies[]" value="cycling">Cycling<br>
              <input type="checkbox" name="hobbies[]" value="swimming">Swimming<br>
              <input type="checkbox" name="hobbies[]" value="running">Running<br>
              <input type="submit" name='Submit' value='Submit'/></form>
              </body>
              </html>
      
      
      
      <?php        
              _END;
              ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-06
        相关资源
        最近更新 更多