ThinkPHP之用戶註冊登入留言完整實例
這篇文章主要介紹了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(!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頁面:
<?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頁面:
<?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> <p 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> </p> </body> </html>
相關推薦:
thinkphp實作163、QQ郵件信箱收發郵件的方法_php技巧
以上是ThinkPHP之用戶註冊登入留言完整實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

無法註冊BitgetWallet交易所的原因有很多種,包括帳戶限制、不支援的地區、網路問題、系統維護和技術故障。要註冊BitgetWallet交易所,請造訪官方網站、填寫資訊、同意條款、完成註冊並驗證身分。

在數位時代,社群媒體已成為人們生活中不可或缺的一部分。抖音,作為國內最受歡迎的短影片平台之一,吸引了大量用戶。有些用戶甚至註冊了兩個帳號,那麼,抖音為什麼有兩個帳號呢?本文將為您解答這個問題,並介紹如何在手機上安裝兩個抖音帳號。一、抖音為什麼有兩個帳號?功能區分:某些使用者會根據內容類型或功能來區分帳戶,例如一個帳戶用於分享生活日常,另一個帳戶用於展示專業技能。 2.隱私保護:有些用戶希望透過兩個帳號來保護自己的隱私,將生活和工作分離,避免資訊外洩。 3.互動需求:有些使用者可能因為互動需求而註冊兩個

DeepSeek 官網現推出多重優惠活動,為用戶提供お得購物體驗。新用戶註冊即可獲得 10 美元優惠券,全場享受 15% 限時折扣。推薦好友還可賺取獎勵,購物消費可累積積分兌換禮品。活動截止時間不同,詳情請訪問 DeepSeek 官網查詢。

在使用ThinkPHP6框架結合elasticsearch-php客戶端操作Elasticsearch...

大陸用戶可透過以下步驟在XT.COM交易所註冊:造訪XT.COM官方網站。點選右上角的「註冊」按鈕。選擇“手機註冊”選項。輸入大陸手機號碼,取得並輸入驗證碼。設定密碼。完成身份驗證。註冊完成。

ThinkPHP6路由參數中文處理及完整獲取在ThinkPHP6框架中,處理包含特殊字符(如中文及標點符號)的URL參數,常常...

Gate.io 芝麻開門是全球領先的區塊鏈數字資產交易平台,包含法幣交易、幣幣交易、槓桿交易、永續合約、ETF 槓桿代幣、理財寶、Startup 首發等版塊,為用戶提供安全穩定,公開透明。

抖音作為全民短片平台,其推薦演算法一直備受用戶關注。在日常使用中,我們可能會遇到抖音推薦變得不再精準的情況,那麼,抖音推薦如何變成初始狀態呢?一、抖音推薦如何變成初始狀態?抖音推薦演算法主要以使用者的行為資料進行最佳化,包括觀看時間、按讚、留言、分享等。當這些數據發生較大變化時,推薦演算法可能會認為用戶的興趣發生了變化,因此調整推薦內容。以下幾種情況可能導致抖音推薦變成初始狀態:使用者長時間不活躍、對新內容不感興趣、觀看習慣改變等。新用戶註冊:針對新用戶來說,推薦系統會預設推薦熱門、爆款視頻,以幫助
