记录学习与后端知识并分享学习代码过程(会飞的鱼Blog)

ThinkPHP实现用户注册、登录模块

会飞的鱼 1 855 2020年10月10日

ThinkPHP实现用户注册、登录模块

一、开发环境

1、Windows+Apache+MySQL+PHP的环境。

2、文本编辑器:Sublime。

二、主要技术

PHP+ThinkPHP3.2.3+HTML+CSS

三、效果图与具体步骤


实现效果图,如图1、2、3所示。

图1 效果图(登录)

 

 
 

 

图2 效果图(注册)

 

 

图3 效果图(用户信息)

3.1、文件目录设置

(1)创建项目文件夹

 在网站根目录(www目录)下创建一个名为“mytp”的文件夹。

 在“mytp”文件夹目录下创建一个名为“login”的文件夹,用来放置项目文件。

(2)引入ThinkPHP核心文件

下载ThinkPHP3.2.3文件包(网址:http://www.thinkphp.cn/),并将其核心包放入“mytp”文件夹中。

3.2、创建项目入口文件

(1)创建html文件

在“login”文件夹下创建一个名为“index.html”的文件作为项目的入口文件。

(2)文件配置

在“index.html”文件中引入“Think.php”文件,并开启开发者模式。配置信息如下:

<?php

// 程序入口文件

define('APP_DEBUG',true);// 开发调试模式

require'../ThinkPHP/ThinkPHP.php';

?>

(2)运行文件

在浏览器地址栏内输入“localhost:8080/mytp/login/”,回车,然后可以看到ThinkPHP的欢迎界面(如图4所示),并且可以看到在“login”目录下会自动生成项目文件夹(如图5所示)。

 

图4 验证结果图

 

 

图5 验证结果图

 

3.3、配置连接数据库信息

(1)配置代码

打开目录“mytp/login/Home/Conf”下的“config.php”文件,并在其中配置数据库相关信息。

<?php

returnarray(

         //'配置项'=>'配置值'

         'APP_DEBUG'=>true,

         'DB_TYPE'=>'mysql',

         'DB_HOST'=>'localhost',

         'DB_NAME'=>'thinkphp',

         'DB_USER'=>'root',

         'DB_PWD'=>'',

         'DB_PORT'=>'3307',

         'DB_PREFIX'=>'think_',

         'SHOW_PAGE_TRACE'=>true  // 显示页面的trace信息

);

(2)配置说明

'APP_DEBUG'   开发者调试模式 

  'DB_TYPE'    数据库类型

  'DB_HOST'    数据库主机名

  'DB_NAME'    所要连接的数据库名

  'DB_USER'    数据库用户名

  'DB_PWD'     数据库密码

  'DB_PORT'    数据库端口号

  'DB_PREFIX'  所要连接的数据库表前缀

  'SHOW_PAGE_TRACE'  是否显示页面的trace信息

3.4、数据库及数据表的创建

(1)创建数据库

创建一个名为“thinkphp”的数据库。

(2)创建数据表

在数据库“thinkphp”中创建名为“think_user”的数据表,表结构如图6所示。

 

图6 数据表结构

 

(3)添加数据

在数据表“think_user”中添加几条数据用于以后的测试。 

3.5、控制器功能代码实现

(1)打开控制器文件

打开“mytp/login/Home/Controller/”目录下的“IndexController.class.php”文件。

(2)登录界面显示

把“index”下的代码清空,写入下列代码用于显示登录页面。

publicfunction index(){

        $this->display(); 

    }

(3)登录功能实现

主要代码如下:

// 登录功能

publicfunction denglu(){

    $uname=$_POST['uname']; // 获取用户名

    $upwd=$_POST['upwd'];   // 获取密码

    if(isset($_POST['sub'])){

    if(!empty($uname)&&!empty($upwd)){//如果用户名和密码非空

          $user=M();// 实例化模型

         $select=$user->query("select *from think_user wherename='$uname' and pwd='$upwd'"); // 执行查询

          if($select){// 如果存在该用户

          //将用户名和密码保存在session中

         session_start();

         $_SESSION['uname']=$uname;

         $_SESSION['upwd']=$upwd;

          //跳转到用户中心

         $this->redirect('Index/show','',5,'登录成功!前往用户中心!...页面跳转中...');

          }else{  // 如果用户不存在

                                                              $this->redirect('Index/index','',5,'用户名或密码错误!...页面跳转中...');

          }

 

   }else{ // 如果用户名或密码未填写

                                    $this->redirect('Index/index','',5,'请填写用户名或密码!...页面跳转中...');

  }

 

}

 // 如果点击注册按钮,跳转到注册页面

if(isset($_POST['zc'])){

    $this->redirect('Index/zhuce','',3,'前往用户注册中心!...页面跳转中...');

  }

 

}

(4)注册功能实现

主要代码如下:

// 注册功能

 function zhuce(){

          $this->display();

          if(isset($_POST['sub'])){

                   $uname=$_POST['uname'];    // 用户名

                 $upwd=$_POST['upwd'];      // 密码

                 $usex=$_POST['usex']; // 性别              

                 $utel=$_POST['utel'];       // 联系方式

                 $uqq=$_POST['uqq'];        // qq

                 $uaddress=$_POST['uaddress'];  // 联系地址

 

if(!empty($uname)&&!empty($upwd)){

         // 判断该用户是否已经注册

$user1=M();

         $select=$user1->query("select *from think_user where name='$uname' and pwd='$upwd'");

          if($select){// 如果存在该用户

         $this->redirect('Index/index','',3,'该用户已经注册,请直接登录!...页面跳转中...');

         }

         // 注册

         $data=array(

         'id'=>NULL,

         'name'=>$uname,

         'pwd'=>$upwd,

         'sex'=>$usex,

         'tel'=>$utel,

         'qq'=>$uqq,

         'address'=>$uaddress,

         );

        

         $insert=M('User')->add($data);

         if($insert){   // 如果注册成功

         // 将用户名密码保存在session中

         session_start();

         $_SESSION['uname']=$uname;

         $_SESSION['upwd']=$upwd;

         // 页面跳转

         $this->redirect('Index/show','',2,'注册成功!前往用户中心!...页面跳转中...');

}else{   // 如果注册失败

         echo "<script>alert('注册失败!');</script>";

      }

}

}

(5)用户信息展示功能实现

主要代码如下:

// 用户信息展示

   public function show(){

          //获取当前用户信息

          session_start();

          $uname=$_SESSION['uname'];

          $upwd=$_SESSION['upwd'];

          //执行查询用户信息

          $user=M();

          $select=$user->query("select* from think_user where name='$uname' and pwd='$upwd'");

 

          $this->assign('info',$select);              // 传递变量

          $this->display();// 显示用户信息展示页面

   }

3.6、视图部分设计

(1)创建文件及其文件夹

打开“mytp/login/Home/View/”目录,在其下面创建一个名为“Index”的文件夹,在此文件夹下创建三个html文件,名称分别为:index.html,zhuce.html,show.html。

(2)登录界面制作

打开“index.html”文件,在其中设计登录界面,代码如下:

<!DOCTYPEhtml>

<!-- 用户登录界面 -->

<html>

<head>

<metacharset="utf-8">

<title>用户登录界面</title>

<linkrel="stylesheet" type="text/css"href="/mytp/login/Home/Public/css/style.css">

</head>

<body>

<divid="main">

<h2align="center">用户登录中心</h2>

<formaction="/mytp/login/index.php/Home/Index/denglu"method="post">

<tableid="tbdl">

<tr>

<td>用户名:</td>

<td><inputtype="text" name="uname" size="20"></td>

</tr>

<tr>

           <td>密&nbsp;&nbsp;码:</td>

           <td><inputtype="password" name="upwd"></td>

</tr>

<tr>

           <tdcolspan="2"><center>

           <input type="submit"name="sub" value="登录">

           <input type="reset"name="ret" value="重置">

           <input type="submit"name="zc" value="注册  "></center>

           </td>

</tr>

</table>

</form>

</div>

</body>

</html>

  

(3)注册界面制作

打开“zhuce.html”文件,在其中设计注册界面,代码如下:

<!DOCTYPEhtml>

<!-- 用户注册界面 -->

<html>

<head>

<metacharset="utf-8">

<title>用户注册界面</title>

<linkrel="stylesheet" type="text/css"href="/mytp/login/Home/Public/css/style.css">

</head>

<body>

<divid="mainzhuce">

<h2align="center">用户注册中心</h2>

<formaction="/mytp/login/index.php/Home/Index/zhuce"method="post">

<tableid="tbdl">

<tr>

<td>用户名:</td>

<td><inputtype="text" name="uname" size="20"></td>

</tr>

<tr>

<td>性&nbsp;&nbsp;别:</td>

<td>

<input type="radio"name="usex" value="1">男&nbsp;

<input type="radio"name="usex" value="0">女

</td>

</tr>

<tr>

       <td>密&nbsp;&nbsp;码:</td>

<td><inputtype="password" name="upwd"></td>

</tr>

<tr>

<td>联系电话:</td>

<td><inputtype="text" name="utel"></td>

</tr>

<tr>

<td>q&nbsp;&nbsp;q:</td>

<td><inputtype="text" name="uqq"></td>

</tr>

<tr>

<td>联系地址:</td>

<td><inputtype="text" name="uaddress"></td>

</tr>

                 

<tr>

<tdcolspan="2"><center>

           <input type="submit"name="sub" value="注册">

           <input type="reset"name="ret" value="重置">

           </center>

</td>

</tr>

</table>

</form>

</div>

</body>

</html>

  

(4)用户信息展示界面制作

打开“show.html”文件,在其中制作用户信息展示界面,代码如下:

<!DOCTYPEhtml>

<!-- 用户信息界面 -->

<html>

<head>

<metacharset="utf-8">

<title>用户信息界面</title>

<linkrel="stylesheet" type="text/css"href="/mytp/login/Home/Public/css/style.css">

</head>

<body>

<divid="mainshow">

<h2align="center">用户信息中心</h2>

<tableid="tbinfo">

<tr>

<td>ID:</td>

<td>{$info[0]['id']}</td>

</tr>

<tr>

<td>姓名:</td>

         <td>{$info[0]['name']}</td>

</tr>

<tr>

<td>性别:</td>

<td>

<!-- <switchname="info[0]['sex']">

           <case value="1">男</case>

           <case value="0">女</case>

           <default />性别不明

           </switch> -->

           <ifcondition="$info[0]['sex'] eq 1 "> 男<elseif condition="$info[0]['sex'] eq0"/>女<else/> value3</if>

</td>

           </tr>

           <tr>

              <td>密码:</td>

              <td>{$info[0]['pwd']}</td>

           </tr>

           <tr>

              <td>联系电话:</td>

              <td>{$info[0]['tel']}</td>

           </tr>

           <tr>

              <td>qq:</td>

              <td>{$info[0]['qq']}</td>

           </tr>

           <tr>

              <td>联系地址:</td>

              <td>{$info[0]['address']}</td>

           </tr>

</table>

</div>

</body>

</html>

 

 

四、网页测试

开启Apache服务器后,打开浏览器,在浏览器地址栏中输入文件地址,例如:

“localhost:8080/mytp/login/”可以看到如图7所示的界面。

 

图7 项目结果图

利用数据表中已经存在的用户,进行登录,输入用户名、密码之后可以看到如图8所示的信息。 

 

图8 验证结果图

返回主页面,然后点击“注册”按钮,可以看到页面跳转到注册页面,如图9所示。

 

图9 验证结果图

然后我们输入下列信息(如图10所示),进行用户注册。 

 

图10验证结果图

点击页面“注册”按钮之后,可以看到页面跳转到用户信息页面,如图11所示。

 

图11验证结果图

本文由 @会飞的鱼 于 2020-10-10 发布在 会飞的鱼Blog,如无特别说明,本博文章均为原创,转载请保留出处。

网友评论当前共有1条评论

会飞的鱼 V

一条会飞的鱼!

745 文章
7274 评论
1070 万 阅读
8年 博龄
最新文章
最新评论
嘻嘻嘻
1个月前 (2024-03-19)

ThinkPHP实现用户注册、登录模块

标签

会飞的鱼 在线咨询

在线时间:9:00-22:00
周六、周日:14:00-22:00