正如标题所说..
这是我在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");
}
任何提示都将不胜感激。
答案 0 :(得分:1)
现在我查看了代码,正如我在评论中所说:你引用了函数调用。 now()
是一个函数调用,它为您提供日期时间; 'now()'
根本不是日期时间。当您执行分隔implode
时,您需要找出一种方法,不将该特定字段与其余字段捆绑在一起。更好的是,使用更好的方式来访问数据库:mysqli或PDO都是更好的选择。
答案 1 :(得分:0)
确保您的implode
语句以正确的方式生成,例如,如果您要插入username
和signup
字段,则查询必须
INSERT INTO `users` (username, signup) VALUES ('abcd', now())
应该
INSERT INTO `users` (username, signup) VALUES ('abcd', 'now()' )