2009-07-07 18 views
0
<?php 

if (isset($_POST['post'])) { 

// sanitize variables 
$title = mysql_real_escape_string(trim($_POST['title'])); 
$text = mysql_real_escape_string(trim($_POST['text'])); 

if (strlen($title) > 3) { 

mysql_query("INSERT INTO msgs (title, text, date) 
      VALUES('$title', '$text', '".time()."')"); 
header('location: msg.php?id='.mysql_insert_id().''); 
exit; 

} 

else { 

echo '<h2>Errors</h2><p style="color: maroon">> Fields title and text must consist more than 3  characters.</span>'; 

} 


} 

?> 

これは安全に使用できますか?私は何かを忘れましたか? これを公開する前に確認してください。このスクリプトを公開するのは安全ですか?初心者質問

答えて

4

あなたは `text 'の長さをチェックしていません。

mysql_real_escape_stringがFALSEを返すとどうなりますか?

挿入に失敗したらどうなりますか?挿入IDを取得する前にチェックしてはいけませんか?

2

Iだろう:

a)のHTMLが許可されていない場合)(コールstrip_tagsを追加します。
b)HTMLが許可されている場合、htmlentities()への呼び出しを追加します。

1

あなたが追加できるもう1つのことは、受信したデータがドメインのフォームから送信されたことを確認することです。そこにいくつかの賢いチャップスは、独自のフォームを作成し、スクリプトに投稿することができます。