为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

PHP用户登录验证模块代码

2017-09-18 11页 doc 41KB 39阅读

用户头像

is_153723

暂无简介

举报
PHP用户登录验证模块代码PHP用户登录验证模块代码 www.7kk.com 7 实现用户登录 >>>1 创建登录表单 登录表单的HTML代码如下: User Login 用户名: 密码: ...
PHP用户登录验证模块代码
PHP用户登录验证模块代码 www.7kk.com 7 实现用户登录 >>>1 创建登录表单 登录表单的HTML代码如下: User Login
用户名: www.7kk.com 将以上代码保存为login.php文件并在浏览器中运行,显示页面中的登录表单如图2-16所示。 显示页面的登录表单 >>>2 验证登录名和密码 用户在登录表单中输入登录信息之后,数据被提交回本页面login.php进行处理,下面在login.php的头部添加验证用户名和密码是否正确的代码。login.php代码更改如下: query($sql); www.7kk.com // $rs->num_rows判断上面的执行结果是否含有,有记录说明登录成功 if ($rs && $rs->num_rows > 0) { // 在实际应用中可以使用前面提到的重定向功能转到主页 $errmsg = "登录成功!"; } else { $errmsg = "用户名或密码不正确,登录失败!"; } // 关闭数据库连接 $db->close(); } } } ?> User Login www.7kk.com
密码:
  
用户名: 以粗体显示部分是新添的代码,大部分语句都已有详细注释。值得注意的是在HTML表单中添加的代码,其中在的第一行的单元格中加入PHP代码用以输 出服务 器端处理过程可能发生的错误或提示,另外在用户名的输入框标记的value属性中添加了PHP代码用以输出上次提交的用户名,以便因为输入密码错误而不能 登录的用户在重试的时候只需要输入密码。 再次运行login.php并在表单中输入数据尝试登录,登录成功与失败时的页面分别如图2-17和2-18所示。 登录成功页面 登录失败页面 >>>3 更新用户登录信息 用户信息表t_user中,f_logintimes字段用来记录用户的登录次数,f_lasttime字段用来记录用户最后一次登录的时 间,f_login字段用来记录用户最后一次登录用的IP,数据库中记录这些信息主要是为管理提供统计用户登录次数和用户地域分布的方便。这些数据在用户 每次登录后都要更新,下面来添加更新这些数据的代码。 打开login.php文件,将其头部的PHP代码更改如下: num_rows > 0) { // 在实际应用中可以使用前面提到的重定向功能转到主页 www.7kk.com $errmsg = "登录成功!"; // 更新用户登录信息 $ip = $_SERVER['REMOTE_ADDR']; // 获取客户端的IP $sql = "UPDATE t_user SET f_logintimes = f_logintimes + 1,"; $sql .= "f_lasttime=now(), f_loginip='$ip' "; $sql .= " WHERE f_username='$username'"; $db->query($sql); } else { $errmsg = "用户名或密码不正确,登录失败!"; } ...... ?> 以上粗体部分为新添的代码,代码中首先从自动全局变量$_SERVER中获得客户端的IP地址,然后构造SQL语句并执行该语句以更新用户登录信 息。值得 注意的是该SQL语句中对f_lasttime的赋值是通过调用MySQL的内部函数now()来实现的,MySQL的now()函数返回的是服务器上的 当前时间。 >>>4 用Session保存用户信息 HTTP是无状态的。它完成的事情只是简单地发送请求到服务器,以及从服务器获取数据;除此之外一无所知,即使两次请求同一个PHP文件,它也不会认为两次请求之间有任何联系。 由于HTTP协议的无状态,这就使得无法在两个不同的请求之间共享信息,如无法记录“当前访问者”的信息。虽然在登录过程已经验证了用户的用户名与 密码是 正确的,但是当用户跳转到其他页面时,从登录页面获得的用户信息全部丢失,这是用户不希望发生的。同时,要求用户进入每一个页面时都要输入用户名与密码进 行验证又是不现实的,这就要求可以在不同页面之间共享信息。 一般来说,对于PHP以及其他的Web编程语言,可以使用Cookie或者是Session来解决这个问题。 Cookie是保存在客户端的一个小文件,可以将一些需要在页面间共享的资料存储在这个文件中。但Cookie有3个缺点:一是大小不可以超过 4KB(不 同的浏览器可能限制不同),二是用户可以在浏览器设置中禁用Cookie,三是Cookie是在客户端记录资料安全性较差。 Session一般是通过Cookie来实现的,如果用户禁用了Cookie,Session也同样失效。不同于Cookie的是,Session 只是把 一个信息的标识通过Cookie放在客户端而实际的信息却存放在服务器上,这样安全性能上有较大的提高。现在也有另外一种不通过Cookie而使用 Session的方法,即URL重写技术。这种方法是将Session的标识作为URL的参数与服务进行交互,其好处是不受客户端对Cookie禁用的限 制,缺点是使用起来较为麻烦。 在PHP中使用Session非常简单。PHP提供了一个自动全局变量$_SESSION用于处理Session。但是需要注意的是,如果在PHP 的配置 文件中没有设置自动启动Session的话,在使用Session之前一定要调用session_start()函数启动Session。 再次打开login.php,添加以下以粗体显示的代码,以记录用户信息。 num_rows > 0) { // 使用session保存当前用户 session_start(); $_SESSION['uid'] = $username; // 在实际应用中可以使用前面提到的重定向功能转到主页 $errmsg = "登录成功!"; // 更新用户登录信息 $ip = $_SERVER['REMOTE_ADDR']; // 获取客户端的IP $sql = "UPDATE t_user SET f_logintimes = f_logintimes + 1,"; $sql .= "f_lasttime=now(), f_loginip='$ip' "; $sql .= " WHERE f_username='$username'"; $db->query($sql); } ...... ?> 不要滥用Session,Session最大的作用是在页面之间维持状态。许多初学者在掌握Session技术后,很容易将Session作为存储 数据的 法宝,在Session里放置很多数据。由于这些数据直到Session过期才会被释放,因此会给服务器带来很大的负担。 2.7.5 判断用户是否已登录 既然上一小节已经完成了将用户名保存到Session中的工作,判断用户是否已经登录就很简单,代码如下: 通过判断自动全局变$_SESSION中的uid是否为空,就可以判断用户是否已经登录。如果用户没有登录,就提示其无法访问当前页面,并终止程序的运行(或者使用一条重定向语句将页面导向登录页)。
/
本文档为【PHP用户登录验证模块代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索
    密码: