首頁 後端開發 php教程 ThinkPHP之用戶註冊登入留言完整實例

ThinkPHP之用戶註冊登入留言完整實例

Jun 06, 2018 pm 02:15 PM
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(&#39;注册成功!&#39;);
}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[&#39;username&#39;];
$passwd = $_POST[&#39;passwd&#39;];
$user = D("user");
//$User->where(&#39;id=8&#39;)->find();这里的where 语句要注意一下,如果是其他字段的话后面一定要有单引号
$userinfo = $user->where("username =&#39;$username&#39;")->find();
if(!empty($userinfo)){
if($userinfo[&#39;passwd&#39;] == $passwd){
Cookie::set(&#39;userid&#39;,$userinfo[&#39;id&#39;],time()+3600*24);
Cookie::set(&#39;username&#39;,$username,time()+3600*24);
Cookie::set(&#39;lastlogintime&#39;,time(),time()+3600*24);
$this->assign("jumpUrl","__APP__/index/index");
$this->success(&#39;登陆成功!&#39;);
}else{
$this->assign("jumpUrl","__APP__/user/login");
$this->error(&#39;密码出错,请重新输入!&#39;);
}
}else{
$this->assign("jumpUrl","__APP__/user/login");
$this->error(&#39;用户名不存在!&#39;);
}
}
public function loginout(){
Cookie::delete(&#39;username&#39;);
Cookie::delete(&#39;lastlogintime&#39;);
$this->assign("jumpUrl","__APP__/index/index");
$this->success(&#39;您已经成功退出,欢迎您的下次登录!&#39;);
}
}
登入後複製

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(&#39;userid&#39;);
$content->add();
$this->assign("jumpUrl","__URL__/index");
$this->success(&#39;添加成功!&#39;);
}
} 
// 数据查询操作  
public function index() {
$content = new ContentModel();
$list = $content->findAll();  
//用户的cookie
$username = Cookie::get(&#39;username&#39;);
$lastlogintime = Cookie::get(&#39;lastlogintime&#39;);
$this->assign(&#39;list&#39;,$list);    
$this->assign(&#39;title&#39;,&#39;我的首页&#39;);
$this->assign(&#39;username&#39;,$username);
$this->assign(&#39;lastlogintime&#39;,$lastlogintime);
$this->display();  
} 
// 删除操作
public function delete(){
$content = new ContentModel();
$id = $_GET[&#39;id&#39;];
if($content->where("id=$id")->delete()){
$this->assign("jumpUrl","__URL__/index");
$this->success(&#39;删除成功!&#39;);
}else{
$this->assign("jumpUrl","__URL__/index");
$this->error(&#39;删除失败!&#39;);
}
} 
// 编辑操作
public function edit(){
$content = new ContentModel();
$id = $_GET[&#39;id&#39;];
if($id != &#39;&#39;)
{
//$data = $content->select($id);
$data = $content->where("id=$id")->select();
if(!empty($data)){
$this->assign(&#39;data&#39;,$data);
}else{
echo "数据为空!";
}
}
$this->assign(&#39;title&#39;,&#39;编辑页面&#39;);
$this->display();
}
// 更新操作
public function update(){
$content = new ContentModel();
//直接使用create(),自动会帮你进行数据的传值
/*$content->create();
$content->save(); // 根据条件保存修改的数据
echo "更新数据成功!";*/
// 使用post 传值过来,进行更新
$id = $_POST[&#39;id&#39;];
if($id != &#39;&#39;)
{
$data[&#39;id&#39;] = $id;
$data[&#39;title&#39;] = $_POST[&#39;title&#39;];
$data[&#39;content&#39;] = $_POST[&#39;content&#39;];
if($content->save($data))// 根据条件保存修改的数据
{
$this->assign("jumpUrl","__URL__/index");
$this->success(&#39;更新数据成功!&#39;);
}
else{
$this->assign("jumpUrl","__URL__/index");
$this->success(&#39;更新数据失败!&#39;);
}
}else
{
echo "保存数据失败!";
}
}
}
?>
登入後複製

ContentModel.class.php頁面:

<?php
class ContentModel extends Model{
/*
* 自动验证
* array(验证字段,验证规则,错误提示,验证条件,附加规则,验证时间)
*/ 
protected $_validate = array(
array(&#39;title&#39;,&#39;require&#39;,&#39;标题必须填写!&#39;),
array(&#39;content&#39;,&#39;require&#39;,&#39;内容必须填写!&#39;), 
);
/* 
* 自动填充
* array(填充字段,填充内容,填充条件,附加规则)
*/
protected $_auto = array(
array(&#39;addtime&#39;,&#39;time&#39;,1,&#39;function&#39;),
);
}
?>
登入後複製

#UserModel.class.php頁面:

<?php
class UserModel extends Model{
protected $_validate = array(
array(&#39;username&#39;,&#39;&#39;,&#39;帐号名称已经存在!&#39;,0,&#39;unique&#39;,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=&#39;{$jumpUrl}&#39;" />
<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實作簡單登陸功能

thinkphp實作163、QQ郵件信箱收發郵件的方法_php技巧

以上是ThinkPHP之用戶註冊登入留言完整實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

Bitget Wallet交易所怎麼註冊不了是什麼原因 Bitget Wallet交易所怎麼註冊不了是什麼原因 Sep 06, 2024 pm 03:34 PM

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

抖音為什麼有兩個帳號?手機分身裝兩個抖音怎麼做? 抖音為什麼有兩個帳號?手機分身裝兩個抖音怎麼做? May 06, 2024 pm 09:28 PM

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

DeepSeek官網入口及最新優惠活動一覽 DeepSeek官網入口及最新優惠活動一覽 Feb 19, 2025 pm 05:15 PM

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

如何解決使用ThinkPHP6和elasticsearch-php客戶端連接Elasticsearch 8時的cURL error 77問題? 如何解決使用ThinkPHP6和elasticsearch-php客戶端連接Elasticsearch 8時的cURL error 77問題? Mar 31, 2025 pm 11:36 PM

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

XT.COM交易所帳號大陸怎麼註冊? XT.COM交易所帳號大陸怎麼註冊? Aug 16, 2024 pm 06:51 PM

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

ThinkPHP6路由:如何完整獲取包含中文等特殊字符的URL參數? ThinkPHP6路由:如何完整獲取包含中文等特殊字符的URL參數? Apr 01, 2025 pm 02:51 PM

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

芝麻開門官網交易平台 芝麻開門官網交易所註冊入口 芝麻開門官網交易平台 芝麻開門官網交易所註冊入口 Feb 28, 2025 am 10:57 AM

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

抖音推薦如何變成初始狀態?推薦變成初始狀態有什麼影響? 抖音推薦如何變成初始狀態?推薦變成初始狀態有什麼影響? May 06, 2024 pm 02:10 PM

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

See all articles