0
<center>
<?php
if(isset($_POST['submit']))
{

 $title = $_POST['title'];
 $content = $_POST['content'];
 $id= $_POST['id'];

 mysql_query("UPDATE post SET title='$title',content='$content' WHERE p_id='$id'");
 echo 'success';
}else{

?>
<form action='update.php' method='post'>
<span style="font-size:26px;"><strong><span style="font-family: verdana, geneva, sans-serif; ">Title:&nbsp;</span></strong></span>
<input type='text' name='title' /><br />
<input type="hidden" value="<?php echo $_REQUEST['id']?>" name="id">
<span style="font-size:26px;"><strong><span style="font-family: verdana, geneva, sans-serif; ">Content:&nbsp;</span></strong></span>
<textarea name='content' ></textarea><br />
<input type='submit' name='submit' value='EDIT'/>
</form>
<?php
}
?>
</center>

このクエリの問題は何ですか? $_REQUEST['id'] は、値を持つハイパーリンクからの私のphpの他のページからのものです。ちなみに、私はphpの初心者です。

4

2 に答える 2

4

まず第一に、SQL インジェクション攻撃に対して脆弱であるため、危険性を読み、それを回避する方法を理解するまで、このコードの使用を中止してください。

それ以上は、DB クエリが成功したと想定しています。これは良いことではありません。最低限、次のようなものを持っている必要があります

$result = mysql_query(...) or die(mysql_error());
                          ^^^^^^^^^^^^^^^^^^^^^^
于 2012-10-09T16:31:29.267 に答える
0

入力に ​​' を使用した可能性があります。入力変数をエスケープしなかったため、クエリが失敗しました

于 2012-10-09T19:36:44.383 に答える