php注册及登录模块 

导读:PHP注册及登录验证模块设计,几乎每个动态交互式的网站都有一个注册模块用来保存用户信息,并提供一个登录模块以供注册用户登录,本章将建立一个注册程序,以实现用户的登录和注册,—PHP如何使用Session来记住用户的登录信息,主键用户密码用户姓名用户E-mail地址登录次数最后登录时间最后登录IPf_lo,2.2为注册建立HTML表单,注册页面的代码如下,用户注册界面如图2-1所示,主键用户密码

php注册及登录模块 

PHP注册及登录验证模块设计

本文来自谈笑涧163博客

所谓―人过留名,雁过留声‖,几乎每个动态交互式的网站都有一个注册模块用来保存用户信息,并提供一个登录模块以供注册用户登录。本章将建立一个注册程序,以实现用户的登录和注册。 通过本章的学习,读者将了解: — 如何建立HTML表单; — PHP如何获取用户填写的信息;

— 如何建立PHP与MySQL数据库的连接;

— 如何使用PHP往数据库添加记录及如何在数据库中查找记录; — 如何使用JavaScript脚本语言在客户端编程; — 如何使用正则表达式进行数据验证;

— PHP如何使用Session来记住用户的登录信息; — 数据库处理错误的调试方法。

通过本章的学习,读者将对PHP网络编程有一个总体性的认识,为以后章节的学习打下良好的基础。 2.1 建立用户信息表

网站的开发是一个以数据为中心的开发过程,所以数据库的设计非常重要,在进行编程之前一定要做好需求分析和数据库设计。

本例将在MySQL安装时自动建立的test数据库中建立一张名为t_user的用户信息表。 t_user的表结构如表2-1所示。 表2-1 表t_user的结构 列 名 f_username f_password f_name f_email f_lasttime f_loginip 数 据 类 型 长 度 允 许 空 char char char char datetime char 50 50 50 50 4 8 19 否 否 否 否 否 是 是 默 认 值 无 无 无 无 0 字 段 说 明 用户名,主键 用户密码 用户姓名 用户E-mail地址 登录次数 最后登录时间 最后登录IP f_logintimes int 在编程开发中,程序员的代码应当是自注释的,也就是代码能够向阅读者传达出自身作用的信息,额外的说明语句需要但不宜太多,否则会降低代码的可读性。在编 程开发中,为每一个对象选择一个合适的名称是非常重要的,在进行数据库设计时为每张表及每个字段合适地命名也很重要。给表名和字段名提供一个合适的前缀可 以显著提高代码的可读性,笔者就喜欢给表名加上前缀“t_”,为字段名加上前缀“f_”。 很多开发者可能会为用户信息表添加一个int型自动增量字段(如f_uid)作为主键,但笔者认为这样做是弊大于利、得不偿失的。一来造成空间的浪费,二 来时间效率上也有所降低。因为在实际开发过程中用户名是使用得最为频繁的查询条件,而众所周知在主键上进行的查询,其速度是最快的;使用自动增量字段为主 键的话,在用户名作为条件的查询上则要先根据用户名查找到f_uid,再根据f_uid去查找所要的信息。无疑,这是一个吃力不讨好的选择。

另外,很多熟悉其他类型数据库的开发者转而使用MySQL时仍喜欢使用Varchar类型的字段。其实如果空间不是非常紧张的话,在MySQL中一 般情况下Char类型是更好的选择。一是Char型字段时间效率高,二是两者长度范围都在255个字符以内,空间上损失不会太大,再者在取出Char型字 段数据时,数据库会自动丢弃多余的空格,因此使用上两者一样方便。 2.2 为注册建立HTML表单

能够用于网页设计的工具有很多,从简单的Windows自带的记事本、写字板到号称网页三剑客之一的Macromedia公司出品的 Dreamweaver都可以使用,这完全取决于开发人员的爱好。不过如果读者正在使用所见即所得的网页设计工具,而又有志成为一名专业的网络编程人员的 话,笔者还是建议读者放弃这些工具,因为这些工具有一个统一的毛病就是把HTML代码排列得乱七八糟,极大地降低了代码的可读性;另外也会使开发人员对工 具产生依赖性而不去记基本的HTML标签的使用。其实,HTML是极其简单的一门语言,标签数也不多,用心的话很快就能掌握。笔者一向比较喜欢 UltraEdit,有兴趣的读者可以试用。 注册页面的代码如下,输入这些内容并将其保存为register.php。

Registering form

姓名:

密码:
重复密码:
Email:

注意以上这段代码中以粗体标出的部分,其中―charset=gb2312‖告诉浏览器本页使用gb2312编码(即简体中文)来显示文本内容,而使用

标签括起来的这一部分就是HTML表单的内容。标签的name属性用以指出表单的名称,以便客户端编程时引用表单内容;method属性指出表单内的数据 将以何种方式提交到服务器端,常用的提交方式有两种,一种是get方式,另一种就是本例中使用的post方式,默认的是get方式,这两种方式的区别后面 会给出详细讲述;action属性指出表单内的数据将提交给谁来处理,本例中的action=\即指出表单内的数据将提交给register.php文件,也就是说表单所在的文件本身将处理这些数据。 用户注册界面如图2-1所示。 列 名 f_username f_password f_name f_email f_lasttime f_loginip 数 据 类 型 长 度 允 许 空 char char char char datetime char 50 50 50 50 4 8 19 否 否 否 否 否 是 是 默 认 值 无 无 无 无 0 字 段 说 明 用户名,主键 用户密码 用户姓名 用户E-mail地址 登录次数 最后登录时间 最后登录IP f_logintimes int 在网页设计中,标签往往不像其字面意思那样用来制作一张表格,而是作为定位的工具,这时就要将其border属性设为0,也就是让表格不显示边框。 标签的align属性也很有用,其作用是指明排列方式,有3个值可取:left,center和right,它们的意思很显然,勿庸赘述。另外,标签也具 有这个属性,意义一样,而且更为常用。 2.3 处理注册数据

本节将详细介绍PHP如何获取用户填写的数据信息,以及PHP如何连接数据库并将这些数据信息保存到数据库中。

2.3.1 获取用户填写的信息

PHP有几个预定义的自动全局变量,这些变量各有用途,其中可以用来获取客户端提交的数据的变量有$_REQUEST,$_GET和$_POST。$ _GET和$_POST分别用以获取客户端以get方式和以post方式提交的数据;而不管以什么方式提交上来的数据,$_REQUEST都可以取到。

PHP中的全局变量在使用之前必须以global关键字进行声明,很多开发人员在使用全局变量时经常会因为忘了将其声明为global而出错。然而PHP的自动全局变量却是个例外,所谓自动,就是说在使用之前无须声明为global,直接就可以使用。

还有一种其他PHP书籍介绍的获取客户端提交的数据的方式,即自动获取。该方式必须打开php.ini中的register_globals选项方能使用,而且更重要的是,在安全性上会给黑客以可乘之机,所以不推荐使用这种方式。

现在开始书写获取用户信息数据的代码,打开上一节建立的register.php文件。在文件的开始输入以下代码(输入时注意文本的对齐,这是优良代码风格的体现):

$username = $_POST['username']; $pwd = $_POST['pwd'];

$repeat_pwd = $_POST['repeat_pwd']; $name = $_POST['name']; $email = $_POST['email']; ?>

接下来,在标签之后,

标签之前输入以下代码:

if (!empty($username) ) { // 有内容才输出 echo \您填写的信息是:

\\n\ echo \用户名: $username

\\n\ echo \密码: $pwd

\\n\ echo \重复密码: $repeat_pwd

\\n\ echo \姓名: $name

\\n\ echo \$email

\\n\} ?>

这就是获取客户端提交的用户信息的全部代码。运行后,在表单中输入各项信息并单击―提交‖按钮,最后页面内容如图2-2所示。

博泰典藏网btdcw.com包含总结汇报、表格模板、农林牧渔、教学研究、求职职场、自然科学、医药卫生、外语学习、高中教育以及php注册及登录模块 等内容。

本文共10页1234>>10