ThinkPHP之用户注册登录留言完整实例
发布:smiling 来源: PHP粉丝网 添加日期:2021-03-23 10:11:17 浏览: 评论:0
这篇文章主要介绍了ThinkPHP之用户注册登录留言完整实例,有助于详细了解ThinkPHP的运作流程,需要的朋友可以参考下
本文以实例形式讲述ThinkPHP实现的包括用户的注册、登录以及留言等功能,这里需要大家注意的是,在存在用户模型的情况下实例化一个用户类的时候使用D方法来实现。
UserActiion.class.php页面:
- <?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(!emptyempty($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页面:
- <?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(!emptyempty($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页面:
- <?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页面:
- <?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页面:
- <!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>
Tags: ThinkPHP用户注册登录留言
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)