php原生开发新闻站之后台登录功能
我们之前的课程给大家介绍了做登录功能之前的所有准备,导入模板,创建数据库,之前的课程都不把这些的准备都已经完成了,那么接下来就是我们要开始做登录功能了!
首先我们要创建一个login.php文件,这个文件可以用来写登录页面的判断和验证,也可以把登录的html部分和登录验证判断的php文件写在一起,因为我们都知道php文件里面可以写html代码!但是我们还是推荐分开来写!
创建好login.php文件以后,首先要做的就是连接数据库,因为后面的验证都是需要和数据做对比!
在这里要声明一下,如果你的登录页面有验证码的话,那么在每个页面的一开始必须开启 session_start();不然验证码验证不了,我们这里有验证码所以我开启了session_start();
代码如下:
<?php session_start(); // 连接mysql数据库 $link = mysqli_connect('localhost', 'root', 'root'); if (!$link) { echo "connect mysql error!"; exit(); } // 选中数据库 news为数据库的名字 $db_selected = mysqli_select_db($link, 'news'); if (!$db_selected) { echo "<br>selected db error!"; exit(); } // 设置mysql字符集 为 utf8 $link->query("set names utf8");
接下来就是要获取表单传过来的数据了,因为我们要把用户输入在表单的用户名以及密码获取到,然后在进行跟数据库做对比,看看是否完全一致!
<?php $username = $_POST['username'];//获取用户名 $password = $_POST['password'];//获取密码 $code = $_POST['code'];
至于是post传输数据还是get传输数据,这个要根据你form表单里面的method的属性了。我们这里是post!
数据已经获取到了 ,那么接着就是需要验证了,看看用户输入的数据是否跟数据库的数据完全一致,这样才能判断能不能让用户登录 使用SQL语句进行查询,代码如下:
<?php if(!empty($_POST)){ // 查询数据库中是否存在用户信息 $sql = "select * from user where username = '{$username}' and password = '{$password}'"; $result = mysqli_query($link,$sql); $user = mysqli_fetch_array($result,MYSQL_ASSOC);}
查询到数据以后,进行对两组数据进行对比:
if($user){ header("Location: index.php"); }else{ echo "<script>alert('账户或者密码错误!重新填写')</script>"; }
到这里我们都是验证了用户名以及密码,那么我们这样有验证码,所以我们还要对验证码进行验证,这里我用了一验证码类
这里也分享给大家!
然后我们要对验证码进行验证,代码如下:
if(($_SESSION['authcode']) !== ($code)){ //验证码作对比,验证码页面跟输入的验证码对比 echo "<script>alert('验证码错误!重新填写')</script>";
说明一下:这里的$_SESSION['authcode'] 是code验证码类中的保存的验证码,我们要通过用户输入与保存的验证,结果一致就通过!
OK! 到这里我们的登录功能就完成了!