2

サインアップ フォームがあり、フォームが記入された日付を MySQL テーブルに記録しようとしています。フォーム内で私が要求しているすべての情報は、日付を除いて記録されています。誰かがこの仕事で私を助けることができますか?

これは、問題が存在すると思われる場所のPHPコードのスニペットです。データベースに PHPmyadmin も使用しています。それが関連する場合。

ここにページへのリンクがあります www.3elementsreview.com/sign-up

    $value = $_POST['First'];
    $value2 = $_POST['Last'];
    $value3 = $_POST['City'];
    $value4 = $_POST['State'];
    $value5 = $_POST['Country'];
    $value6 = $_POST['Email'];
    $value7 = $_POST['Y-m-d H:i:s'];

    $sql = "INSERT INTO members (First, Last, City, State, Country, Email, Date) VALUES     ('$_POST[First]','$_POST[Last]','$_POST[City]','$_POST[State]','$_POST[Country]','$_POST[Email]','$_POST[Date]')";
4

2 に答える 2

2

あなたのコードは危険であり、SQL インジェクション攻撃を可能にします。

まず、mysql_* ライブラリが減価償却されます。

次に、mysql_* 関数を使用する場合は、すべての POST フィールドで mysql_real_escape 文字列を使用します。

第三に、これはあなたの問題を解決します:

$value = mysql_real_escape_string($_POST['First']);
$value2 = mysql_real_escape_string($_POST['Last']);
$value3 = mysql_real_escape_string($_POST['City']);
$value4 = mysql_real_escape_string($_POST['State']);
$value5 = mysql_real_escape_string($_POST['Country']);
$value6 = mysql_real_escape_string($_POST['Email']);

$sql = "INSERT INTO members (First, Last, City, State, Country, Email, Date) VALUES     ('$value','$value2','$value3','$value4','$value5','$value6',NOW())";

mysql では、関数 NOW() を使用して現在の日付/時刻を返します。

于 2013-08-13T19:38:33.740 に答える
0

パラメータが呼び出されない限り、Y-m-d%20H:i:s=____おそらく$_POST['date']変数か何かを収集し、変数に割り当てた後に日付に変換する必要があります。

$value7 = $_POST['date'];
$value7 = date('Y-m-d H:i:s', $value7);
于 2013-08-13T19:38:22.187 に答える