0

次のような mysql ステートメントがあります。

mysql_query("INSERT INTO movies (comments, description, synopsis)
VALUES ('$_POST["comments"]', '$_POST["desc"]',$_POST["synopsis"])");

ご覧のとおり、非常にシンプルで簡単です。問題は、フォームに特殊文字を入力すると、テーブルにデータが挿入されないことです (phpmyadmin を使用して、挿入されたかどうかを直接確認します)。たとえば、コメントテキストエリアにこの値を入力すると、「これはコメントです」という代わりに「あなたの名前は何ですか? : John doe は私の名前です」と入力すると機能します。私が何をすべきかについての提案はありますか?

4

3 に答える 3

7
mysql_query("INSERT INTO movies (comments, description, synopsis) 
VALUES ('".mysql_real_escape_string($_POST["comments"])."', '".mysql_real_escape_string($_POST["desc"])."','".mysql_real_escape_string($_POST["synopsis"])."'"); 
于 2012-04-13T01:14:25.333 に答える
0
$comments = mysql_real_escape_string($_POST['comments']);
$desc = mysql_real_escape_string($_POST['desc']);
$synopsis = mysql_real_escape_string($_POST['synopsis']);

mysql_query("INSERT INTO movies (comments, description, synopsis)
VALUES ('$comments', '$desc', '$synopsis'");
于 2013-04-23T12:17:56.170 に答える
-1
$comments = mysql_real_escape_string($_POST['comments']);
$desc = mysql_real_escape_string($_POST['desc']);
$synopsis = mysql_real_escape_string($_POST['synopsis']);

mysql_query("INSERT INTO movies (comments, description, synopsis)
VALUES ('$comments', '$desc', '$synopsis'");

詳細については、Google「php addslashes」を参照するか、このページを参照してください http://www.tizag.com/mysqlTutorial/mysql-php-sql-injection.php

于 2012-04-13T01:17:10.877 に答える