-1

私のphpは非常に「弱い」ので、これに問題があります-

<?php

include_once "../scripts/connect_to_mysql.php";

$title = $_POST['title'];
$desc = $_POST['description'];

$query = mysql_query("UPDATE images SET title='$title', description='$desc'") or die (mysql_error());

echo 'Operation Completed Successfully! <br /><br /><a href="index.php">Click Here</a>';
exit();
?>

未定義のインデックスエラーはdescription9行目にあり$desc = $_POST['description'];、「説明」はデータベースのスペルも正しいです。

4

4 に答える 4

1

フォームは、この情報を php ファイルに送信する必要があります。titleあなたはあなたのフォームにしか持っていないようdescriptionです。より良いヘルプのためにフォームを投稿する必要があります。

<form ...>
  <input type="text" name="description" value="">
  <input type="text" name="title" value="">
</form>

SQL クエリで使用しているデータは常にエスケープする必要があります。

于 2011-10-10T08:43:51.797 に答える
1

どうやら、descriptionフィールドは$_POST配列に存在しないため、インデックスdescriptionは何も指していません。

何をvar_dump($_POST);印刷しますか?

また、これは社内制度ですか?そうでない場合は、SQL インジェクションについて調べてください。

于 2011-10-10T08:44:08.377 に答える
0

description配列にインデックスを持つ要素がありません$_POST

var_dump($_POST);その行の前で配列を調べてみてください。(または、一部の情報が切り取られている場合は、print_r($_POST);

于 2011-10-10T08:44:44.460 に答える
-2

やってみてください:

if(isset($_POST['description'])){echo "yes";}else{echo "no";}

これは修正されませんが、 $_POST['description'] が存在するかどうかを判断するのに役立ちます..また、$_POST['description']?のソースは何../scripts/connect_to_mysql.phpですか? どのように?

より複雑なタスク (AJAX など) を実行しない限り、POST 変数は通常、フォームを送信することによって設定されます。コードは、フォームの送信に続いてページが読み込まれた後に設定されますか? そうでない場合は、_POST 変数を間違って使用している可能性があります...

$_POST['description']のコードのどこかに が設定されていて、その値../scripts/connect_to_mysql.phpを取得したいファイルを含めることで、間違っている可能性があります$_POST['description']

于 2011-10-10T08:43:24.960 に答える