This repository has been archived by the owner on Jul 18, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathforget.php
110 lines (102 loc) · 4.7 KB
/
forget.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<?php
session_start();
if (isset($_SESSION['login'])) {
header("Location: index.php");
die();
}
?>
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<title>密码重置</title>
<head>
<link href="//cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="css/login_and_reg.css" rel="stylesheet">
<style>
.input {
margin-top: 2px;
}
</style>
<link href="css/panel.css" rel="stylesheet">
</head>
<body class="text-center">
<form class="input-form" action="forget.php" method="POST">
<h1 class="h3 font-weight-normal">密码重置</h1>
<div class="input">
<input type="text" name="username" class="form-control" placeholder="请输入用户名" required autofocus>
</div>
<div class="input">
<select class="form-control" name="question">
<option>您初中班主任的名字是?</option>
<option>您的宠物的名字是?</option>
<option>您最熟悉的童年好友的名字是?</option>
<option>对您影响最大的人的名字是?</option>
</select>
</div>
<div class="input">
<input type="text" name="answer" class="form-control" placeholder="请选择密保问题并填入您设置的答案" required>
</div>
<div class="input">
<input type="password" name="password" class="form-control" placeholder="请输入新的密码" required>
</div>
<div class="input">
<input type="password" name="confirm" class="form-control" placeholder="请再次确认密码" required>
</div>
<div class="input row">
<div class="col">
<input type="text" name="authcode" class="form-control" placeholder="请输入验证码" required>
</div>
<div class="col">
<a href="javascript:void(0)" onClick="document.getElementById('captcha_img').src='captcha.php'"><img id="captcha_img" src="captcha.php"/></a>
</div>
</div>
<div class="input">
<button class="btn btn-lg btn-primary btn-block" type="submit">提交</button>
</div>
<p class="mt-5 text-muted">已有账号? <a href="login.php">立即登录</a></p>
</form>
</body>
<div class="top" id="prompt_bar"></div><!--提示栏-->
<script src="//cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
<script src="js/prompt.js"></script>
</html>
<?php
include "class.php";
$question_array = array("您初中班主任的名字是?", "您的宠物的名字是?", "您最熟悉的童年好友的名字是?", "对您影响最大的人的名字是?");
if (isset($_POST["username"]) && isset($_POST["password"]) && isset($_POST["confirm"]) && isset($_POST["question"]) && isset($_POST["answer"]) && isset($_POST["authcode"])) {
if (strtolower($_POST["authcode"]) === strtolower($_SESSION["authcode"])) {
$user = new User();
$username = (string)$_POST["username"];
$password = (string)$_POST["password"];
$confirm = (string)$_POST["confirm"];
$question = (string)$_POST["question"];
$answer = (string)$_POST["answer"];
if ($password === $confirm) {
if (strlen($password) > 5) {
if (in_array($question, $question_array, true)) {
$posi = array_search($question, $question_array, true);
if ($user->check_user_exist($username)) {
if ($user->check_answer($username, $posi, $answer)) {
$user->update_password($username,$password);
echo("<script>window.location.href='login.php?reset';</script>");#重置成功,重定向到登录页面
} else {
echo "<script>prompt_func('密保问题错误!!!','warning');</script>";
}
} else {
echo "<script>prompt_func('不存在该用户!!!','warning');</script>";
}
} else {
echo "<script>prompt_func('密保问题被篡改!!!','warning');</script>";
}
} else {
echo "<script>prompt_func('密码长度必须大于5','warning');</script>";
}
} else {
echo "<script>prompt_func('两次输入的密码不一致!!!','warning');</script>";
}
} else {
echo "<script>prompt_func('验证码错误!!!', 'warning');</script>";
}
}
?>