第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

Yii框架不得不說的故事—基礎(chǔ)篇(1)

withy PHP開發(fā)工程師
難度中級
時長 2小時39分
學習人數(shù)
綜合評分9.67
176人評價 查看評價
9.9 內(nèi)容實用
9.7 簡潔易懂
9.4 邏輯清晰
  • //視圖之數(shù)據(jù)安全 //在$hello_str的值后邊加上一段js代碼,在瀏覽器刷新頁面時,js代碼被當成真的js代碼顯示出來。 //這樣會產(chǎn)生問題,假如$hello_str是從用戶那邊傳遞過來的,用戶以請求的方式發(fā)送了一段內(nèi)容(含有js代碼),這樣就真的放在視圖里去顯示了。 //那么如果在js代碼中用戶放進了一些惡意代碼,就會造成跨站腳本攻擊,從而危害到安全。Yii框架提供了一些專門的工具來防止這些問題的發(fā)生。 $hello_str = 'Hello God!<script>alert(3);</script>'; $data = array(); $data['view_hello_str'] = $hello_str; return $this->renderPartial('index',$data); <!-- 視圖之數(shù)據(jù)安全 --> <!-- Yii提供了一個工具類Html(在命名空間中的類,需要通過php代碼去告訴應用程序去使用yii\helpers\Html;下的這么一個類),類中有一個方法encode(可以對這個變量當中的js代碼進行轉(zhuǎn)義) --> <?php use yii\helpers\Html; use yii\helpers\HtmlPurifier; ?> <h1><?=Html::encode($view_hello_str);?></h1> <!-- js代碼會被原樣的顯示出來 --> <!-- 除了通過轉(zhuǎn)義的方式去避免跨站腳本攻擊之外,還可以通過另外一個類HtmlPurifier去過濾js代碼 --> <h1><?=HtmlPurifier::process($view_hello_str);?></h1> <!-- process方法可以把變量里的js代碼給徹底過濾掉 -->
    查看全部
  • HelloController.php //視圖之數(shù)據(jù)傳遞 //通過renderPartial()顯示視圖會有一個問題,假如定義了一個變量$hello_str,如何把它傳遞給index視圖去使用。 $hello_str = 'Hello God!';//傳遞字符串 $test_arr = array(1,2);//傳遞數(shù)組 //傳遞的過程在Yii框架中分成三步:1.創(chuàng)建一個數(shù)組 $data = array(); //2.把需要傳遞給視圖的數(shù)據(jù),放到數(shù)組當中。怎樣使用$data數(shù)組里的數(shù)據(jù),在視圖文件里把$data數(shù)組的key(view_hello_str)當成變量使用即可。 $data['view_hello_str'] = $hello_str; $data['view_test_arr'] = $test_arr; //3.把$data數(shù)組傳遞給index視圖,傳遞需要借助renderPartial的第二個參數(shù) return $this->renderPartial('index',$data); views/hello/index.php <!-- 視圖之數(shù)據(jù)傳遞:這時$view_hello_str的value = $hello_str的value --> <h1><?=$view_hello_str;?></h1> <h1><?=$view_test_arr[0];?></h1> <!-- 打印$view_test_arr數(shù)組的第1個元素 -->
    查看全部
  • Hellocontroller.php //視圖之視圖的創(chuàng)建 //要想展現(xiàn)views視圖index.php文件,需要在控制器里調(diào)用renderPartial()方法。 //這個方法在Controller父類中,而HelloController完全繼承Controller,可以用$this變量直接調(diào)用這個方法。 return $this->renderPartial('index');//方法的參數(shù)為要顯示的視圖文件。Yii框架為了方便開發(fā),文件后綴名不用寫,Yii框架規(guī)定還必須在前面加上return。 views/hello/index.php <h1>hello view!</h1>
    查看全部
  • user yii/web/Cookie; //server到客戶端 $cookies = \Yii::$app->response->cookies; //獲取cookie $cookie_data = array('name'=>'user', 'value'=>'wangnima'); $cookie->add(new Cookie($cookie_data)); //設(shè)置cookie數(shù)據(jù) $cookie->remove('user'); //刪除cookie數(shù)據(jù) //從客戶端取得cookie $cookies = \Yii::$app->request->cookies; //獲得瀏覽器請求的數(shù)據(jù) echo $cookies->getValue('user',20);
    查看全部
  • //控制器之session處理 //獲取session應用組件 $session = \Yii::$app->session; //開啟session,調(diào)用open()函數(shù)即可 $session->open(); //通過$session里的isActive判斷session是否開啟 //if($session->isActive){ // echo "session is active";//如果沒顯示出來表示還沒開啟session //} //開啟后,調(diào)用set('存放數(shù)據(jù)的名字','存放數(shù)據(jù)的值')方法就可以往session里存放數(shù)據(jù)了;把session當成對象來使用。 //$session->set('user','王大錘');//刷新后,瀏覽器扔個請求回來,這段代碼就會執(zhí)行,那么session數(shù)據(jù)就保存成功。要知道session保存到哪里(sess_ffpsdesfctthaseqi7875odus0),需要找php.ini文件里的session.save_path = "c:/wamp/tmp" //取出session數(shù)據(jù) //echo $session->get('user'); //刪掉session數(shù)據(jù) //$session->remove('user'); //通過另外一種方式對session進行操作(把session當成一個數(shù)組:PHP提供了ArrayAccess的這么一個接口,凡是實現(xiàn)這個接口的類所產(chǎn)生的對象都可以把它當成數(shù)組來使用) //$session['user'] = '王撕蔥';//存放session數(shù)據(jù) //echo $session['user'];//訪問session數(shù)據(jù) //unset($session['user']);//刪除session數(shù)據(jù) //session的識別原理(當用不同瀏覽器向服務(wù)器發(fā)送請求時,服務(wù)器是可以識別哪個瀏覽器發(fā)送的請求的,根據(jù)不同瀏覽器獲取不同的session值扔回不同的瀏覽器。服務(wù)器是根據(jù)PHPSESSID的值識別不同的瀏覽器的) //$session['user'] = '王尼瑪'; echo $session['user'];//Chrome、Firefox瀏覽器可以顯示出來,IE沒有顯示
    查看全部
  • 那么當我們的瀏覽器發(fā)送過來一個請求之后呢,在Index操作里對請求進行處理之后呢,服務(wù)器會把請求處理的結(jié)果打包成一個消息,再把消息扔回瀏覽器。那么這個消息就稱之為響應。在操作當中,通過響應組件也可以對響應進行一些設(shè)置和處理的。 $res = \Yii::$app->response; //$res->statusCode = '404';//為響應設(shè)置一個狀態(tài)碼,不設(shè)置的服務(wù)器返回的默認為200。(404:Not Found;200:OK) //pragma頭部跟瀏覽器緩存有關(guān),no-cache表示接收到返回數(shù)消息時,不要把消息緩存在瀏覽器里面//$res->headers->add('pragma','no-cache'); //通過set方式,可以改掉頭部的內(nèi)容;max-age=5告訴瀏覽器如果收到消息緩存?zhèn)€5秒鐘 //$res->headers->set('pragma','max-age=5'); //通過remove方式刪掉pragma頭部 //$res->headers->remove('pragma'); //http頭跳轉(zhuǎn)功能,需要在頭部里加上一個location的字段,告訴瀏覽器收到消息后跳轉(zhuǎn)到一個地址 //$res->headers->add('location','http://www.baidu.com'); //跳轉(zhuǎn)功能常用,Yii框架在Controller這個父類當中提供了專門的函數(shù)redirect() //$this->redirect('http://www.baidu.com',302);//在跳轉(zhuǎn)的時候,還可以順便指定返回消息的狀態(tài)碼是多少。(302:表示用戶請求的東西臨時放在百度這個地址里) //通過http頭可以進行文件下載。告訴瀏覽器收到數(shù)據(jù)的時候可以以附件的形式去保存數(shù)據(jù),保存成文件。 //$res->headers->add('content-disposition','attachment;filename="a.jpg"'); //因為下載功能也常用,所以響應當中也專門提供了一個包裝的方法sendFile $res->sendFile('./rebots.txt');//在入口腳本所在的文件夾去尋找要下載的文件 $res->statusCode = '404';//為響應消息設(shè)置狀態(tài)碼
    查看全部
  • localhost/basic/web/index.php?r=hello/index&id=3 那么通過瀏覽器向hello控制器里的index操作發(fā)送請求的時候,可以在請求的后面加上一些參數(shù),比方說加上&id=3。那么當這個請求發(fā)送到index操作之后,怎樣才能在index操作里把id參數(shù)取出來?可以通過請求組件這么一個東西來完成。要想獲得請求組件,可以通過Yii框架里面的全局的類(Yii),那么在這個類里有一個靜態(tài)變量($app),也就是之前所說的應用主體,那么這個應用主體在剛開始的時候會加載各種各樣的應用組件。這里有一個request組件,也就是請求組件。獲取到請求組件之后,把它放到$request變量之中。通過這個請求組件,就可以獲取發(fā)送過來的請求當中的數(shù)據(jù)了。 $request = \Yii::$app->request;//Yii類是全局類,要想使用需在前面加上反斜杠\ 因為傳遞過來的參數(shù)是通過get的這種方式,可以通過request組件里面的get方式來獲取請求當中的數(shù)據(jù)。 echo $request->get('id'); echo $request->get('id',20);//如果沒有id傳過來,get獲取不到,或者說get獲取到的是null值。那么讓get做一個判斷,如果id沒有傳過來,就返回另一個值??梢酝ㄟ^設(shè)置get的第二個參數(shù)做到這一點。 //獲取post請求當中的數(shù)據(jù),通過post('參數(shù)的名字',沒有參數(shù)傳過來時post返回的默認值)方式 $request->post('name',2333); //利用request這個請求組件,還可以判斷發(fā)送過來的請求類型 if ($request->isGet/isPost) { echo "this is get method!"; } //通過這個請求參數(shù),還可以去獲取用戶的一些信息(如ip) echo $request->userIp; $request->userIP;或$request->userIp;都能獲取用戶的ip地址。但yii2源碼里,應該是userIP。
    查看全部
  • 消除數(shù)據(jù)庫查詢緩存
    查看全部
  • yii 一對多關(guān)聯(lián)查詢
    查看全部
  • yii sql查詢
    查看全部
  • 在basic/controllers文件夾下新建一個HelloController.php文件 namespace app\Controllers use yii\web\controller class HelloController extends Controller{ function actionIndex(){ echo "hello word"}} 訪問的時候的參數(shù)就是r=hello/index其中hell代表控制器,index代表控制器的方法 路由中的r=hello不能像寫類一樣用大寫Hello ..否則找不到相應的控制器。
    查看全部
  • 當沒有指定命名空間的時候默認是頂層命名空間成為全局類,實例化需要用到\ $c = new \Apple(); $c->getInfo(); 不對類定義命名空間(namespace)時,這個類為全局類 實例化全局類時在類名的前面加上反斜杠 \ 即可調(diào)用。 use是引用命名空間 use Home/Model as m 中的m可以變相的看成是代替Home/Model/
    查看全部
    0 采集 收起 來源:命名空間

    2018-03-22

  • Yii應用的靜態(tài)結(jié)構(gòu)圖 一封信的故事,先到門衛(wèi)(index)再交給老大(主體)老大給了我(控制器),我先用模型記錄了一部分到數(shù)據(jù)庫,然后寫了回信交給(視圖),并且拿了些小玩意從部件里面一并發(fā)回
    查看全部
  • /basic/web/index.php (Yii框架的入口腳本) /basic/config/web.php配置cookieValidationKey(這個配置項主要是為了防止cookie攻擊的。隨便設(shè)置一個值) 'cookieValidationKey' => 'yjpynww',
    查看全部
  • requirements.php 檢測系統(tǒng)環(huán)境 更改PHP版本到5.4.0或以上。(phpStudy)
    查看全部

舉報

0/150
提交
取消
課程須知
學習本門課程之前,建議先了解一下知識,會更有助于理解和掌握本門課程 1、掌握PHP基本的語言語法 2、對MVC開發(fā)方式有一定的了解
老師告訴你能學到什么?
1、php的新特征 2、一款前沿的框架的使用方式 3、新穎獨到的程序設(shè)計

微信掃碼,參與3人拼團

微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網(wǎng)的支持!