gpt4 book ai didi

PHP,MySQL 用户注册,带有电子邮件验证和登录系统(历史),插入日期为最后一次

转载 作者:太空宇宙 更新时间:2023-11-03 10:24:46 24 4
gpt4 key购买 nike

我希望创建一个登录系统,每次用户登录时,此事件都会记录在另一个表中。这怎么可能?

我正在使用 PHP 和 MySQL,我对这两者有很好的了解,并且目前有一个我使用各种教程设计的系统。

这非常简单,因为这就是我目前所需要的,但是我可能希望在以后通过使其面向对象来简化代码,但这超出了我目前的技能水平。

用户使用他们的姓名、用户名、密码和电子邮件进行注册。然后通过电子邮件向用户发送他们的登录详细信息 - 我希望用户必须单击电子邮件批处理中的链接来激活他们的帐户。*1

一旦用户激活了他们的帐户,用户就会使用用户名和密码登录 - 我希望存储他们的“事件”,即他们登录的日期/时间。*2

*1:目前,当用户注册时,他们会收到一封包含登录详细信息的电子邮件,我希望该电子邮件包含一个链接,以便他们可以“激活”他们的帐户。我该如何实现这一点。我知道我应该在数据库中存储一个唯一代码,但我不知道如何将该信息发送给用户并对照数据库进行检查。

*2:我希望将用户登录时的日期和时间存储在表格中,以便可以检查他们的“事件历史”。我该怎么做。我知道我需要创建一个名为“log”之类的新表,它只存储用户名和日期,但我不知道如何在用户登录时填充它。

如果有人可以提供帮助,那将不胜感激。

最佳答案

在这里,我之前已经解释了如何创建登录系统。检查这篇文章。这可能会帮助你。

Open-source rich HTML editor

以及关于发送邮件进行激活。您需要将以下内容附加到上述解释的代码中。

添加一个额外的列activation_string表用户。现在你的决赛 table 应该是这样的。

CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`email` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL,
`activation_string` varchar(50) NOT NULL,
`status` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
);
activation_string列将保存我们要发送到用户电子邮件的激活字符串。这样当用户点击它时,用户帐户就会被激活。现在使用以下函数生成激活字符串。
function generateActivationString() {
$randomSalt = '*&(*(JHjhkjnkjn9898';
$uniqId = uniqid(mt_rand(), true);
return md5($randomSalt.$uniqId);
}

现在使用注册表单代表用户。在提交表单时,您必须执行以下操作。
$email = mysql_real_escape_string($_POST['email']);
$password = mysql_real_escape_string(sha1($_POST['password']));
$activationString = generateActivationString();
mysql_query("INSERT INTO users (email,password, activation_string) VALUES('$name','$password','$activationString')");

同时向用户发送一封电子邮件,其中激活字符串表示为 URI。检查下面的代码如何做到这一点。
$email = $_POST['email'];
$message = 'http://mysite.com/activate.php?confirm='.$activationString;
$to = $email;
$subject = 'User Account Confirmation';
$body = $message . PHP_EOL;
mail($to, $subject, $body);

然后编写另一个脚本来验证字符串,如果验证激活字符串,则将 status 中的值更新为 1。

希望这可以帮助您了解您应该做什么。

关于PHP,MySQL 用户注册,带有电子邮件验证和登录系统(历史),插入日期为最后一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7214076/

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