在html表单中输入$ _POST会导致403 Forbidden错误

时间:2016-10-14 10:58:00

标签: php

我在我的网站上做了评论部分:

<form method="post" name="dodawanieKomentarzy">
<div>Your Name:</div>
<div><input type="text" name="autor" required></div>
<div>Message:</div>
<div><textarea name="komentarz" required></textarea></div>
<div><input type="submit" value="Add comment" name="Dodaj"></div>
</form>

和PHP:

<?php
$pdo=new PDO('mysql:host=localhost;dbname=my_dbase_name',
    'my_dbase_login','my_dbase_passw',[PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4"]
);
if(isset($_POST['Dodaj'])) {
    $data=strftime("%Y-%m-%d %X");
    $pdo->prepare("INSERT INTO komentarze VALUES (NULL,?,?,?,'')")->execute([$data,$_POST['autor'],$_POST['komentarz']]);
};
?>

一切正常(我可以插入普通文本(例如:'这是注释'),但是当我插入例如:'$ _POST'到文本字段时,我有403 Forbidden错误。 我没有看到代码有什么问题,所以如果你能帮助我,我将不胜感激。

2 个答案:

答案 0 :(得分:0)

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";
if(isset($_POST['Dodaj'])) {
  try {
    $pdo=new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // set the PDO error mode to exception
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $data=strftime("%Y-%m-%d %X");
    $author = $_POST['autor'];
    $komentarz = $_POST['komentarz'];
    $insert_query = $pdo->prepare("INSERT INTO komentarze (`autor`,`komentarz`) VALUES ('".$author."', '".$komentarz."' )");
    $insert_query->execute();
    echo "New record created successfully";
    }
catch(PDOException $e)
    {
    echo $insert_query . "<br>" . $e->getMessage();
    }
}    
?>

我希望这对你有用

答案 1 :(得分:-1)

您可以尝试使用类似$author= $_POST['autor']; $text = $_POST['komentarz'];之类的变量,然后在查询中使用$ author和$ text。