403禁止复选框PDO / PHP语法问题PHPMYADMIN / WAMP

时间:2016-06-17 05:31:10

标签: php checkbox pdo syntax phpmyadmin

好的,所以我按照本教程,谁知道,可能准确,也可能不准确。 当我选择提交时,我收到403错误。以及一半PHP代码的屏幕。

从我所在的地方来看,这是一个语法错误,但对于我的生活,我无法弄清楚为什么。我通过notepad ++ phpdesigner和一些在线跳棋来运行它。他们中的大多数人都说这很好,但是lint检查显示语法错误,除此之外我感到难过。

起初我认为403错误是基于权限的,但是我回到另一个项目并且可以将数据添加到PHPMYADMIN数据库,以便所有检出。我已经发布了下面的代码,所以如果有人想让它一目了然并让我走上正确的道路,那就太好了。

由于某些原因我无法让mysqli与我的apache交谈,所以我坚持使用pdo选项进行项目。还没有想出如何解决这个问题。

感谢

<?php
   $fruitArray = array('orange', 'apple', 'grapefruit', 'banana', 'watermelon');
   if(isset($_POST['btn_save']))
   {   try
       {  $dbcon = new PDO("mysql:host=localhost;dbname=my_db", 'root', 'password');
          $dbcon->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
       }  catch (PDOException $e) {echo $e->getMessage(); }

       if(isset( $_POST['fruit']))
       {  $values = array();
          foreach($_POST['fruit'] as $selection )
          {  if(in_array($selection, $fruitArray))
             {  $values[ $selection ] = 1; }
             else
             {  $values[ $selection ] = 0; }
          } // end of foreach.

          try // save user selection to the database
          {  $DBH = $dbcon->prepare("INSERT INTO table_fruit 
                      (orange, apple, grapefruit, banana, watermelon )
               VALUES (:DBorange, :DBapple, :DBgrapefruit, :DBbanana, :DBwatermelon)");
        $DBH->bindParam(':DBorange',     $values['orange']);
        $DBH->bindParam(':DBapple',      $values['apple']);
        $DBH->bindParam(':DBgrapefruit', $values['grapefruit']);
        $DBH->bindParam(':DBbanana',     $values['banana']);
        $DBH->bindParam(':DBwatermelon', $values['watermelon']);
        $DBH->execute();
           }  catch(PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); }
      }
      else
      {  echo 'No checkbox selection made...'; }
   } // End of, if statement from the button check

?>

<span style="font-family: arial,helvetica,sans-serif; font-size: 12px;">
<html>
   <head>
      <title>Checkbox selection using PHP (using PDO) and MySQL v2</title>
   </head>
   <body>
      <h2>Pick your most favourite fruits:</h2>
      <form name="fruitcheckbox" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
         <input type="checkbox" name="fruit[]" value="orange"> Orange
         <input type="checkbox" name="fruit[]" value="apple"> Apple
         <input type="checkbox" name="fruit[]" value="grapefruit"> Grapefruit
         <input type="checkbox" name="fruit[]" value="banana"> Banana
         <input type="checkbox" name="fruit[]" value="watermelon"> Watermelon
         <br>
         <input type="submit" value="Save" name="btn_save">
      </form>
   </body>
</html> </span>

HTML执行后。无论是IE,EDGE还是CHROME。

setAttribute(PDO :: ATTR_ERRMODE,PDO :: ERRMODE_EXCEPTION); } catch(PDOException $ e){echo $ e-&gt; getMessage(); } if(isset($ _POST ['fruit'])){$ values = array(); foreach($ _ POST ['fruit']作为$ selection){if(in_array($ selection,$ fruitArray)){$ values [$ selection] = 1; } else {$ values [$ selection] = 0; }} // foreach的结尾。尝试//将用户选择保存到数据库{$ DBH = $ dbcon-&gt; prepare(“INSERT INTO table_fruit(橙色,苹果,葡萄柚,香蕉,西瓜)VALUES(:DBorange,:DBapple,:DBgrapefruit,:DBbanana,: DBwatermelon)“); $ DBH-&gt; bindParam(':DBorange',$ values ['orange']); $ DBH-&gt; bindParam(':DBapple',$ values ['apple']); $ DBH-&gt; bindParam(':DBgrapefruit',$ values ['grapefruit']); $ DBH-&gt; bindParam(':DBbanana',$ values ['banana']); $ DBH-&gt; bindParam(':DBwatermelon',$ values ['watermelon']); $ DBH-&GT;执行(); } catch(PDOException $ e){echo'连接失败:'。 $ E-&GT;的getMessage(); }} else {echo'没有选中复选框......'; } // //来自按钮的if语句结束?&gt; 选择你最喜欢的水果:

橙苹果葡萄柚香蕉西瓜

当我做出选择时,我得到了

http://localhost/my-site/insertintodbpdo/%3C?php echo $ _SERVER ['PHP_SELF']; ?&GT; 你无权访问/ my-site / insertintodbpdo /&lt;在这台服务器上。

0 个答案:

没有答案