PHP实现简单的注册登录功能

使用PHP连接后台数据库实现注册登录功能

首先需要链接数据库,为了减少代码量,所以在此我就使用一个单独的php文件连接数据库。

sql.php

<meta charset="UTF-8">
<!--连接数据库,后面需要链接数据库的时候直接引用就行-->
<?php
/*tourism数据库名*/
/*admin管理员表
字段:id(自增,主键)  name:登录名   password:登录密码*/
/*写法与mysql_connect类似,只是在这里直接连接了数据库,少了mysql_select_db() */

$conn = mysqli_connect('localhost','root','','tourism');
if (!$conn){    die("数据库选择失败!");  }
$conn->query("set names utf8");

/*测试是否能输出数据表中的数据*/
/*$select = "select * from admin";
$query = $conn->query($select);
$row = mysqli_fetch_assoc($query);
print_r($row);*/
/*测试成功,能正常输出,则把上面的测试代码注释,准备写登录代码*/
?>
<!--在这里也可以将需要引入的css、js等写在这里-->
<meta charset="UTF-8">
<script type="text/javascript" rel="stylesheet" src="js/jquery-3.3.1.min.js"></script>

在这里将连接数据库写好后,在后面需要用到该连接方式的时候直接导入即可。

数据库连接测试结束后,就可以直接写注册登录功能,注册功能代码如下:

zhuce.php

<!--注册页面,简易化的功能,只需要输入用户名和密码即可,但需要判断用户名是否已经存在-->
<meta charset="UTF-8">
<?php

/*需要连接数据库,将代码连接进来*/
include ('sql.php');
?>
<style>
    *{
        padding: 0;
        margin: 0;
        list-style: none;
        text-decoration: none;
    }
</style>

<form method="post">
    <h1>注册页面</h1>
    <ul>
        <li><input type="text"  name="name" placeholder="输入登录名"></li>
        <li><input type="password" name="password1" placeholder="输入密码"></li>
        <li><input type="password" name="password" placeholder="确认密码"></li>
        <li><input type="submit" value="注册"> <input type="button" value="返回登录" id="dl"></li>
    </ul>
</form>

<?php
if ($_POST){
    $name = $_POST['name'];
    $password1 = $_POST['password1'];
    $password = $_POST['password'];
    if ($password1 == $password){
        /*输入没有逻辑问题,开始判断用户名是否已经存在于数据库*/
        $select = "select * from admin where name = '$name'";
        $query = $conn->query($select);
        $row = mysqli_fetch_assoc($query);
        /*如果存在,则说明数据库中有重名的*/
        if ($row){
            echo "<script>alert('用户名已存在,请重新输入!')</script>";
        }else{
            $insert = "insert into admin(name,password) value('$name','$password')";
            $query1 = $conn->query($insert);
            /*将这语句执行后,就已经能够将数据存入数据库中,所以需要弹到登录页面进行登录*/
            echo "<script>alert('注册成功,前往登录!');
window.location.href='denglu.php';
</script>";
        }
    }else{
        echo "<script>alert('两次密码不一致,请重新输入!')</script>";
    }
}
?>
<!--点击返回登录后,需要跳转到登录页面,还是使用js来进行-->
<script>
    $('#dl').click(function () {
        window.location.href="denglu.php";
    });
</script>

至此,登录注册页面基本完成,但是在其中有一个小小的漏洞,在注册的时候什么都不输入,直接点击注册,是能够注册成功的,因为每一个框中的值都是空的,符合设计的条件可以在判断密码是否一致的时候加入:&& $name!=null && $password!=null使用户名和密码不能为空,但是输入相同位数的空格,也可以注册成功,需要在input框中使用正则表达式进行控制。

登录功能的实现:

denglu.php

<meta charset="UTF-8">
<?php
/*因为需要链接数据库,所以先引入链接数据库的代码*/
include ('sql.php');
?>
<style>
    *{
        padding: 0;
        margin: 0;
        list-style: none;
        text-decoration: none;
    }
</style>

<form method="post">
    <h1>登录页面</h1>
    <ul>
        <li><input type="text" name="name" placeholder="输入登录名"></li>
        <li><input type="password" name="password" placeholder="输入密码"></li>
        <li><input type="submit" value="登录"> <input type="button" value="去注册" id="zc"></li>
    </ul>
</form>

<?php
/*判断是否上面的表单是否有输入,有输入时才执行以下部分,不然打开页面的时候会报错*/
if ($_POST){
    /*获取表单传输过来的值*/
    $name = $_POST['name'];
    $password = $_POST['password'];
    /*echo $name;
    echo $password1;
    echo $password;*/

        $select = "select * from admin where name = '$name' and password = '$password'";
        $query = $conn->query($select);
        $row = mysqli_fetch_assoc($query);
        /*判断数据库中是否存在传输过来的信息*/
        if ($row){
            echo "<script>alert('登录成功!');
window.location.href='index.php';
</script>";
        }else{
            echo "<script>alert('用户名或密码错误!')</script>";
        }
}
?>
<!--在点击注册的时候,需要跳转到注册页面,使用js代码来实现-->
<script>
    $('#zc').click(function () {
        window.location.href="zhuce.php";
    });
</script>

至此,简单的PHP连接数据库实现注册、登录功能完成。

附件:可以使用 jquery-3.3.1.min.js在线版,连接方式一致,不过使用在线版的时候必须有网络的支持。
连接方式:<script src="https://cdn.staticfile.org/jquery/3.3.1/jquery.min.js"></script>

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值