以下提供source code寻求解答
1, 以PDO连接->database;
2, 用regular expression;
3, 再用SESSION验证是否各自相等;
4, 利用database验证email是否注册;
5, 利用PHP原生通知与SWAL通知;
在此感谢各位解答!
<?php
if ($_SERVER['REQUEST_METHOD'] == "POST") {
$username = trim($_POST['username']);
if (!preg_match("/^[\w\-]+\.+[\w\-]+$/", $username)) {
$Error = "Please enter a valid Username";
}
$email = $_POST['email'];
if (!preg_match("/^[\w\-]+@[\w\-]+.[\w\-]+$/", $email)) {
$Error = "Please enter a valid email";
}
$password = esc($username);
$password = esc($_POST['password']);
$date = date("Y-m-d H:i:s");
$url_address = generateRandomString(60);
// $query = "insert into users (url_address, username, password, email, date) values ('$url_address', '$username', '$password', '$email', '$date')";
//check if email exist
$quarr = false;
$quarr['email'] = $email;
$query = "SELECT * FROM USERS
WHERE email = :email LIMIT 1";
$stmt = $dbconn->prepare($query);
$stmt -> bindParam(':email', $quarr['email']);
$check = $stmt -> execute();
if ($check) {
$data = $stmt->fetchAll(PDO::FETCH_OBJ);
if (is_array($data) && count($data) > 0) {
$Error = "<script>alert('Email has been already used!')</script>";
}
}
if ($Error == "") {
$arr['url_address'] = $url_address;
$arr['date'] = $date;
$arr['username'] = $username;
$arr['password'] = $password;
$arr['email'] = $email;
$query = "insert into users (url_address, username, password, email, date)
values (:url_address, :username, :password, :email, :date)";
$stmt = $dbconn->prepare($query);
$stmt -> execute($arr);
echo '
<script>
swal({
title: "All Done!",
text: "Your profile has been created!",
type: "success"
}).then(function(){
window.location = "login.php";
</script>';
}
}
?>
你上面这个 if ($Error == "") { 只有这个条件,那么如果$Error 不为空,那你这个程序不是没有任何输出么?
应该加一个
else{
echo $Error;
}
已解決
1, swal版本問題, 在swal2中必須使用.fire效果
2, 部分 tag/script 缺少 ";" 等
$Error = "<script>alert('Email has been already used!')</script>";
/* FIXED */
$Error = "<script>alert('Email has been already used!');</script>";
}).then(function(){
window.location = "login.php";
</script>';
/* FIXED */
}).then(function(){
window.location = "login.php";
});
</script>';
真的太煩了