1

タイトルの通り..

これがregister.php内の私のコードです

if (empty($_POST) === false && empty($errors) === true) {
    $register_data = array(
        'username'      => $_POST['username'],
        'password'      => $_POST['password'],
        'first_name'    => $_POST['first_name'],
        'last_name'     => $_POST['last_name'],
        'signup'        => 'now()',
        'email'         => $_POST['email'],
        'email_code'    => md5($_POST['username'] + microtime())
    );

    register_user($register_data);
    header('Location: register.php?success');
    exit();

そして、これが私のユーザー関数ファイルの登録を扱う部分です。

function register_user($register_data) {
array_walk($register_data, 'array_sanitize');
$register_data['password'] = md5($register_data['password']);

$fields = '`' . implode('`, `', array_keys($register_data)) . '`';
$data = '\'' . implode('\', \'', $register_data) . '\'';

mysql_query("INSERT INTO `users` ($fields) VALUES ($data)");
email($register_data['email'], 'Activate your account', "Hello " . $register_data['first_name'] . ",\n\nYou need to activate your account, so use the link below:\n\nhttp://www.site.com/activate.php?email=" . $register_data['email'] . "&email_code=" . $register_data['email_code'] . "\n\n - admin");
}

ヒントをいただければ幸いです。

4

2 に答える 2

1

コメントで述べたように、コードを調べたところ、関数呼び出しを引用しています。now()日時を提供する関数呼び出しです。'now()'日時の種類はまったくありません。区切られimplodeた . さらに良いのは、データベースにアクセスするためのより良い方法を使用することです.mysqliまたはPDOはどちらもより良い選択です.

于 2013-07-17T06:34:56.393 に答える
0

ステートメントの結果が正しいことを確認してください。implodeたとえば、フィールドを挿入usernameしている場合signup、クエリは

INSERT INTO `users` (username, signup) VALUES ('abcd', now()) 

そうすべき

 INSERT INTO `users` (username, signup) VALUES ('abcd', 'now()' ) 
于 2013-07-17T06:37:59.110 に答える