在ThinkPHP中常用的表單提交操作包括post方法和get方法。
其中post方法相對於get方法較為安全,如果使用get方法的話你的提交的表單包括帳號密碼等資訊將會顯示在存取路徑當中,而post方法會將其資料隱藏。
改寫add方法,判斷是否為post請求,如果是,則處理表單的提交,如果不是則展示模版。
擴充:如果判斷請求是否為post?
答案:我們可以用if($_POST)來判斷,但是在ThinkPHP中系統為我們封裝了幾個比較使用的常數,可以直接用常數來判斷,常數常見的如下:
IS_POST 若要求是post,則IS_POST的值是true,否則是false
IS_GET
IS_AJAX 如果要求是ajax,則IS_AJAX的值是true,否則為false
IS_CGI
IS_PUT
…
關於資料接收的說明:
在之前我們使用的時候$_POST來接收數據,在在 ThinkPHP中,我們可以使用I方法(快速方法)來接收數據,I方法可以接收任何類型的輸入(post、get、request、put等等),並且系統預設自帶防sql注入的方法(使用php內置的函數htmlspecialchars)。
變數類型就是類似get、post等等。
變數名稱就是指$_GET或$_POST中具體元素下標。
預設值:是當使用篩選方法之後原先的內容如果變成了空字串,則會使用預設值來取代。
過濾方法:是ThinkPHP預設提供的htmlspecialchars的補充,函數名稱可以是php內建的,也可以是函數庫中的。
額外的說明:如果想接收整個陣列怎麼辦?
如果想接收全部數據,可以不寫變數名,可以寫成I(‘get.’);
<?php public function add(){ if(IS_POST){ //处理表单提交 $post = I('post.'); //添加数据 //实例化模型 $model = M('Dept'); $result = $model -> add($post); //判断返回值 if($result){ //添加成功 $this -> success('添加成功',U('showList'),5); }else{ $this -> error('添加失败'); } }else{ //实例化模型 $model = M('Dept'); //查询操作 $data = $model -> where('pid = 0') -> select(); //变量分配 $this -> assign('data',$data); //展示模板 $this -> display(); } }
推薦教學:thinkphp教學
以上是thinkphp常用的提交表單的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!