❶ ThinkPHP中I(),U(),$this->post()等函數用法
本文實例講述了ThinkPHP中I(),U(),$this->post()等函數的用法。分享給大家供大家參考。具體方法如下:
在ThinkPHP中在控制器中接受表單的數據可以使用如下方法:
1、$_POST[]/$_GET[],但是這個接受的表單內容不會通過htmlspecialchars();函數進行過濾。如果想使用這個接收數據,需要手動處理表單數據
2、可以用接收表單函數復制代碼
代碼如下:$this->_post();$this->_get();,這個函數默認就會使用htmlspecialchars()進行過濾,不用手動過濾。
3、在thinkphp3.1.3中有一個新的函數I();直接接收表單數據,並默認為htmlspecailchars();過濾這個函數有這些欄位
I('需要接收的表單名','如果數據為空默認值','使用的函數處理表單數據');
U();函數是輸出地址
U('操作名','array()參數','偽靜態後綴名',是否跳轉,域名)
希望本文所述對大家的ThinkPHP框架程序設計有所幫助。
❷ thinkphp如何過濾名字重復的記錄
example.對欄位進行去重回
$index = $select->distinct ( true )->where ( 'parent_id=0' )->field ( 'index' )->select ();
SELECT TOP 3
degree ,
COUNT(1) AS 人數答
FROM
Student
GROUP BY
degree
ORDER BY
degree DESC
❸ 使用thinkphp時,表單提交的html內容,全被" \ " 反斜杠過濾了。怎麼在前台讀取到html實際內容呢去掉 \
因為默認的使用的htmlspecialchars()進行處理的。你可以使用
htmlspecialchars_decode()轉成字元
❹ 一個簡單的問題,thinkphp怎麼用其他類的方法。
ThinkPHP的I方法是眾多單字母函數中的新成員,其命名來自於英文Input(輸入),主要用於更加方便和安全的獲取系統輸入變數,可以用於任何地方,用法格式如下:
I('變數類型.變數名',['默認值'],['過濾方法'])
變數類型是指請求方式或者輸入類型。
各個變數類型的含義如下:
注意:變數類型不區分大小寫。
變數名則嚴格區分大小寫。
默認值和過濾方法均屬於可選參數。
❺ ThinkPHP如何防止SQL注入
(1)查詢條件盡量使用數組方式,這是更為安全的方式;
(2)如果不得已必須使用字元串查詢條件,使用預處理機制;
(3)使用綁定參數;指拆盯
(4)強制進行欄位類型驗證,可以對數值數據類型做強制轉換;
(5)使御鬧用自動驗證和自動完成機制進行針對應用的自唯和定義過濾;
(6)使用欄位類型檢查、自動驗證和自動完成機制等避免惡意數據的輸入;
(7)做一些過濾。
❻ thinkPHP3.2中intval過濾超過9位的數字問題
字元串函數回:md5,strip_tags...等答 filter_list: int boolean float validate_regexp validate_url validate_email validate_ip string stripped encoded special_chars unsafe_raw email url number_int number_float magic_quotes callback
❼ thinkphp3.2 資料庫添加內容怎樣用field過濾
在thinkphp中,$User->...->select()/add()/save()這個連貫操作里的'...'部分是不分順序的.
你換個寫法: $User->field('name')->save($data);或者$User->field('name')->add($data)
這個才是手冊里提到的欄位過濾
❽ php 關於thinkphp的防sql注入跟過濾問題
防止注入
opensns
對於WEB應用來說,SQL注入攻擊無疑是首要防範的安全問題,系統底層對於數據安全方面本身進行了很多的處理和相應的防範機制,例如:
$User = M("User"); // 實例化User對象
$User->find($_GET["id"]);
即便用戶輸入了一些惡意的id參數,系統也會強制轉換成整型,避免惡意注入。這是因為,系統會對數據進行強制的數據類型檢測,並且對數據來源進行數據格式轉換。而且,對於字元串類型的數據,ThinkPHP都會進行escape_string處理(real_escape_string,mysql_escape_string)。
通常的安全隱患在於你的查詢條件使用了字元串參數,然後其中一些變數又依賴由客戶端的用戶輸入,要有效的防止SQL注入問題,我們建議:
查詢條件盡量使用數組方式,這是更為安全的方式;
如果不得已必須使用字元串查詢條件,使用預處理機制(3.1版本新增特性);
開啟數據欄位類型驗證,可以對數值數據類型做強制轉換;(3.1版本開始已經強制進行欄位類型驗證了)
使用自動驗證和自動完成機制進行針對應用的自定義過濾;
欄位類型檢查、自動驗證和自動完成機制我們在相關部分已經有詳細的描述。
查詢條件預處理
where方法使用字元串條件的時候,支持預處理(安全過濾),並支持兩種方式傳入預處理參數,例如:
$Model->where("id=%d and username='%s' and xx='%f'",array($id,$username,$xx))->select();
或者
$Model->where("id=%d and username='%s' and xx='%f'",$id,$username,$xx)->select();
模型的query和execute方法 同樣支持預處理機制,例如:
$model->query('select * from user where id=%d and status=%d',$id,$status);
或者
$model->query('select * from user where id=%d and status=%d',array($id,$status));
execute方法用法同query方法。