使用thinkPHP做注冊程序的實例

登錄界面:

?

數據庫和數據表的結構

?

具體的操作步驟如下:

第一步:入口文件index.php內容 (此文件基本是屬于固定的格式)

<?php
define('THINK_PATH','./ThinkPHP/');
define('APP_NAME','MyApp');
define('APP_PAHT','./MyApp/');
require_once THINK_PATH.'ThinkPHP.php';
$app=new App();
$app->run();
?>

?

第二步:Active文件夾中的IndexAction.class.php文件內容

<?php
class IndexAction extends Action
{
?public function Index()
?{
??$this->display();//渲染到模板index.html
?}
?
?// 生成驗證碼??
?public function verify()//這是一個固定的格式
?{??
??import("ORG.Util.Image");??
??Image::buildImageVerify();??
?} ?
?
?//檢驗驗證碼是否正確??
?public function verifyCheck()
?{ ????
??if (md5($_POST['verifyTest']) != Session::get('verify'))
??{??
???die('驗證碼錯誤');??//如果驗證碼不對就退出程序
??}?
?}???
?
??function insert()
??{
??header('Content-Type:text/html; charset=utf-8');//防止出現亂碼
??$this->verifyCheck();//調用本類的函數,
??$Pagemodel = D("user");
??$vo = $Pagemodel->create();
??if(false === $vo) die($Pagemodel->getError());
??$topicid = $Pagemodel->add(); //add方法會返回新添加的記錄的主鍵值
??if($topicid) echo "數據庫添加成功";
??else throw_exception("數據庫添加失敗");
?}
}
?>

?

第三步:寫模板文件,也就是寫LIB文件夾中的HTML文件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
??<style type="text/css">
????#form1
?{
??width:250px;
??height:250px;
??margin:20px auto;
??border:1px #039 solid;
??padding:20px 20px;
?}
??</style>
??<script type='text/javascript'>
?function freshVerify()
?{??
???document.getElementById('verifyImg').src='__URL__/verify/'+Math.random();??
?}??
??</script>??
</head>
<body>
??<form name="form1" id="form1" method="post" action="__URL__/insert">
????注冊帳號:<br /><br />
????帳號:<input type="text" name="user" id="user" maxlength="16" /><br /><br />
????密碼:<input type="password" name="password" id="password" maxlength="16" /><br /><br />
????Q&nbsp;&nbsp;Q:<input type="text" name="qq" id="qq" maxlength="16" /><br /><br />
???
????驗證碼:<input type='text' name='verifyTest' size="5">?
????<img style='cursor:pointer' title='刷新驗證碼' src='__URL__/verify' id='verifyImg' onClick='freshVerify()'/> <br /><br />
??????
????<input type="submit" name="btn1" id="btn1" value="提交" />
????<input type="reset" name="btn2" id="btn2" value="重置" />
??</form>
</body>
</html>
注意:

1、也就是一個form,action="__URL__/insert"表示提交到當前Action類(即IndexAction.class.php文件中)的insert函數;

2、此模板(靜態網頁)中的各個name要與user數據表的各個字段是一樣的名字,否則在insert函數中數據不能自動進庫。

3、驗證碼的刷新由靜態網頁負責。值相等由IndexAction類的verifyCheck()負責。

?

第四步:寫Model類,在model目錄中,文件名為:UserModel.class.php

<?php
??class UserModel extends Model//User與數據庫中數據表的名字相同
??{
???var $_validate=array??//自動驗證
???(
???array('user','require','賬號不能為空',1),??//1表示必須驗證
???array('qq','number','QQ號必須是數字,注冊失敗!',2),//2表示不為空時要驗證
???array('user','','此帳號己經存在!',0,'unique','add')??//不能有同時賬號出現
???);???
???var $_auto=array
???(
?????????array('password','md5','add','function'),??//密碼用md5加密后填入數據表中
?????????array('create_time','time','add','function')??//在增加時自動將時間擢填入表中
???);
??}
?>

注解:

1、文件名,類名必須用user,因為數據庫中對應的是user表;

2、其實只要寫一個框架就行了:

??class UserModel extends Model
??{

??}

但為什么還要var $_validate=array()和var $_auto=array()呢?那是因為:

var $_validate=array()是自動驗證的意思,var $_auto=array()是自動填充的意思。

自動驗證就是驗證數據的格式是否正確,自動填充就是你不輸入的值,它自動給你灌進去,比如'create_time'建立時間,我們在模板中沒有這個,但這里它就自動進庫了。

轉載于:https://www.cnblogs.com/licanhui/p/11174035.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386411.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386411.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386411.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

安卓開發面試技能介紹,來一份全面的面試寶典練練手,不吃透都對不起自己

前言 網上有很多對程序員簡歷的一些指導&#xff0c;這里就不重述&#xff0c;大家可以搜下網上其他大神的總結&#xff0c;結合自身情況修改下。我有幾點建議&#xff1a; 1.盡量不要花哨&#xff0c;程序員和設計師或者產品運營還不一樣&#xff0c;我們的簡歷成功與否決定…

上交所行情文件導入數據庫

事情的起因很簡單&#xff0c;需要將股票收盤行情導入數據庫&#xff0c;因為科創板交易時間延長&#xff0c;需要將原有的程序進行改造&#xff0c;眾所周知&#xff0c;程序員永遠是不夠用的&#xff0c;只能自己解決這個問題。 方式是用定時器調用shell腳本。 上交所的mktdt…

安卓開發面試題及答案,一次嗶哩嗶哩面試經歷,年薪50W

沒有穩定的工作&#xff0c;只有穩定的能力。 又到了萬物復蘇的季節&#xff0c;在程序猿這個行當里&#xff0c;作為 Android 開發出生的&#xff0c;在經歷了八年的脫發生涯后&#xff0c;有了越來越多的想法和感觸 趨勢 隨著各類移動跨平臺的興起&#xff0c;在 ReactNati…

Intent 簡單用法

1.Intent有什么用&#xff1f; Android設計理念是鼓勵減少組件間的耦合&#xff0c;因此Android提供了Intent (意圖) &#xff0c;Intent是一種消息傳遞機制&#xff0c;可以在程序內使用&#xff0c;也可以在程序間使用&#xff0c;主要用于啟動“Activity”“Service”和“廣…

安卓開發面試題!帶著問題深入學習Handler,進階學習資料!

進大廠本來就很難了&#xff0c;不過做足了準備&#xff0c;你會發現很多問題都迎刃而解了&#xff0c;當然有時候運氣也占了一部分&#xff0c;除了運氣以外&#xff0c;當然與我自身的努力也是分不開的。運氣也是實力的一部分&#xff0c;畢竟天助自助者~ 每次到年底做總結的…

VueJS教程3

目錄 13、Vue實例 13.1 動態組件&#xff08;Tab切換、簡化版留言板&#xff09;13.2 使用Vue開發TodoList14、Vue CLI14.1 使用vue-cli開發TodoList接著VueJS教程2。 13、Vue實例 13.1 動態組件&#xff08;Tab切換、簡化版留言板&#xff09; 參考&#xff1a;https://vuejs.…

春招我借這份PDF的復習思路,論程序員成長的正確姿勢

一. 開發背景 想要成為一名優秀的Android開發&#xff0c;你需要一份完備的知識體系&#xff0c;在這里&#xff0c;讓我們一起成長為自己所想的那樣。 面試總結 面試大廠一定要做好充分的準備&#xff0c;沒有準備就去面試完全是去當炮灰的&#xff0c;更是對自己的不負責。再…

T-SQL語句學習(三)

這部分介紹下視圖、索引技術。 1、視圖&#xff1a;是從一個或幾個基本表&#xff08;或視圖&#xff09;導出表。視圖與基本表不同&#xff0c;是一個虛表。 當基本表中的數據發生變化時&#xff0c;從視圖中查詢出來的數據也會隨之改變。 1.1 定義視圖 a、創建視圖的語法要求…

普通二本的辛酸Android面試之路,滿滿干貨指導

一、自我介紹 應該算是起點比較高吧&#xff01;985大學畢業后面一直在國外讀研。之前準備面試微軟但是可能經驗不夠&#xff0c;沒有通過。經過朋友介紹我準備回國&#xff0c;積累一些開發經驗。于是我面試了國內大廠BATJ&#xff0c;還有一些其他比較知名的公司&#xff0c…

python-3.8.0 新特性之賦值表達式

【python-3.8.0 新特性之賦值表達式】 賦值表達式的語法是這樣的“ name : expression ”&#xff0c;形式上看和賦值語句 “ ” 差不多&#xff0c;就作用上來看也雷同。也就是說 “:” 不是必不可少的&#xff0c;它只是一個錦上添花的新語法。 【1、例子】 假設我們要對列表…

普通二本的辛酸Android面試之路,算法太TM重要了

前言 編程是一個江湖&#xff0c;江湖之大&#xff0c;魚龍混雜&#xff0c;一部分江湖人士乃蝦兵蟹將&#xff0c;一不小心就被一箭射死&#xff0c;我們稱之為“碼農”&#xff0c;這些人事江湖的重要組成部分&#xff0c;他們承擔著堆砌代碼&#xff0c;實現功能設計的使命…

SQL常用日期處理函數(轉)

/**datepart()函數的使用 * datepart()函數可以方便的取到時期中的各個部分*如日期&#xff1a;2006-07--02 18&#xff1a;15&#xff1a;36.513* yy:取年 2006* mm:取月 7* dd:取月中的天 2* dy:取年中的天 183* wk:取…

最全的BAT大廠面試題整理,系列篇

前言 看到一篇文章中提到“最近幾年國內的初級Android程序員已經很多了&#xff0c;但是中高級的Android技術人才仍然稀缺“&#xff0c;這的確不假&#xff0c;從我在百度所進行的一些面試來看&#xff0c;找一個適合的高級Android工程師的確不容易&#xff0c;一般需要進行大…

記錄資料,

C#(1)面向對象的分析與設計(uml 2.0)版(2)C#字符串和正則表達式參考手冊.pdf (3)C#應用程序開發全程演練——從靈感到實現.pdf 中文版外加兩章 英文的,從出版社網站下. (4)C#大學教程 清華大學譯,少好幾章.英文版不錯.我讀的是第一版 .現在有第二版 . (5)C# WINDOWS程序設計 沒…

最全面試考點與面試技巧,大廠面經合集

前言 對于字節跳動的二面三面而言&#xff0c;FrameworkMVP架構HashMap原理性能優化Flutter源碼分析等問題都成高頻問點&#xff01;然而很多的朋友在面試時卻答不上或者答不全&#xff01;今天在這分享下這些問點的視頻解析給大家&#xff0c;希望對有需要的朋友有所幫助&…

阿里云sql監控配置-druid

今天我們說說數據源和數據庫連接池&#xff0c;熟悉java開發的同仁應該都了解C3PO&#xff0c;在這里不做過多的贅述了&#xff0c;今天我們說的是阿里DRUID&#xff0c;druid是后起之秀&#xff0c;因為它的優秀很快占領了使用市場&#xff0c;下邊我們一起來看看druid數據源的…

最全面試考點與面試技巧,真香!

寫在前面 身邊有不少去大廠面試的朋友&#xff0c;其中小金面試字節跳動的經歷很有意義&#xff0c;在這里分享給大家。小金是末流211計算機專業大三本科生&#xff0c;前幾天面試了字節跳動的廣州Android開發實習生。下面是他的面試經歷&#xff0c;還有一些他自己的經驗。 …

最強Android教程!2021年Android面經分享,大廠面經合集

前言 找工作還是需要大家不要緊張&#xff0c;有我們干這一行的接觸人本來就不多 難免看到面試官會緊張&#xff0c;主要是因為怕面試官問的問題到不上來&#xff0c;那時候不要著急 &#xff0c;答不上了的千萬不然胡扯一些&#xff0c;直接就給面試官說這塊我還沒接觸到&…

最強整理!字節跳動歷年Android中高級面試題全收錄!附超全教程文檔

開頭 讓我們一起來看看&#xff0c;字節跳動的第三面&#xff0c;面試官都問了什么&#xff1f;&#xff08;第一二面的題目及答案已整理&#xff0c;需要的可以在文末領取&#xff09; 從七月中旬開始&#xff0c;我前前后后差不多一共投遞了八十份簡歷&#xff0c;到目前為…

最新BAT大廠面試者整理的Android面試題目模板,分享PDF高清版

前言 從畢業到現在面試也就那么幾家公司&#xff0c;單前幾次都比較順利&#xff0c;在面到第三家時都給到了我offer&#xff01;前面兩次找工作&#xff0c;沒考慮到以后需要什么&#xff0c;自己的對未來的規劃是什么&#xff0c;只要有份工作&#xff0c;工資符合自己的要求…