ThinkPHP实现用户注册、登录模块
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>密 码:</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>性 别:</td>
<td>
<input type="radio"name="usex" value="1">男
<input type="radio"name="usex" value="0">女
</td>
</tr>
<tr>
<td>密 码:</td>
<td><inputtype="password" name="upwd"></td>
</tr>
<tr>
<td>联系电话:</td>
<td><inputtype="text" name="utel"></td>
</tr>
<tr>
<td>q 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验证结果图
- 上一篇: 用link标签实现网页标题前添加一个小图标
- 下一篇: PHP统计当前在线人数
