此文件時入口文件index.php

来源:http://www.cnblogs.com/hc4sd/archive/2016/06/07/5567614.html
-Advertisement-
Play Games

此文件時入口文件index.php conf/config.php 與入口文件同級的有一個配置文件config.inc.php 控制器IndexAction.class.php 模型UserModel.class.php 模板reg.html 如果還有不明白的地方,可以給我留言,我會詳細解答您留下的 ...


此文件時入口文件index.php

 

<?php
				
//定義一下ThinkPHP框架存放的路徑
define('THINK_PATH','./ThinkPHP/');

//定義當前的項目的名稱,此處的項目可理解為模塊home理解為前臺部分
define('APP_NAME','protal');
 
//定義項目的路徑            
define('APP_PATH','./protal/');

define('APP_DEBUG', true);

require THINK_PATH.'ThinkPHP.php';



conf/config.php 

<?php
//包含定義配置資料庫連接的配置文件
$dbConf=include './config.inc.php';

//定義項目本身常規配置
$Conf=array(
	//'配置項'=>'配置值'

	'URL_MODEL'=>2,//2表示是URL重寫模式
		
);
return array_merge($dbConf,$Conf);

?>


 

 

 

 

與入口文件同級的有一個配置文件config.inc.php

 

 

<?php
return array(
	//'配置項'=>'配置值'
		'DB_TYPE'=>'mysql',
		
		'DB_HOST'=>'localhost',
		//資料庫名
		'DB_NAME'=>'think',
		//資料庫用戶
		'DB_USER'=>'root',
		//資料庫密碼
		'DB_PWD'=>'',
		//資料庫埠
		'DB_PORT'=>'3306',
		//表首碼
		'DB_PREFIX'=>'t_',
		
)	
?>


控制器IndexAction.class.php

 

<?php
// 本類由系統自動生成,僅供測試用途
class IndexAction extends Action {
    public function index(){
        header("Content-Type:text/html; charset=utf-8");
		$this->display("reg");
    }

	function add(){
	
		
		
	 	if(md5($_POST['verify'])!=$_SESSION['verify']){
			
			$this->error("驗證碼錯誤");
		} 
		
		
		//實例化自定義模型  M('User')實例化基礎模型
		$user=D("User");
			
			if($user->create()){
				
				
					//執行插入操作,執行成功後,返回新插入的資料庫的ID
					 if($user->add()){
						
						$this->success("註冊成功");
					}else{
						
						$this->error("註冊失敗");	
					} 
				
			
			
			}else{
				//把錯誤信息提示給用戶看

				
				
				$this->error($user->getError());

			
			}
		
	}
	
	
	//生成圖片驗證碼
	function verify(){
	/**
	 * 在thinkPHP中如何實現驗證碼
	 * 
	 * ThinkPHP已經為我們提供了圖像處理的類庫ThinkPHP\Extend\...
	 * 
	 * 如何導入類庫?
	 * 導入類庫用"import(文件路徑)來導入,但是註意文件的路徑中的\要替換成 . 號"
	 * 1)導入系統的類庫  import(從library開始算起) import('ORG.Util.Image')註意大小寫
	 * 2)導入項目類庫 import("@.ORG.Image") 我們需要在我恩的項目的Lib目錄中存放	
	 */	
		//導入圖形處理類庫
		import("ORG.Util.Image");
		
			
		//import("@.ORG.Image");
		
		
		//生成圖形驗證碼
		/*
	    length:驗證碼的長度,預設為4位數

		mode:驗證字元串的類型,預設為數字,其他支持類型有0 字母 1 數字 2 大寫字母 3 小寫字母 4中文 5混合(去掉了容易混淆的字元oOLl和數字01)

		type:驗證碼的圖片類型,預設為png 

		width:驗證碼的寬度,預設會自動根據驗證碼長度自動計算

		height:驗證碼的高度,預設為22

		verifyName:驗證碼的SESSION記錄名稱,預設為verify

		  
		 */
		//實現英文驗證碼
		image::buildImageVerify(4,1,'gif',60,22,'verify');
		
		
		//實現中文驗證碼
		//image::GBVerify();
	}

	
	

}


 

 模型UserModel.class.php

 

<?php
class UserModel extends Model{

	//自動驗證
	protected $_validate=array(
			//每個欄位的詳細驗證內容
			array("username","require","用戶名不能為空"),
			array("username","checkLength","用戶名長度不符合要求",0,'callback'),
			array("password","require","密碼不能為空"),
			array("password","checkLength","密碼長度的要求是5~15位之間",0,'callback'),
			array("password","repassword","兩次密碼輸入不一致",0,'confirm'),
			array("qq","require","qq必須填寫"),
			
				
			//array("cdate","require","時間不能為空",callback),
				
			);
	
	
	//自動填充
	protected $_auto=array(
			
			array("password","md5",3,'function'),
			array("cdate","shijian",3,'callback'),
			array("dizhi","getIp",3,'callback'),
				
			);
	
	
	
	
	
	
	
	
		//自定義驗證方法,來驗證用戶名的長度是否合法
		//$date形參  可以寫成任意如 $AA  $bb
		function checkLength($data){
			//$data里存放的就是要驗證的用戶輸入的字元串
			if(strlen($data)<5||strlen($data)>15){
				
				return false;
			}else{
				
				return true;
			}
			
			
		}
	

		
		//返回訪問者的IP地址
		function getIp(){
			
			return $_SERVER['REMOTE_ADDR'];
		}
	
		function shijian(){
				
			return date("Y-m-d H:i:s");
		}
	
	
	
}


 

 模板reg.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">
<title>註冊</title>
</head>
<body>
	<form action="__URL__/add"  method="post" >
	  <table width="407" height="424" align="center">
        <th height="95"><H2>請認真填寫以下註冊信息</H2></th>
	  <tr>
	  <td><table height="273" align="center">
	    <tr>
	      <td width="74" align="right">用戶名:</td>
	      <td width="304" align="left"><input type="text" name="username"></td>
	      </tr>
	    <tr>
	      <td height="70" align="right">密碼:</td>
	      <td align="left"><input type="password" name="password"></td>
	      </tr>
	    <tr>
	      <td align="right">確認密碼:</td>
	      <td align="left"><input type="password" name="repassword"></td>
	      </tr>
	    <tr>
	      <td align="right">QQ:</td>
	      <td align="left"><input type="text" name="qq"></td>
	      </tr>
	    <tr>
	      <td align="right">驗證碼:</td>
	      <td align="left"><input type="text" name="verify" >
	        <img id="verify" alt="驗證碼" onClick="show()" src="__URL__/verify"><a href="javascript:show()">看不清楚</a></td>
	      </tr>
	    <tr>
	      <td colspan="2" align="center"><input type="submit" value="提交"></td>
          </tr>
	    </table></td>
	  </tr>
	  </table>
</form>
</body>
</html>

<script>

	
	function show(){
		document.getElementById("verify").src="__URL__/verify/random"+Math.random();
		
	}
	
	
</script>



 

 

如果還有不明白的地方,可以給我留言,我會詳細解答您留下的問題,謝謝關註

 

 

 

 

 

目錄結構如下

 

TP

--------ThinkPHP  文件夾

--------protal.php  這個文件叫protal.php

 

當運行protal.php時,會出現ThinkPHP的歡迎頁面,證明已經配置成功,同時目錄結果會發生變化

此時的目錄為

 

TP

--------ThinkPHP  文件夾

--------protal.php  入口文件(上邊那個文件)

--------protal 文件夾

 

 

生成的項目目錄結構和系統目錄類似,包括:

 

Common

項目公共文件目錄,一般放置項目的公共函數

Conf

項目配置目錄,項目所有的配置文件都放在這裡

Lang

項目語言包目錄(可選 如果不需要多語言支持 可刪除)

Lib

項目類庫目錄,通常包括Action和Model子目錄

Tpl

項目模板目錄,支持模板主題

Runtime

項目運行時目錄,包括Cache(模板緩存)、Temp(數據緩存)、Data(數據目錄)和Logs(日誌文件)子目錄,如果存在分組的話,則首先是分組目錄。

 

 

 

 

 

 

mysql> SELECT FROM_UNIXTIME(875996580);

        -> '1997-10-04 22:23:00'

 

 

mysql> SELECT UNIXTIME_TIMESTAMP('1997-10-04 22:23:00');

        -> '875996580'


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 記得2010年之前,公司的項目基本上都要用到報表,以前我們常用的方法就是針對客戶的需求來定製化開發(基本上是死寫代碼)來實現,經常導致項目經常性的延期,因為客戶的需求經常會變化,隨著用戶的使用認知度的提高,對報表的要求越來越高,導致程式員不停的修改代碼來實現,效率不高、結束遙遙無期。。。非常的痛苦; ...
  • 前面有一篇博客說到了淘寶UWP的"四核驅動的三維導航—淘寶新UI(需求分析篇)",花了兩周的時間實現了這個框架,然後又陸陸續續用了三周的時間完善它。 多視窗導航,與傳統的導航方式的最大的不同點是: 本篇博客先說一下前三個問題如何解決。 在從頁面A跳到頁面B時,單視窗模式下,很簡單,只要在頁面A中調用 ...
  • 如何在WinForm中請求發送HTTP 手工發送HTTP請求主要是調用 System.Net的HttpWebResponse方法手工發送HTTP的GET請 求: 手工發送HTTP的POST請求 轉自:http://hovertree.com/h/bjaf/i7cux0g6.htm 推薦:http:/ ...
  • 1.RDLC 設計頁面,拖入table或者矩形 2.右擊表格或者矩形單元格,插入--子報表 3.輸入名稱和將此報表用作子報表 名稱:顯示在設計頁面上的,僅作觀看作用 將此報表用作子報表:填寫目錄下的需要作為子報表的RDLC文件的文件名稱(XXX.RDLC),只需要文件名稱不需要.RDLC尾碼名稱。 ...
  • 本篇體驗靜態變數、靜態構造函數和靜態類。 靜態變數 靜態變數位於棧上,它是一個全局變數,在編譯期就已經生成。 public class Cow { public static int count; private int id; public Cow() { id = ++count; } } 客戶 ...
  • 如資料庫中有一個欄位保存了xml格式的一串字元串: <?xml version="1.0" encoding="utf-16"?><ArrayOfPassengerInfoForXml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml ...
  • 什麼是cookies Cookies有很多種,網站上的cookie,瀏覽器的cookie,會話cookie等,cookies是存儲瀏覽器與網站訪問時的數據,是Web伺服器與客戶端連接的方式之一。用戶訪問不同的站點,各個站點會向用戶的瀏覽器發送一個cookie,瀏覽器會分別存儲。實際上,cookies ...
  • 1. Comparator 和 Comparable 相同的地方他們都是java的一個介面, 並且是用來對自定義的class比較大小的,什麼是自定義class: 如 public class Person{ String name; int age }.當我們有這麼一個personList,裡面包含 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...