thinkphppost過濾
㈠ 使用thinkphp時,表單提交的html內容,全被" \ " 反斜杠過濾了。怎麼在前台讀取到html實際內容呢去掉 \
因為默認的使用的htmlspecialchars()進行處理的。你可以使用
htmlspecialchars_decode()轉成字元
㈡ thinkphp的i方法的post和post.這個帶不帶點,有什麼不同啊
傳統方式獲取變數
$id = $_GET['id']; // 獲取get變數
$name = $_POST['name']; // 獲取post變數
$value = $_SESSION['var']; // 獲取session變數
$name = $_COOKIE['name']; // 獲取cookie變數
$file = $_SERVER['PHP_SELF']; // 獲取server變數
Get示例:
http://localhost/news/archive/2012/01/15
$year = $_GET["_URL_"][2];
I方法
I (『變數類型.變數名/修飾符』,[『默認值』],[『過濾方法』],[『額外數據源』])
get 獲取GET參數
post 獲取POST參數
param 自動判斷請求類型獲取GET、POST或者PUT參數
request 獲取REQUEST 參數
put 獲取PUT 參數
session 獲取 $_SESSION 參數
cookie 獲取 $_COOKIE 參數
server 獲取 $_SERVER 參數
globals 獲取 $GLOBALS參數
path 獲取 PATHINFO模式的URL參數(3.2.2新增)
data 獲取 其他類型的參數,需要配合額外數據源參數(3.2.2新增)
使用示例:
echo I('post.id'); // 相當於 $_POST['id']
echo I('get.name'); // 相當於 $_GET['name']
echo I('param.id'); // get或post,param.可以省略
echo I('path.1'); // 獲取重寫的url變數
I('get.id/d'); // 強制轉換成整數,有以下幾種可選擇:
參數 含義
s 強制轉換為字元串類型
d 強制轉換為整形類型
b 強制轉換為布爾類型
a 強制轉換為數組類型
f 強制轉換為浮點類型
I('data.file1','','',$_FILES); //讀取文件
I('get.'); // 獲取整個$_GET 數組
I('post.name','','htmlspecialchars'); // 採用htmlspecialchars方法對$_POST['name'] 進行過濾,如果不存在則返回空字元串。這是默認過濾,可以省略
I('session.user_id',0); // 獲取$_SESSION['user_id'] 如果不存在則默認為0
I('cookie.'); // 獲取整個 $_COOKIE 數組
I('server.REQUEST_METHOD'); // 獲取 $_SERVER['REQUEST_METHOD']
㈢ thinkphp里I方法過濾方法都有什麼有看到過intval和htmlspecialchars,手冊沒見過,想知道所有過濾方法
你好,我所知道的:
1 strip_tags:從字元串中去除 HTML 和 PHP 標記
2 mysql_escape_string:轉義一個字元串用於 mysql_query
這些函數在專防注入方面起到很大的作屬用.
㈣ thinkphp I函數 怎麼過濾提交的富文本編輯HTML
你的辦來法完全可行,底層里源面實際上就是把過濾函數作為一個函數而執行的,參數就是你的數據,所以你自建的函數完全可以運行,但是要放到公共函數庫中。例如:放到Application/Common/Common/function.php中
㈤ Thinkphp 過濾HTML標簽
經過截獲http的請求數據發現轉義是發生在thinkphp接收html文本之前由瀏覽器或在線編輯器自內動轉義的。
對於使容用create方法時可以在Model文件夾中定義模型類,在模型類中定義(content是你提交的欄位):
protected $_auto = array(
array('content', 'htmlspecialchars_decode', self::MODEL_BOTH, 'function'),
);
然後用D("模型名")->create();
如果是用I函數接收的可以改為$content = I('content', '', 'htmlspecialchars_decode');
㈥ thinkphp里獲取網路請求參數且可以設置默認值和過濾方式的是哪一個方法
I方法, 具體參照官網手冊內,或容者 http://www.thinkphp.cn/document/308.html
㈦ thinkphp哪個方法對輸入的變數進行過濾
I方法可以對獲取的數據進行過濾
詳細的說明你可以去看下I方法的函數詳解
㈧ thinkphp2.2.3 中怎麼過濾html代碼
可以自動過濾的。
希望我的回答可以幫到你,有什麼不懂可以追問。
㈨ php 關於thinkphp的防sql注入跟過濾問題
防止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方法。
㈩ php安全問題,請問$_post的東西怎麼過濾 - 技術問答
[php]function daddslashes($string, $force = 0) {? ? !defined(\'MAGIC_QUOTES_GPC\') && define(\'MAGIC_QUOTES_GPC\', get_magic_quotes_gpc());? ? if(!MAGIC_QUOTES_GPC || $force) {? ?? ???if(is_array($string)) {? ?? ?? ?? ?foreach($string as $key => $val) {? ?? ?? ?? ?? ? $string[$key] = daddslashes($val, $force);? ?? ?? ?? ?}? ?? ???} else {? ?? ?? ?? ?$string = addslashes($string);? ?? ???}? ? }? ? return $string;}[/php]