后端 PHP:
Mushouse - Sign upSign up
注册信息
function echo_text($text)
{
echo "
" . $text . "
";}
function die_text($text)
{
die("
" . $text . "
");}
function qm_str($str)
{
return "\"" . $str . "\"";
}
error_reporting(E_ALL);
header("Content-Type: text/html; charset=utf-8");
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: Content-Type,Content-Length,Accept-Encoding,X-Requested-with, Origin");
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require "./PHPMailer/src/Exception.php";
require "./PHPMailer/src/PHPMailer.php";
require "./PHPMailer/src/SMTP.php";
try
{
if ($_GET["op"] == "send_ve")
{
$ve = "";
for ($i = 0; $i < 6; $i++)
$ve .= mt_rand(0, 9);
$_SESSION["ve"] = $ve;
# Test:
$_SESSION["OK"] = "OK";
# Note: 开始发送邮件!
$mail = new PHPMailer(true);
$mail->CharSet = "UTF-8";
$mail->SMTPDebug = 0;
$mail->isSMTP();
$mail->Host = "smtp.qq.com";
$mail->SMTPAuth = true;
$mail->Username = "fork_killet@qq.com";
$mail->Password = "xxxx";
$mail->SMTPSecure = "ssl";
$mail->Port = 465;
$mail->setFrom("fork_killet@qq.com", "IceLava 团队");
echo $_POST["email"];
$mail->addAddress($_POST["email"], $_POST["email"]);
$mail->isHTML(true);
$mail->Subject = "Mushouse 注册验证码";
$mail->Body = "这是 IceLava 团队向您发来的验证邮件,
如果不是您本人在注册 Mushouse 账户,请不要理睬!
";
$mail->Body .= "
6 位数字验证码:" . $ve . ",请在注册页面填写。
";
$mail->Body .= "
-- IceLava 团队
";$mail->AltBody = "很抱歉,您的邮箱太屑了,不支持 HTML 邮件内容!";
$mail->send();
}
else if ($_GET["op"] == "submit")
{
if ($_POST["pw"] != $_POST["pw2"])
echo_text("两次密码输入不一致!");
else if (preg_match("/[^A-Za-z0-9_]/", $_POST["pw"]))
echo_text("密码不能包含数字、大小写字母和下划线以外的字符!");
else if (strlen($_POST["pw"]) < 6)
echo_text("密码长度必须大于 6!");
else if (strlen($_POST["pw"]) > 16)
echo_text("密码长度必须小于 16!");
else if (preg_match("/[^A-Za-z0-9_]/", $_POST["un"]))
echo_text("用户名不能包含数字、大小写字母和下划线以外的字符!");
else if (strlen($_POST["un"]) < 4)
echo_text("用户名长度必须大于 4!");
else if (strlen($_POST["un"]) > 16)
echo_text("用户名长度必须小于 16!");
else if (!preg_match("/^([A-Za-z0-9_\.\-])+\@(([A-Za-z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/", $_POST["email"]))
echo_text("邮箱格式不正确!");
# Note: 验证码检查
else if ($_POST["ve"] != $_SESSION["ve"])
{
echo_text($_SESSION["ve"]);
echo_text("验证码不正确!");
}
else
{
$conn = new mysqli("xxx", "xxx", "xxx", "icelavag");
if ($conn->connect_error)
die_text("数据库连接失败: " . $conn->connect_error);
$rst = $conn->query
(
"SELECT * FROM user_info WHERE un=" . qm_str($_POST["un"])
);
if ($rst->num_rows == 1)
echo_text("用户名 " . $_POST["un"] . " 已被注册!");
else
{
$conn->query
(
"INSERT INTO user_info (un, pw, email) VALUES (" .
qm_str($_POST["un"]) . ", " . qm_str($_POST["pw"]) . ", " . qm_str($_POST["email"]) . ")"
);
echo_text("注册成功!您可以去登陆了," . $_POST["un"] . " ~");
echo_text($_SESSION["OK"]);
}
}
}
}
catch(\Exception $err)
{
echo_text($err->getMessage());
}
?>