0

以下のフォームは、MySQLテーブル「contest」の4番目のフィールドにポイントを追加していません。

コードに問題はありません。明らかな何かが欠けていますか?

echo '<form action="http://www.website.com/folder/file.php" method="post"> 
    <input type="hidden" value="'.$u.'" name="u"> 
    <input type="hidden" value="'.$profile.'" name="profile"> 
    <input type="hidden" value="'.$profileid.'" name="profileid"> 




    <div class="friend2title"><label for="url">Add points:</label></div> 
    <div class="friend2field"><input name="state" type="text" id="state" maxlength="150"></div>




    <div class="addresssubmit"><input name="submit" type="submit" value="Add"></div> 
</form>
';

次に、http ://www.website.com/folder/file.phpで:

$u = $_POST['u'];
$profile = $_POST['profile'];
$profileid = $_POST['profileid'];

$state = $_POST['state'];





$state = mysql_real_escape_string($state);



mysql_query("INSERT INTO contest VALUES (NULL, 'critic', '$profileid',  '$state', NULL')");
4

1 に答える 1

1

value状態入力でデフォルト値を使用して属性を宣言する必要があります

<input name="state" type="text" id="state" value="' . $state . '" maxlength="150">

さらに、コードはSQLインジェクションに対して脆弱であり、ユーザーからのフィールドを信頼することはありません。データベースにとって非常に危険です。

于 2012-07-02T23:42:06.253 に答える