⑴ thinkPHP中$this->assign("row",$row);這句話啥意思
$this->assign("arr",$arr)中第一個參數是在模板中使用的變數名,名字可以任意取,第二個參數是傳遞給模板的變數。舉個例子:
1、在Action中賦值了一個myname模板變數:
12$name='ThinkPHP';$this->assign('myname',$name);
表示把Action中$name變數(其值為'ThinkPHP')賦值給模板變數myname,當然也可以是其他名字。
2、在模板文件中使用myname變數:
在模板文件(即對應的html文件)使用{$myname} 即表示 字元串:'ThinkPHP'
⑵ thinkphp里I方法過濾方法都有什麼有看到過intval和htmlspecialchars,手冊沒見過,想知道所有過濾方法
你好,我所知道的:
1 strip_tags:從字元串中去除 HTML 和 PHP 標記
2 mysql_escape_string:轉義一個字元串用於 mysql_query
這些函數在防注入方內面起到很大容的作用.
⑶ thinkphp syntax error, unexpected ' 錯誤位置 FILE: C:\AppServ\www\003business\index.php LINE: 3 這
建議從第3行到第5行注釋掉,然後添加exit(),中斷下,看看是否還有報錯
⑷ 如何取消ThinkPHP的自動轉義單引號和雙引號
這是你php環境配置的問題。 你在你的 common.php 文件中, 加一段代碼。 這樣你在不同的環境都不會出這樣的情況了。
if (get_magic_quotes_gpc()) {
function stripslashes_deep($value)
{
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);
return $value;
}
$_POST = array_map('stripslashes_deep', $_POST);
$_GET = array_map('stripslashes_deep', $_GET);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
}
⑸ PHP引號的使用問題
單引號裡面的內容就是字元串本身,雙引號中的變數則會動態改變組合成字元串。
⑹ 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方法。
⑺ 富文本編輯器裡面單雙引號區分么
1,在thinkphp目錄下,依次打開 ThinkPHP\Lib\Driver\Db 目錄,並在dbmysql.class.php 這個文件中把escapeString 函數的函數修改成:
/**
* SQL指令安全過濾
* @access public
* @param string $str SQL字元串
* @return string
*/
public function escapeString($str) {
//修改 周蠻子 放雙引號雙重轉義
if (!get_magic_quotes_gpc()){
if($this->_linkID) {
return mysql_real_escape_string($str,$this->_linkID);
}else{
return mysql_escape_string($str);
}
} else {
return $str;
}
}
⑻ 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下,表單提交的文本內容包含單雙引號,html標簽,該怎麼處理,
一般常用的POST提交,先trim()一下,去除頭尾空格等,
然後使用addslashes()函數對字元串雙引號等特殊字元加\進行轉義再存入資料庫,
⑽ 各位大俠幫幫忙 關於thinkphp 查詢語句搜索欄位帶引號的問題
$map['off_price']=array(array('gt',intval($aa)),array('lt',intval($cc)));