ThinkPHP连接数据库实现简单登录功能

       使用ThinkPHP之前需要一个运行PHP程序的环境,这里使用的是PHPStudy集成软件来实现。运行程序前需要把PHPStudy中的Apache和mysql打开,如下图红框显示所示:

 如果phpStudy中的mysql启动不了,原因是本地的数据库和phpStudy自带的数据库相互冲突,所以解决办法如下:   先尝试改下端口,将3306端口改成未被使用过的 如下图所示:

        先下载ThinkPHP,下载官网: https://www.thinkphp.cn/down/framework.html

下图里面的thinkphp 随便下一个

 下载完成之后,将文件放在phpStudy中的路径下,如下图放置:

 

 thinkPHP目录结构

  (见thinkphp手册--基础--目录结构)

  万事俱备,首先先调试下thinkphp能不能运行成功,访问地址别错了,地址格式如下:

localhost+Apache端口号+thinkphp根目录+public(上图的目录结构中也说了,public是web部署目录,必须要先经过public才能够访问)+入口(index.php 这里的入口thinkPHP实际上是直接链接到application=>index=>controller下面的index.php,必须访问index.php这个文件入口,才能继续下面操作。)

我的访问地址:http://localhost:80/thinkphp_5.0_full/public/index.php 显示为如下页面就证明成功了


 创建三层模型

首先得了解thinkPHP中的MVC三层架构:

 thinkPHP默认只有一个controller的目录,所以model和view两层需要自己创建。这个使用的是cmd命令自动生成php文件代码。创建命令如下图所示:

首先得将位置定位到thinkPHP的根目录下,我的根目录位置如下所示:

在此之前,得先将php的环境变量添加到系统变量中,不然在电脑中敲命令会无法执行。如下:

 

 

接下来使用cmd创建命令创建三层:

创建步骤下:
1.创建controller层中的login.php命令:
php think make:controller index/Login
2.创建model层中的User命令:
php think make:model index/User
3.手动创建视图 view文件夹
4.其次在view文件夹中创建login文件夹
5.最后在login文件夹中创建login.html

 创建三层模型结构成功如下示例:

到这里文件创建就结束了。

编写登录页面

打开controller层下的login.php,可以看到使用cmd命令创建的文件会自动生成结构。

先测试页面能不能正常运行,首先在login.php中随便一个方法输入测试信息,如下图所示,随便选一个方法进行测试。

这里的访问路径别错了,是之前说过的入口(index.php)+index(这个文件夹下的三层)+controller层中的Login.php页面+具体的方法。测试地址如下

 

测试访问页面没有问题,具体步骤如下:

1、更改application文件夹下的database.php数据库信息

2、编写view中的login.html(主页面显示,controller层先通过方法链接到view中的html中)

3、在model层User.php代码中设置完整的数据库表名称。

更改application文件夹下的database.php数据库信息

本地数据库结构:

 编写view中的login.html(主页面显示,controller层先通过方法链接到view中的html中)

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>登录</title>
</head>
<body>

    	 <form method="POST" action="{:url('index/login/yanzheng')}" >
    		<label>用户名:</label>
    		<input type="text" name="user" placeholder="请输入用户名"> <br>
    		<label>密码:</label>
    		<input type="password" name="pwd" placeholder="请输入密码"><br>
    		<button type="sumbit">登录</button>

    </form>
</body>
</html>

 在model层User.php代码中设置完整的数据库表名称

login.html页面如下:

页面简陋了点哈~~

登录提交数据库验证的实现:

<?php

namespace app\index\controller;

use think\Controller;
use think\Request;
use app\index\model\User as UserGG;


class Login extends Controller
{

       public function login()
    {
        
        $htmls=$this->fetch(); //返回login触发器的默认html文件,即login.html
        return $htmls;
    }
     public function yanzheng()
    {    
        $pancheng=input('post.');
        $username=$pancheng['user'];  //获取login.html中的表单提交上来的name=user的值
        $password=$pancheng['pwd'];   //获取login.html中的表单提交上来的name=pwd的值
     
        echo "登录名为:{$username} 密码:{$password}".'<br>';
        $selectOne=array('username'=>$username,'password'=>$password);    //把上面获取的值放入到un数组中

        $result=\app\index\model\User::get($selectOne);    
        if (is_null($result))  //如果un数组为空的时候,即查询失败,没有这个值,即账号密码错误
        {
        
            return '登录失败!';
        }
        else                  //反之,即查询成功,账号密码正确
        {
           return '登录成功!';
        }
    }

    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {

        // return view('login');

    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        
        echo "大大";
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
         echo "小小";
    }




    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }



    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        //
    }
}

验证登录是否成功:

为了快速测试没有美化页面,这里我数据库中user表的数据有:

成功页面如下:

 

 

失败页面如下:

 至此登录功能就全部实现了,只是为了测试,页面没有进行美化,请多多指教。

 

 

 

 

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灵翼大白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值