-1

私はphpに慣れていませんが、非常に基本的なレベルの問題に直面していますが、それを克服する方法がわかりません。フィールドが名前、電子メール、コメント、日付、時刻であるコメントのテーブルがあります。今私がしたいのは、システムの日付と時刻をそれぞれのフィールドに挿入することですが、日付ではなく時刻のみを入力します。フィールド date のタイプは date であり、time のタイプは time です。ここに私の質問があります

 $insert = 'insert into tbl_comment 
      (name, email, desc, date, time)
      VALUES 
 ("'.$_POST['name'].'","'.$_POST['email'].'","'.$_POST['comment'].'"
 ,CURDATE(),"CURTIME()",CURTIME())';   
      mysql_query($insert);
 }

助けてください

4

1 に答える 1

0

コードは SQL インジェクションに対して脆弱です。これをすぐに修正してください!

//Function to sanitize values received from the form. Prevents SQL injection
function clean($str) {
    $str = @trim($str);
    if(get_magic_quotes_gpc()) {
        $str = stripslashes($str);
    }
    return mysql_real_escape_string($str);
}

$myName = clean($_POST['name']);
$myEmail = clean($_POST['email']);
$myDesc = clean($_POST['comment']);
$insert = "insert into tbl_comment 
           (name, email, desc, `date`, `time`)
           VALUES 
           ('$myName','$myEmail','$myDesc',CURDATE(),CURTIME())";   
mysql_query($insert);

フィールド名として日付と時刻がある場合は、予約済みのキーワードであるため、バッククォートを使用してください。

また、PHP/MySQL にデータを挿入する方法もお読みください。

于 2012-06-27T11:11:22.677 に答える