gpt4 book ai didi

php - 新用户注册时发送激活邮件

转载 作者:可可西里 更新时间:2023-11-01 13:00:35 25 4
gpt4 key购买 nike

下面的代码是我正在使用的登录系统。它应该允许新用户注册,然后向新用户发送激活电子邮件。它将新用户插入 MySQL 数据库,但不发送激活电子邮件。知道为什么它不发送激活电子邮件吗?

提前致谢

约翰

header.php:

<?php
//error_reporting(0);
session_start();
require_once ('db_connect.inc.php');
require_once ("function.inc.php");
$seed="0dAfghRqSTgx";
$domain = "...com";


?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>The Sandbox - <?php echo $domain; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="sandbox.css">
<div class="hslogo"><a href="http://www...com/sandbox/"><img src="images/hslogo.png" alt="Example" border="0"/></a></div>
</head>
<body>

登录.php:

<?php
if (!isLoggedIn())
{
// user is not logged in.
if (isset($_POST['cmdlogin']))
{
// retrieve the username and password sent from login form & check the login.
if (checkLogin($_POST['username'], $_POST['password']))
{
show_userbox();
} else
{
echo "Incorrect Login information !";
show_loginform();
}
} else
{
// User is not logged in and has not pressed the login button
// so we show him the loginform
show_loginform();
}

} else
{
// The user is already loggedin, so we show the userbox.
show_userbox();
}
?>


function show_loginform($disabled = false)
{

echo '<form name="login-form" id="login-form" method="post" action="./index.php?'.$_SERVER['QUERY_STRING'].'">

<div class="usernameformtext"><label title="Username">Username: </label></div>
<div class="usernameformfield"><input tabindex="1" accesskey="u" name="username" type="text" maxlength="30" id="username" /></div>


<div class="passwordformtext"><label title="Password">Password: </label></div>
<div class="passwordformfield"><input tabindex="2" accesskey="p" name="password" type="password" maxlength="15" id="password" /></div>


<div class="registertext"><a href="http://www...com/sandbox/register.php" title="Register">Register</a></div>
<div class="lostpasswordtext"><a href="http://www...com/sandbox/lostpassword.php" title="Lost Password">Lost password?</a></div>

<p class="loginbutton"><input tabindex="3" accesskey="l" type="submit" name="cmdlogin" value="Login" ';
if ($disabled == true)
{
echo 'disabled="disabled"';
}
echo ' /></p></form>';


}

注册.php:

<?php

require_once "header.php";

if (isset($_POST['register'])){

if (registerNewUser($_POST['username'], $_POST['password'], $_POST['password2'], $_POST['email'])){

echo "<div class='registration'>Thank you for registering, an email has been sent to your inbox, Please activate your account.
<a href='http://www...com/sandbox/index.php'>Click here to login.</a>
</div>";

}else {

echo "Registration failed! Please try again.";
show_registration_form();

}

} else {
// has not pressed the register button
show_registration_form();
}


?>

新用户功能:

function registerNewUser($username, $password, $password2, $email)
{

global $seed;

if (!valid_username($username) || !valid_password($password) ||
!valid_email($email) || $password != $password2 || user_exists($username))
{
return false;
}


$code = generate_code(20);
$sql = sprintf("insert into login (username,password,email,actcode) value ('%s','%s','%s','%s')",
mysql_real_escape_string($username), mysql_real_escape_string(sha1($password . $seed))
, mysql_real_escape_string($email), mysql_real_escape_string($code));


if (mysql_query($sql))
{
$id = mysql_insert_id();

if (sendActivationEmail($username, $password, $id, $email, $code))
{

return true;
} else
{
return false;
}

} else
{
return false;
}
return false;

}

发送激活邮件功能:

function sendActivationEmail($username, $password, $uid, $email, $actcode)
{
global $domain;
$link = "http://www.$domain/sandbox/activate.php?uid=$uid&actcode=$actcode";
$message = "
Thank you for registering on http://www.$domain/,

Your account information:

username: $username
password: $password

Please click the link below to activate your account.

$link

Regards
$domain Administration
";

if (sendMail($email, "Please activate your account.", $message, "no-reply@$domain"))
{
return true;
} else
{
return false;
}
}

最佳答案

可能是因为发送邮件的函数是mail而不是发送邮件?如果定义了函数 sendMail,则该函数可能存在错误。

关于php - 新用户注册时发送激活邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2784852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com