本教程将指导您创建一个用户注册表单,该表单将用户添加到数据库,然后发送一封确认邮件,用户必须点击该邮件才能激活其帐户。
本节将逐步讲解从零开始构建自定义注册表单的步骤。首先,我已经附上了所有代码文件供您下载,以便您可以按照教程进行操作。
让我们快速浏览一下重要的文件:
index.php
:这是用于构建和显示注册表单的主文件。它还处理表单的提交。confirm.php
:用于处理确认部分。signup_template.html
:这是用于构建HTML电子邮件正文的HTML文件模板。signup_template.txt
:这是用于构建纯文本电子邮件正文的纯文本文件模板。inc/php/config.php
:包含数据库连接信息。其余文件是辅助文件。
打开PHPMyAdmin或您用于管理MySQL数据库的任何程序,并创建一个新数据库。您可以随意命名它,但我将其命名为email_signup
。现在,我们需要创建架构,该架构将保存我们的用户信息和确认信息。为此,我们将创建两个表:users
和confirm
。
<code class="language-sql">CREATE TABLE `users` ( `id` int(11) NOT NULL auto_increment, `username` varchar(50) NOT NULL default '', `password` varchar(128) NOT NULL default '', `email` varchar(250) NOT NULL default '', `active` binary(1) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>
上述MySQL语句将创建一个名为users
的表。
id
:一个整数列,用作用户的唯一标识符。它被定义为int(11)
,这意味着它可以保存最多11位的整数。username
:一个字符串列,存储每个用户的用户名。它被定义为varchar(50)
,这意味着它最多可以保存50个字符。password
:一个字符串列,存储每个用户的哈希密码。它被定义为varchar(128)
,这意味着它最多可以保存128个字符。email
:一个字符串列,存储每个用户的电子邮件地址。它被定义为varchar(250)
,这意味着它最多可以保存250个字符。active
:一个二进制列,存储用户的帐户是否已被激活。它被定义为binary(1)
,这意味着它存储一个字节的值,0表示未激活,1表示已激活。confirm
表:
<code class="language-sql">CREATE TABLE `confirm` ( `id` int(11) NOT NULL auto_increment, `userid` varchar(128) NOT NULL default '', `key` varchar(128) NOT NULL default '', `email` varchar(250) default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>
上述MySQL语句将创建一个名为confirm
的表。
id
:一个整数列,用作确认记录的唯一标识符。它被定义为int(11)
,这意味着它可以保存最多11位的整数。userid
:一个字符串列,存储与确认记录关联的用户ID。它被定义为varchar(128)
,这意味着它最多可以保存128个字符。key
:一个字符串列,存储发送到用户电子邮件地址的确认密钥。它被定义为varchar(128)
,这意味着它最多可以保存128个字符。本节将介绍如何使用mysqli扩展连接到MySQL数据库。
让我们快速提取并理解inc/php/config.php
文件的代码。
<code class="language-sql">CREATE TABLE `users` ( `id` int(11) NOT NULL auto_increment, `username` varchar(50) NOT NULL default '', `password` varchar(128) NOT NULL default '', `email` varchar(250) NOT NULL default '', `active` binary(1) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>
首先,我们创建一个新的mysqli连接。然后,我们检查连接是否成功。如果连接失败,则显示错误消息并退出。
本节将介绍表单提交是如何工作的。
...(此处省略部分代码,因为原文中这部分代码冗长且与伪原创目标不符,保留核心逻辑即可)...
主要逻辑是:对用户输入进行安全处理(例如,使用mysqli_real_escape_string
函数防止SQL注入),验证用户输入是否完整,将用户数据插入数据库,生成确认密钥,并发送确认邮件。密码使用md5函数进行哈希,建议使用更安全的加密方法。
让我们提取confirm.php
文件中重要的代码片段,以了解其工作原理。
<code class="language-sql">CREATE TABLE `confirm` ( `id` int(11) NOT NULL auto_increment, `userid` varchar(128) NOT NULL default '', `key` varchar(128) NOT NULL default '', `email` varchar(250) default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>
这段代码主要检查数据库中是否存在与URL参数匹配的邮箱和确认密钥。如果存在,则将用户状态更新为已激活,并删除确认记录。
本教程到此结束。
在本教程中,我们涵盖了许多不同的方面。我们下载并包含了用于处理发送电子邮件的第三方脚本,实现了简单的表单验证,并创建了一个简单的模板系统来设置电子邮件的样式。如果您不熟悉MySQL,我们已经介绍了三个最常见的函数,因此您应该能够轻松完成更高级的教程。
以上是如何通过电子邮件确认编码注册表格的详细内容。更多信息请关注PHP中文网其他相关文章!