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
|
<?phpclass 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
|
<?phpclass 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
|
<?phpclass 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 ...
随机推荐
- CentOS7 网卡配置文件解释
注:此网卡配置文件摘自CentOS7.4.1708系统 Linux 默认配置网卡的信息 TYPE=Ethernet 网卡类型:以太网 PROXY_METHOD=none 代理方式:关闭状态 BROWS ...
- python全栈开放实践第三版第一章的练习题完成情况
练习题: 1.简述编译型与解释型语言的区别,且分别列出你知道哪些语言属于编译型,哪些数以解释型.1 编译型:只须编译一次就可以把源代码编译成机器语言,后面的执行无须重新编译,直接使用之前的编译结果就可 ...
- Ansible随笔8
自定义模块的开发模式 1.决定自定义模块的存放路径 编辑/etc/ansible/ansible.cfg文件,修改library = /usr/share/ansible/. 这样就告诉ansible ...
- (Struts2学习系列一)MyEclipse创建第一个struts2项目
点击MyEclipse菜单栏File按钮,点击new-->Web Project 输入Project name之后点击Finish 项目创建完成. 然后右键项目,点击MyEclipse--> ...
- Center OS 部署Tomcat服务
一.下载tomcat tomcat官网下载软件包,官网:https://tomcat.apache.org/ 点击download,进入下载页面,下载如下版本: 下载完成后用ftp上传到服务器,SSH ...
- CentOS7.6编译安装openssl-1.1.1c
卸载旧版本OpenSSL # which openssl/usr/bin/openssl# mv openssl openssl.oldrm -rf /etc/ssl #删除配置文件 CentOS7. ...
- linux 6 timezone修改
linux 6 / Amazon linux 因为正好在使用Amazon 的linux AMI 又遇到了需要修改系统时区这个case 所以就调查了一下修改方法,因为Amazon的linux版本是由A ...
- elasticsearch 父子文档(十一)
说明 需求 一个产品多个区域销售 每个区域有自己的价格, 方式1冗余行,a 产品分别在 area1 area2 area3区域销售 a产品就会生成3条产品数据 搜索id去重就行了,但是问题就是 聚合 ...
- mongodb java操作常用写法
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成.MongoDB 文档类似于 JSON 对象.字段值可以包含其他文档,数组及文档数组.下面介绍的是用java操作 ...
- apache httpd.conf alias
参考 Apache alias目录配置 我的环境是 Ubuntu apache2,配置文件目录在 /etc/apache2/sites-available/000-default.conf 在这个配置 ...