2 登录功能
来源:互联网 发布:淘宝如何申请客服号 编辑:程序博客网 时间:2024/06/05 11:22
在《1 PHP读取表数据》中,可以获取到查询的数据。有了这些查询数据,就可以与用户提交的用户名和密码进行验,进而实现登录功能。
1 获取字段值
如果要获取某个字段的值,将print_r(row);改为echo(row[“username”]);,打开http://localhost/wlvsoft/login.php将会看到下图效果
在这里需要注意echo和print_r语句,他们都有在浏览器中显示数据的功能。print_r的参数为数组,而echo的参数为字符串。
2 获取登录框数据
我们已经获取了数据库中admiin表中的数据,现在还需要获取用户输入的用户名和密码,用于和从数据库获取的数据进行比较。
2.1 修改login.html
打开login.html文件,将字符编码以及title修改如下代码:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Simpla Admin</title>
为了保持字符编码的统一,一律将编码设置为utf8编码。title为网页浏览器显示的标题,可依据实际需要修改。
接着找到登陆框的html代码,并修改。如代码清单1所示。
代码清单1:login.html
<div id="login-content"><form action="login.php" method="post" > <!-- 将下面提示信息注释掉,因为我们现在要添加验证功能 <div class="notification information png_bg"> <div> Just click "Sign In". No password needed. </div> </div> --> <p> <label>Username</label> <!-- 给用户名输入框添加标识,用于后台获取输入值 --> <input class="text-input" type="text" id="username" name="username" /> </p> <div class="clear"></div> <p> <label>Password</label> <!-- 给用密码输入框添加标识,用于后台获取输入值 --> <input class="text-input" type="password" id="password" name="password" /> </p> <div class="clear"></div> <p id="remember-password"> <input type="checkbox" /> Remember me </p> <div class="clear"></div> <p> <input class="button" type="submit" value=" Login" name=”login”/> </p> </form> </div>
在代码中,我们给输入框增加了id、name属性,并赋值。虽然后台是通过name获取输入值的,但是建议将id属性也一并写上,并赋予同样的值。同时给提交按钮增加了name属性,并赋值为“login”,这样就可以在后台获取该值,用来判断是否由按钮提交请求。
在form标签中,method=”post” 表示单击submit标签的时候通过POST方式提交。action=”login.PHP” 表示将输入的数据提交给login.php处理。
2.2 修改login.php
下面修改login.php,测试从登陆界面获取的数据。
代码清单2:login.php
<?php //设置编码格式 header("content-type:text/html; charset=utf-8"); if(isset($_POST[“login”])){//单击提交按钮,提交请求 echo("username = " . $_POST["username"]); echo("<br />"); echo("password = " . $_POST["password"]);}?>
当我们在登陆界面输入用户名和密码之后,单击Login按钮。浏览器会将输入的数据(用户名、密码)提交到login.php。login.php负责将获取的用户名和密码打印出来,如下图所示。
3 用户验证
获取用户提交的数据后,就可以和从数据库查询的数据进行验证。如果验证成功,则进入后台首页面,否则提示错误,并重新登录。
3.1 依据用户输入查询admin表
根据用户的输入,在后台获取输入值,并生成sql查询语句。然后通过查询admin表,判断admin表是否存在输入的用户。如果存在则打印用户信息,否则打印错误信息。如代码清单3所示。
代码清单3:login.php
<?php /* *功能:连接数据库 *作者:wlvsoft *时间:20130714 */ //服务器名,由于在本机部署,所以使用localhost或127.0.0.1 $serverName = "localhost"; //安装mysql数据库的时候,默认用户为root $userName = "root"; $password = "";//依据需要修改数据库密码 $dbName = "wlvsoft";//数据库名称 //创建连接 $conn=mysqli_connect($serverName, $userName, $password, $dbName); //判断连接是否成功 if (mysqli_connect_errno($conn)){ echo "连接失败: " . mysqli_connect_error(); }/* *功能:验证用户 *作者:yl *时间:20130716 */ if(isset($_POST["login"])){//单击提交按钮,提交请求 //获取用户提交的数据 $username = $_POST["username"]; //将输入的密码用md5加密(和数据库中录入数据对应) $psw = md5($_POST["password"]); //在表admin中查询是否有匹配的用户 $sql = "select * from admin where username = '{$username}' and password = '{$psw}'"; $result = $conn->query($sql);//查询数据,返回查询的记录集ID $row = $result->fetch_assoc();//获取记录集中的一行数据 if($row){ print_r($row);//如果存在用户,打印获取的数据 } else{ echo("用户名或密码错误!"); } }?>
3.2 页面跳转
验证如果成功,将会跳转到后台首页面。否则将会提示错误,重新跳转到登录界面。在PHP中实现页面跳转有多种方法,这里推荐使用JavaScript方法。
< ?php$url = "http://www.hycollege.net"; //要跳转的网址echo "<script language='javascript' type='text/javascript'>";echo "window.location.href='$url'";//实现跳转功能echo "</script>";?>
下面运用上面的跳转知识,修改login.php代码,如代码清单4所示。
代码清单4:login.php
<?php …… //如果存在用户,跳转到后台首页面 if($row){ $url = "http://localhost/wlvsoft/index.html"; echo "<script language='javascript' type='text/javascript'>"; echo "alert('登陆中...');"; echo "window.location.href='{$url}'"; echo "</script>"; } else{ $url = "http://localhost/wlvsoft/login.html"; echo "<script language='javascript' type='text/javascript'>"; echo "alert('用户名或密码错误!');"; echo "window.location.href='{$url}'"; echo "</script>"; }?>
- 2 登录功能
- 登录日志管理功能--2
- 登录功能
- 登录功能
- 登录功能
- DiscuzX3.2禁止登录及注册功能
- 限制登录功能,让人爱让人恨
- 实现登录过滤器功能
- ajax 用户 登录 功能
- session实现登录功能
- EJB实现登录功能
- 退出登录功能
- Qt 实现登录功能
- 登录功能小实验
- strut2登录过滤功能
- phonegap登录功能
- SpringMVC自动登录功能
- cookie登录功能实现
- boot
- Unsupported major.minor version 52.0
- jpa级联操作详解1(cascade)
- 对不起老板,你要的执行力我给不了【转载】
- IDA Bad Type修正
- 2 登录功能
- 苹果审核ipv6-only网络
- Spring配置
- Android Fragment 真正的完全解析(上)
- Javascript中的对象和原型(二)
- 10——PHP中的两种数组【索引数组】与【关联数组】
- linux 下 修改/etc/fstab文件后进不了系统解决办法
- java教程第二天--循环
- 计算两个时间的时间差 就是 计算执行一段程序使用的时间