は、だから私は、フォームとても似てい言います。フォーム、MySQLと値
mysql_query("INSERT INTO example (name, age) VALUES('$name', '$age') ") or die(mysql_error());
しかし、私はテーブルに空白のエントリがあります。 htmlコードで名前(例:name = "age")を指定していると、入力値が変数になると仮定して間違っていますか?
は、だから私は、フォームとても似てい言います。フォーム、MySQLと値
mysql_query("INSERT INTO example (name, age) VALUES('$name', '$age') ") or die(mysql_error());
しかし、私はテーブルに空白のエントリがあります。 htmlコードで名前(例:name = "age")を指定していると、入力値が変数になると仮定して間違っていますか?
$ _POSTグローバル変数で変数にアクセスします。
if(isset($_POST['name']) && isset($_POST['age'])){
$name = mysql_real_escape_string($_POST['name']);
$age = mysql_real_escape_string($_POST['age']);
mysql_query("INSERT INTO example (name, age) VALUES('$name', '$age') ") or die(mysql_error());
}
という名前の入力「名前」セキュリティ問題でregister_globalsは有効になっている場合にのみsubmit2.phpにおける変数$名、を作成します。 register_globalsを有効にするべきではありません(PHP6では削除されます)。
デフォルトのmethod
属性は何か分かりませんが、$ _GET ['name']または$ _POST ['name']という名前の変数を作成する必要があります。それはそれらのいずれかを作成していない場合は、フォームにmethod
属性を追加します。
<form action="submit2.php" method="post">
をしかし、これは、これらの変数が存在することを保証するものではありません(自分のフォームを使用せずに、どのような場合に誰かアクセスsubmit2.phpを?) 。あなたはissetか!emptyのどちらかを使う必要があります(空でないかどうかをチェックするので、後者が好きです)。
最後のこと:変数をエスケープすることを忘れないでください。 ユーザー入力を信用しないこの場合、クエリに変数を挿入するので、mysql_real_escape_string関数を使用する必要があります。
あなたは、使用可能な値に
<form action="submit2.php" method="post">
<input name="name" type="text" />
<input name="age" type="text" />
<input type="submit" />
</form>
と変更データベースのクエリ部分にフォームからデータを変更する必要があります:mysql_real_escape_stringのは、データベースの中に注入するスクリプトを持っていないため、セキュリティを助け
$name=mysql_real_escape_string($_POST['name']);
$age=mysql_real_escape_string($_POST['age']);
mysql_query("INSERT INTO example (name, age) VALUES('$name', '$age') ") or die(mysql_error());
と誰かにエントリを変更または削除させる。
これは大きなセキュリティ上の問題であると言うことが重要です。 mysql_real_escape_string(mysql APIを使用)を使用する必要があります。 –
ああ、私もそれに気づいたが、私の答えに置くのを忘れてしまった - 恐怖のSQLインジェクション!ありがとう! –