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”文件,并开启开发者模式。配置信息如下:

// 程序入口文件

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”文件,并在其中配置数据库相关信息。

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(

$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(

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

$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(

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

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

session_start();

_SESSION['uname']=uname;

_SESSION['upwd']=upwd;

// 页面跳转

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

}else{ // 如果注册失败

echo "";

}

}

}

(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',

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

}

3.6、视图部分设计(1)创建文件及其文件夹打开“mytp/login/Home/View/”目录,在其下面创建一个名为“Index”的文件夹,在此文件夹下创建三个html文件,名称分别为:index.html,zhuce.html,show.html。

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

用户登录界面

用户登录中心

用户名:

密  码: