首先,我道歉的是问题标题没有解释得太多,我是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
感谢您的帮助
答案 0 :(得分:2)
这里有几点需要注意。
由于您尝试将变量插入查询字符串的方式,您收到警告和通知。首先将变量从$ _POST中拉出并放入局部变量。但是,您尝试访问它们,而不是使用这些变量,就像它们是函数和数组一样。记住PHP中的变量名称区分大小写也很重要。你也错过了一两句话。
查询看起来应该更像这样:
$update = "UPDATE content SET POST_TITLE = '$pName', POST_AUTHOR = '$pAuth', POST_CONTENT = '$pCon', PAGE = '$Page' WHERE ID = '$id'";
话虽如此,这个查询本质上是不安全的,因为用户可以非常轻松地alter your query并对您的数据库执行各种有害的事情。
mysql_
函数被认为是不安全和过时的,因此您可以使用两个更现代的mysql包装中的一个替换它们来解决与SQL注入相关的问题:mysqli或{{3} }。
答案 1 :(得分:1)
我认为你的mysql查询应该是:
$update = "UPDATE content SET POST_TITLE = '$pname',POST_AUTHOR = '$pauth',POST_CONTENT = '$pcon',PAGE = '$page' WHERE ID = '$id'";