所以我正在为我的网站编写注册表单。我已经编写了所有必要的文件,但是当我在注册表单中输入所有正确的详细信息时,页面只是刷新而不是重定向到register-success.php。任何帮助
以下是关于注册过程的所有代码:
<?php
require_once('functions.inc');
//Prevent access if they haven't submitted the form.
if (!isset($_POST['submit'])) {
die(header("Location: register.php"));
}
$_SESSION['formAttempt'] = true;
if (isset($_SESSION['error'])) {
unset($_SESSION['error']);
}
$_SESSION['error'] = array();
$required = array("username", "email", "password1", "password2");
//Check required fields
foreach ($required as $requiredField) {
if (!isset($_POST[$requiredField]) || $_POST[$requiredField] == "" ) {
$_SESSION['error'][]= $requiredField."is required.";
}
}
if (!preg_match('/^[\w.]+$/',$_POST['username'])){
$_SESSON['error'][] = "Username must contain onyl letters and numbers.";
}
if(!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL)) {
$_SESSION['error'][] = "Invalid email address";
}
if($_POST['password1'] != $_POST['password2']) {
$_SESSION['error'][] = "Passwords do not match.";
}
//Final disposition
if(count($_SESSION['error']) > 0) {
die(header("Location: register.php"));
} else {
if(registerUser($_POST)) {
unset($_SESSION['formAttempt']);
die(header("Location: register-success.php"));
} else {
error_log("Problem registering user: {$_POST['email']}");
$_SESSION['error'][] = "Problem registering account";
die(header("Location:register.php"));
}
}
function registerUser($userData) {
$mysqli = new mysqli (DBHOST, DBUSER, DBPASS, DB);
if ($mysqli->conntect_errno) {
error_log("Cannot connect to MYSQL: ".$mysqli->connect_error);
return false;
}
$email = $mysqli->real_escape_string($_POST['email']);
//check for an existing user
$findUser = "SELECT id from users where email = '{$email}'";
$findResult = $mysqli->query($findUser);
$findRow = $findResult->fetch_assoc();
if(isset($findRow['id']) && $findRow['id'] != "") {
$_SESSION['error'][] = "A user with the email provided already exists.";
return false;
}
$username = $mysqli->real_escape_string($_POST['username']);
$cryptedPassword = crypt($_POST['password1']);
$password = $mysqli->real_escape_string($cryptedPassword);
$query = "INSERT INTO users ( create_date, email, password, username) ".
"VALUES ('NOW(), '{$email}', '{$password}', '{$username}'";
if ($mysqli->query($query)) {
$id = $mysqli->insert_id;
error_log("Inserted {$email} as ID {$id}");
return true;
} else {
error_log("Problem inserting {$query}");
return false;
}
} //end function registerUser
&GT?;
我的日志中出现此错误:
[2015年2月17日00:03:20欧洲/柏林]问题插入INSERT INTO用户(create_date,电子邮件,密码,用户名)VALUES(NOW(),'123 @123.com','$ 1 $ Xo ..U65。$ A8zl / 2CaTGSs0ZvRPe6wy1','1'
[2015年2月17日00:03:20欧洲/柏林]注册用户的问题:123@123.com
答案 0 :(得分:0)
尝试在registerUser方法中使用它:
$query = "INSERT INTO users (`create_date`, `email`, `password`, `username`) VALUES (NOW(), '{$email}', '{$password}', '{$username}')";