Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 你能告诉我我博客的这段代码有什么问题吗?_Php_Mysql_Pdo - Fatal编程技术网

Php 你能告诉我我博客的这段代码有什么问题吗?

Php 你能告诉我我博客的这段代码有什么问题吗?,php,mysql,pdo,Php,Mysql,Pdo,如果删除此代码,我的页面将加载。但是如果我加上这个,我会从我的网络矩阵中得到一个HTTP错误500 <?php try { if(isset(['submit'])) { include('config.php'); $subject = $_POST['subject']; $content = $_POST['editor1']; $date = $_POST['date']; $tags = $_POST['tags'];

如果删除此代码,我的页面将加载。但是如果我加上这个,我会从我的网络矩阵中得到一个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();
}
?>
行中的

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();
排队

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();

这不是一个声明:

if (isset(['submit']))
应该是:

if (isset($_POST['submit']))
很有可能


无论如何,您应该将参数绑定到查询,而不是硬编码到查询中。

这不是一条语句:

if (isset(['submit']))
应该是:

if (isset($_POST['submit']))
很有可能


无论如何,您应该将参数绑定到查询中,而不是硬编码到查询中。

阅读如何正确使用。目前,您很容易受到SQL注入的攻击。非常感谢您的回复。我现在就去看看。仔细阅读如何正确使用。目前,您很容易受到SQL注入的攻击。非常感谢您的回复。我现在就去看看。非常感谢你,老兄。我真不敢相信那个愚蠢的错误花了我这么多时间-_-@Sunny-找到您的Apache日志所在的位置,他们会给您一个发生错误的行号。@Sunny欢迎您。如果你以任何方式帮助你,请考虑接受这个答案。多谢。我真不敢相信那个愚蠢的错误花了我这么多时间-_-@Sunny-找到您的Apache日志所在的位置,他们会给您一个发生错误的行号。@Sunny欢迎您。如果能对你有所帮助,可以考虑接受这个答案。我想问一下准备好的语句是否只在把数据插入到数据库中时使用?不,你也可以用它们来进行选择。我建议您将它们用于每一种带有来自web的变量的查询。我想问的是,准备好的语句是否仅在将数据插入数据库时使用?不,您也可以将它们用于选择。我建议您将它们用于每一种带有来自web的变量的查询。