成功创建用户后,将发送一封电子邮件,但上面没有链接。我希望电子邮件中包含用户的名字和姓氏,以及两个链接:用于接受/拒绝用户注册。如果管理员单击“接受”链接,则应在表上将批准列设置为true的新用户进行更新。
直到现在,这是电子邮件的外观:
select *
from (
select a.*,
row_number() over(partition by a.vendor, convert(date, a.date) order by a.arrival_time desc) rn
from availability a
) a
where rn = 1
add_user.php
The user {Username} needs your approval----------------------------------- Accept: Decline:
approval.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>Add New User</title>
<!-- Bootstrap core CSS-->
<link href="assets/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom fonts for this template-->
<link href="assets/vendor/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<!-- Custom styles for this template-->
<link href="assets/css/sb-admin.css" rel="stylesheet">
</head>
<body class="bg-dark">
<div class="container">
<div class="card card-login mx-auto mt-5">
<div class="card-header">Adding User</div>
<div class="card-body">
<?php
if (isset($errorMsg)) {
echo '<div class="alert alert-danger">';
echo $errorMsg;
echo '</div>';
unset($errorMsg);
}
?>
<div id = "main">
<form action = "" method = "post">
<div class="form-group">
<label>First Name</label>
<input class="form-control" id="first_name" name="first_name" type="text" placeholder="Enter your name" required>
</div>
<div class="form-group">
<label>Last Name</label>
<input class="form-control" id="last_name" name="last_name" type="text" placeholder="Enter your last name" required>
</div>
<!--<div class="form-group">
<label>Role</label>
<input class="form-control" id="user_role_id" name="user_role_id" type="number" placeholder="1, 2, or 3" required>
</div>-->
<div class="form-group">
<label>Email</label>
<input class="form-control" id="email" name="email" type="email" placeholder="Enter email" required>
</div>
<div class="form-group">
<label>Password</label>
<input class="form-control" id="password" name="password" type="password" placeholder="Create your password" required>
</div>
<div class="form-group">
<label>Password (Confirmation)</label>
<input class="form-control" id="password" name="password2" type="password" placeholder="Confirm your password" required>
</div>
<p>Use 8 or more characters with a mix of letters, numbers & symbols</p>
<input class="btn btn-primary btn-block" type = "submit" value ="Submit" name = "submit"/>
<br />
</form>
</div>
</div>
</div>
</div>
<!-- Bootstrap core JavaScript-->
<script src="assets/vendor/jquery/jquery.min.js"></script>
<script src="assets/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- Core plugin JavaScript-->
<script src="assets/vendor/jquery-easing/jquery.easing.min.js"></script>
</body>
</html>
<?php
// ERRORS
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
/*
error_reporting(-1);
ini_set('display_errors', 'On');
set_error_handler("var_dump");*/
if (isset($_POST["submit"])) {
$servername = "localhost";
$username = "admin";
$password = "";
$dbname = "users";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
#$username = $_POST[''];
$password = $_POST['password'];
$password2 = $_POST['password2'];
if (strlen($password) < 8) {
//echo '<script>alert ("Password too short!. Password might have at least 8 characters")</script>';
//$errors[] = die("Password too short!. Password might have at least 8 characters");
die();
}
if (!preg_match("#[0-9]+#", $password)) {
//echo '<script>alert ("Password must include at least one number!")</script>';
die();
//$errors[] = die("Password must include at least one number!");
}
if (!preg_match("#[a-zA-Z]+#", $password)) {
//echo '<script>alert ("Password must include at least one letter!")</script>';
die();
//$errors[] = die("Password must include at least one letter!");
}
if (!preg_match("@[^\w]@", $password)) {
//echo '<script>alert ("Password must include at least one special character!")</script>';
die();
//$errors[] = die("Password must include at least one special character!");
}
if ($password != $password2) {
//echo '<script>alert ("Passwords do not match")</script>';
die();
//die('Passwords do not match');
}
if (isset($_POST['submit'])) {
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];
$sql = "INSERT INTO tbl_users(user_role_id, first_name, last_name, email, password)
#VALUES ('2','$_POST[first_name]','$_POST[last_name]','$_POST[email]',md5('$_POST[password]'))
VALUES('3','".$first_name."', '".$last_name."', '".$email."',md5('$password'))";
if (mysqli_query($conn, $sql)) {
//echo "New user created successfully";
//echo '<script>alert ("New user created successfully")</script>';
//$message='<div class="alert alert-success" role="alert">Success</div>';
// SEND APPROVAL EMAIL
require_once 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer();
$mail->isSMTP();
$mail->SMTPAuth = True;
$mail->SMTPSecure = 'ssl';
$mail->Host = 'smtp.gmail.com';
$mail->Port = '465';
$mail->isHTML();
$mail->Username = 'hub@gmail.com';
$mail->Password = '00000000';
$mail->SetFrom('hub@gmail.com');// FROM
$mail->Subject = 'User needs approval';
//$mail->Body = 'A test email!';// BODY
$mail->Body = 'The user {Username} needs your approval' .
'----------------------------------- ' . "\r\n" .
'Accept: ' . $accept_link . "\r\n" .
'Decline: ' . $decline_link . "\r\n";// BODY
$mail->AddAddress('land@gmail.com');// TO
$mail->Send();
$accept_link = "http://lab.org/multi_users/approval.php" . $email . "&h=" . hash('sha512', 'ACCEPT');
$decline_link = "http://lab.org/multi_users/approval.php" . $email . "&h=" . hash('sha512', 'DECLINE');
//////////////////////
header('location:index.php');
exit;
} else {
echo "Error: " . $sql . "" . mysqli_error($conn);
}
}
$conn->close();
}
?>
任一页面均未显示错误消息。