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 の変数名は大文字と小文字が区別されることを覚えておくことも重要です。また、見積もりが1つまたは2つありません。

クエリは次のようになります。

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

とはいえ、このクエリは本質的に安全ではありません。ユーザーが簡単にクエリを変更し、データベースにさまざまな有害なことを実行できるからです。

関数は安全ではなく、時代遅れであると見なされているため、SQL インジェクションに関連する問題を解決するには、関数をmysqliまたはPDOmysql_の 2 つの最新の mysql ラッパーのいずれかに置き換えることができます。

于 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 に答える