thinkphp 用户注册功能
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
<?php class UserAction extends Action{ public function add(){ $user = D( "user" ); $user ->create(); $result = $user ->add(); if ( $result ){ $this ->assign( "jumpUrl" , "__APP__/index/index" ); $this ->success( '注册成功!' ); } else { //echo $user->getError(); $this ->assign( "jumpUrl" , "__APP__/user/register" ); $this ->error( $user ->getError()); } } public function register(){ $this ->display(); } public function login(){ $this ->display(); } public function checklogin(){ $username = $_POST [ 'username' ]; $passwd = $_POST [ 'passwd' ]; $user = D( "user" ); //$User->where('id=8')->find();这里的where 语句要注意一下,如果是其他字段的话后面一定要有单引号 $userinfo = $user ->where( "username ='$username'" )->find(); if (! empty ( $userinfo )){ if ( $userinfo [ 'passwd' ] == $passwd ){ Cookie::set( 'userid' , $userinfo [ 'id' ],time()+3600*24); Cookie::set( 'username' , $username ,time()+3600*24); Cookie::set( 'lastlogintime' ,time(),time()+3600*24); $this ->assign( "jumpUrl" , "__APP__/index/index" ); $this ->success( '登陆成功!' ); } else { $this ->assign( "jumpUrl" , "__APP__/user/login" ); $this ->error( '密码出错,请重新输入!' ); } } else { $this ->assign( "jumpUrl" , "__APP__/user/login" ); $this ->error( '用户名不存在!' ); } } public function loginout(){ Cookie:: delete ( 'username' ); Cookie:: delete ( 'lastlogintime' ); $this ->assign( "jumpUrl" , "__APP__/index/index" ); $this ->success( '您已经成功退出,欢迎您的下次登录!' ); } } |
IndexAction.class.php页面:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
<?php // 本类由系统自动生成,仅供测试用途 class IndexAction extends Action{ public function insert() { $content = new ContentModel(); $result = $content ->create(); if (! $result ){ $this ->assign( "jumpUrl" , "__URL__/index" ); $this ->error( $content ->getError()); //如果创建失败,表示验证没有通过,输出错误信息 } else { //验证通过,进行其他操作 $content ->userid=Cookie::get( 'userid' ); $content ->add(); $this ->assign( "jumpUrl" , "__URL__/index" ); $this ->success( '添加成功!' ); } } // 数据查询操作 public function index() { $content = new ContentModel(); $list = $content ->findAll(); //用户的cookie $username = Cookie::get( 'username' ); $lastlogintime = Cookie::get( 'lastlogintime' ); $this ->assign( 'list' , $list ); $this ->assign( 'title' , '我的首页' ); $this ->assign( 'username' , $username ); $this ->assign( 'lastlogintime' , $lastlogintime ); $this ->display(); } // 删除操作 public function delete (){ $content = new ContentModel(); $id = $_GET [ 'id' ]; if ( $content ->where( "id=$id" )-> delete ()){ $this ->assign( "jumpUrl" , "__URL__/index" ); $this ->success( '删除成功!' ); } else { $this ->assign( "jumpUrl" , "__URL__/index" ); $this ->error( '删除失败!' ); } } // 编辑操作 public function edit(){ $content = new ContentModel(); $id = $_GET [ 'id' ]; if ( $id != '' ) { //$data = $content->select($id); $data = $content ->where( "id=$id" )->select(); if (! empty ( $data )){ $this ->assign( 'data' , $data ); } else { echo "数据为空!" ; } } $this ->assign( 'title' , '编辑页面' ); $this ->display(); } // 更新操作 public function update(){ $content = new ContentModel(); //直接使用create(),自动会帮你进行数据的传值 /*$content->create(); $content->save(); // 根据条件保存修改的数据 echo "更新数据成功!";*/ // 使用post 传值过来,进行更新 $id = $_POST [ 'id' ]; if ( $id != '' ) { $data [ 'id' ] = $id ; $data [ 'title' ] = $_POST [ 'title' ]; $data [ 'content' ] = $_POST [ 'content' ]; if ( $content ->save( $data )) // 根据条件保存修改的数据 { $this ->assign( "jumpUrl" , "__URL__/index" ); $this ->success( '更新数据成功!' ); } else { $this ->assign( "jumpUrl" , "__URL__/index" ); $this ->success( '更新数据失败!' ); } } else { echo "保存数据失败!" ; } } } ?> |
ContentModel.class.php页面:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<?php class ContentModel extends Model{ /* * 自动验证 * array(验证字段,验证规则,错误提示,验证条件,附加规则,验证时间) */ protected $_validate = array ( array ( 'title' , 'require' , '标题必须填写!' ), array ( 'content' , 'require' , '内容必须填写!' ), ); /* * 自动填充 * array(填充字段,填充内容,填充条件,附加规则) */ protected $_auto = array ( array ( 'addtime' , 'time' ,1, 'function' ), ); } ?> |
UserModel.class.php页面:
1
2
3
4
5
6
7
|
<?php class UserModel extends Model{ protected $_validate = array ( array ( 'username' , '' , '帐号名称已经存在!' ,0, 'unique' ,1), ); } ?> |
这里需要注意的是,使用自动验证的时候 实例化时要用 $user = D("user") 而不能用 $user = M("user"),用M这种方法会报错,D函数用于实例化Model,M函数用户实例化一个没有模型的文件。
success.html页面:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> < html > < head > < meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8" > < meta http-equiv = "refresh" content = "20; url='{$jumpUrl}'" /> < title >信息提示</ title > </ head > < body > < div id = "man_zone" > < table width = "40%" border = "1" align = "center" cellpadding = "3" cellspacing = "0" class = "table" style = "margin-top:100px;" > < tr > < th align = "center" style = "background:#cef" >信息提示</ th > </ tr > < tr > < td >< p >{$message}< br /> 2秒后返回指定页面!< br /> 如果浏览器无法跳转,< a href = "{$jumpUrl}" rel = "external nofollow" >请点击此处</ a >。</ p ></ td > </ tr > </ table > </ div > </ body > </ html > |
thinkphp 用户注册功能的更多相关文章
- Web---创建Servlet的3种方式、简单的用户注册功能
说明: 创建Servlet的方式,在上篇博客中,已经用了方式1(实现Servlet接口),接下来本节讲的是另外2种方式. 上篇博客地址:http://blog.csdn.net/qq_26525215 ...
- ThinkPHP登录功能的实现方法
登陆功能是PHP程序设计中常见的功能.本文ThinkPHP实例主要完成注册成功后进入首页,并告诉你是登录用户的功能.具体实现步骤如下: 第一步:在config.php文件中加上: 完整实现代码如下: ...
- 9、Django实战第9天:用户注册功能
今天完成的是用户注册功能... 首先把注册页面的前端文件register.html复制到templates目录下 编辑users.views.py,创建一个注册的类 class RegisterVie ...
- .NET MVC 4 实现用户注册功能
初学MVC,踩了不少坑,所以通过实现一个用户注册功能把近段时间学习到的知识梳理一遍,方便以后改进和查阅. 问题清单: l 为什么EF自动生成的表名后自动添加了s? l 如何为数据库初始化一些数据? l ...
- thinkphp杂项功能(主干)
thinkphp杂项功能(主干) 一.总结 1.杂项功能:杂项里面我需要有点印象的是五个:缓存,多语言,图像处理,文件处理,单元测试 二.thinkphp杂项功能(主干) thinkphp扩展杂项功能 ...
- 如何巧妙地在基于 TCP Socket 的应用中实现用户注册功能?
通常,在基于TCP的应用中(比如我开源的GGTalk即时通信系统),当TCP连接建立之后,第一个请求就是登录请求,只有登录成功以后,服务器才会允许客户端进行其它性质的业务请求.但是,注册用户这个功能比 ...
- RandomAccessFile()实现用户注册功能, 新增,查询,更新
package seday03.raf;import java.io.IOException;import java.io.RandomAccessFile;import java.util.Arra ...
- JavaWeb_(Hibernate框架)使用Hibernate开发用户注册功能
使用Hibernate开发用户注册功能: 用户在register.jsp表单成功后,页面跳转到login.html,数据库中会存放用户注册的信息 <%@ page language=" ...
- JavaWeb_(Hibernate框架)使用c3p0与Dbutils开发用户注册功能
使用c3p0与Dbutils开发用户注册功能: 用户在register.jsp表单成功后,页面跳转到login.html,数据库中会存放用户注册的信息 <%@ page language=&qu ...
随机推荐
- kafka相关业务必会操作命令整理
参考:https://kafka.apache.org 服务相关命令 1.启动/停止zk > bin/zookeeper-server-start.sh config/zookeeper.pro ...
- 并发编程之Android中AsyncTask使用详解(四)
更多Android高级架构进阶视频免费学习请点击:[https://space.bilibili.com/474380680] 在Android中我们可以通过Thread+Handler实现多线程通信 ...
- 随时更新web html 项目页面,查看手机等其他移动设备的几种方法?
想一想自己一边写着代码,一边随时看着手机更新页面,对于前端开发者来说是不是爽歪歪: 实现以上效果只需要几个方法: 1) 安装虚拟机 Oracle VM VirtualBox (安装过程省略) 2) 安 ...
- lambda和DynamoDB连接
在DynamoDB当作创建一个新表,然后在项目当中创建,把string value的值填写一下. 在IAM创建角色附加 AWSLambdaDynamoDBExecutionRole权限 在lambda ...
- 4.Struts2中Action的三种访问方式
1.传统的访问方式-很少使用 通过<action>标签中的method属性,访问到action中的具体方法 具体实现: 1.action代码 import com.opensymphony ...
- 实战ZeroMQ的PUSH/PULL推拉模式
原文地址: http://ju.outofmemory.cn/entry/235976
- layui中load具体用法
遮盖窗体,demo: layer.load(,{ // content: "加载中...", shade: [0.4,'#000'], //0.1透明度的白色背景 time:* } ...
- [原创] Java 流布局管理器 FlowLayout
参数原型: public FlowLayout(int align, int hgap, int vgap) { this.hgap = hgap; this.vgap = vgap; setAlig ...
- IntelliJ + Maven + 内Jetty 实现热部署项目
部署的好处:代码修改后,不必关闭Jetty再重新启动,Maven启动时间不太和谐. 环境: IntelliJ IDEA11.1.4, Maven2.2.1 Jetty8.1.5 步骤: 1,在pom. ...
- javascript html jquery 入门
就开发难易程度来说,现在普遍使用jquery,本人学习jquery html css时间不长,以前写过Flex. CSS+JS+HTML组成HTML开发三驾马车.学习js开发我认为怎么入门十分重要.根 ...