好的,所以我按照本教程,谁知道,可能准确,也可能不准确。 当我选择提交时,我收到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;在这台服务器上。