0

このコードを削除すると、ページが読み込まれます。しかし、これを追加すると、Web マトリックスから HTTP エラー 500 が返されます。

<?php
try {    
  if(isset(['submit'])) {
    include('config.php');
    $subject = $_POST['subject'];
    $content = $_POST['editor1'];
    $date = $_POST['date'];
    $tags = $_POST['tags'];
    $author = $_POST['author'];
    $thumbnail = $_POST['thumbnail'];
    $sql = "INSERT INTO articles (Subject, Content, Date, Author, Tags, Thumbnail) VALUES ('$subject','$content','$date','$author','$tags', '$thumbnail')";
    $dbh->query($sql);   
  }
} catch(PDOException $e) {
   echo $e->getMessage();
}
?>
4

2 に答える 2

2

ラインで

if (isset(['submit']))

変数がありません。次の行を使用することをお勧めします。

if(isset($_POST['submit']))

ところで、SQL コードはブラインド SQL インジェクションに対してオープンです。パラメータを解析するか、準備済みステートメントを使用する必要があります。

$stmt = $dbh->prepare("INSERT INTO articles (Subject, Content, Date, Author, Tags, Thumbnail) VALUES (':subject',':content',':date',':author',':tags', ':thumbnail')");
$stmt->bindParam(':subject', $subject);
$stmt->bindParam(':content', $content);
// ...
$stmt->execute();
于 2012-12-30T11:47:25.337 に答える
2

これは声明ではありません:

if (isset(['submit']))

そのはず:

if (isset($_POST['submit']))

すべてのチャンスで。

とにかく、パラメーターをクエリにバインドし、ハードコードしないでください。

于 2012-12-30T11:47:26.083 に答える