0

首先,我很抱歉问题标题没有解释太多,我是 PHP 新手,很难说出这个问题,因为我什至不确定什么是错的。

这是PHP

    <?php
    include 'includes/connection.php';

    $pName = $_POST['pName'];
    $pAuth = $_POST['pAuth'];
    $pCon = $_POST['pCon'];
    $Page = $_POST['Page'];
    $id = $_POST['id'];

    $update = "UPDATE content SET POST_TITLE = '$pname(pname)',POST_AUTHOR = '$pauth(pauth)',POST_CONTENT = '$pcon(pcon)',PAGE = '$page(page) WHERE ID = '$id[id]'";

    $result = mysql_query($update) or die (mysql_error());

    Header("Location:admin.php?refer=editsuccess");
?>

和错误,

Notice: Undefined index: pauth in C:\xampp\htdocs\cms\editp.php on line 5

Warning: Illegal string offset 'id' in C:\xampp\htdocs\cms\editp.php on line 10

感谢您的任何帮助

4

2 回答 2

2

这里有几点需要注意。

由于您尝试将变量插入查询字符串的方式,您会收到警告和通知。您首先将变量从 $_POST 中拉出并放入局部变量中。但是,您不是使用这些变量,而是尝试访问它们,就好像它们是函数和数组一样。记住 PHP 中的变量名区分大小写也很重要。您还缺少一两个报价。

查询应该看起来更像这样:

$update = "UPDATE content SET POST_TITLE = '$pName', POST_AUTHOR = '$pAuth', POST_CONTENT = '$pCon', PAGE = '$Page' WHERE ID = '$id'";

话虽如此,这个查询本质上是不安全的,因为用户可以很容易地更改您的查询并对您的数据库做各种有害的事情。

这些mysql_函数被认为是不安全和过时的,因此您可以通过将它们替换为两个更现代的 mysql 包装器之一来解决与 SQL 注入相关的问题:mysqliPDO

于 2012-10-12T19:20:07.217 回答
1

我认为你的 mysql 查询应该是这样的:

$update = "UPDATE content SET POST_TITLE = '$pname',POST_AUTHOR = '$pauth',POST_CONTENT = '$pcon',PAGE = '$page' WHERE ID = '$id'";
于 2012-10-12T19:16:51.170 回答