国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

php常量和變量之外部變量

外部變量

PHP的外部變量是PHP 在使用過(guò)程中規(guī)定好的一些變量。這個(gè)變量的規(guī)定是這樣規(guī)定的,就這樣使用。

我們先講解幾個(gè)最常用的例子,我們將下面的表單命名為user.html:

<html>
   <head>
   </head>

   <body>
       <form action="reg.php" method="get">
           <input type="text" name="username" />
           <input type="password" name="pwd" />
           <input type="submit" value="提交" />
       </form>
   </body>
</html>

上現(xiàn)是很基礎(chǔ)的一段HTML代碼,在這段代碼的主要意思是把用戶和密碼,采用get方法,將數(shù)據(jù)發(fā)送給reg.php(在上面代碼的第6行規(guī)定的)。reg.php想辦法接收用戶傳過(guò)來(lái)的username和pwd這兩個(gè)值。

我們得出我們的第一個(gè)外部變量:$_GET。
$_GET 的主要作用是將得到get傳值的數(shù)據(jù)。

我們寫(xiě)一個(gè)reg.php,用$_GET來(lái)接收值試試:

<?php
//$_GET后面加上中括號(hào),將username作為字符串放在中括號(hào)里面,就得到了表單里面的<input type="text" name="username" /> 的值
$u = $_GET['username'];
echo $u.'<br />';

//$_GET['pwd'] 得到表單<input type="text" name="username" /> 的值
$passwd = $_GET['pwd'];
echo $passwd.'<br />';
?>

你可以輸出值看一下結(jié)果。通過(guò)上面的實(shí)驗(yàn)我們知道了,通過(guò)$_GET這個(gè)外部變量,可以得到從表單輸入的值。

大家在實(shí)驗(yàn)的時(shí)候會(huì)發(fā)現(xiàn)地址欄上面有一個(gè)特點(diǎn):

QQ截圖20161114101233.png

根據(jù)上圖,觀察特點(diǎn):

reg.php后面跟了一個(gè)?(問(wèn)號(hào))

表單里面的username變?cè)诹说刂窓诶锩?/p>

表單面username的值輸入的是root,在username后面跟了個(gè)=(等號(hào))輸入的值

username(名字)=root(值) 后面的密碼是password(名字)=123123(值),中間有&(and符)分開(kāi)

密碼是可見(jiàn)的,那怎么樣保證安全呢。讓我在注冊(cè)的過(guò)程當(dāng)中,密碼不在地址欄里面被人看到呢?

這個(gè)時(shí)候我們需要使用到post傳值,post傳值是在地址欄中不可見(jiàn)的。

同樣上面例子的代碼我們進(jìn)行修改,html代碼如下:

<html>
   <head>
   </head>

   <body>
       <!-- 這一行method 對(duì)應(yīng)的值改為了post -->
       <form action="reg.php" method="post">
           <input type="text" name="username" />
           <input type="password" name="pwd" />
           <input type="submit" value="提交" />
       </form>
   </body>
</html>

PHP的代碼里面的$_GET全改為了$_POST:

<?php
//$_POST后面加上中括號(hào),將username作為字符串放在中括號(hào)里面,就得到了表單里面的<input type="text" name="username" /> 的值
$u = $_POST['username'];
echo $u.'<br />';

//$_POST['pwd'] 得到表單<input type="text" name="username" /> 的值
$passwd = $_POST['pwd'];
echo $passwd.'<br />';
?>

QQ截圖20161114101322.png

觀察特點(diǎn):
reg.php后的?(問(wèn)號(hào))不見(jiàn)了。后面的username和password也不見(jiàn)了。那他怎么傳遞數(shù)據(jù)的呢?

他是通過(guò)我們看不見(jiàn)的瀏覽器的請(qǐng)求頭文件傳遞的數(shù)據(jù)。所以在URL(網(wǎng)址)欄不可見(jiàn)。

注:附錄中有如何通過(guò)火狐瀏覽器的firebug查看傳遞結(jié)果的演示過(guò)程。這一塊都是HTTP協(xié)議規(guī)定的傳送方式。

除此之外,我們還有$_REQUEST來(lái)接收數(shù)據(jù)?,F(xiàn)在我們這樣處理:

將php代碼段中的$_POST全改為$_REQUEST,代碼如下:

<?php
$u = $_REQUEST['username'];
echo $u.'<br />';

$passwd = $_REQUEST['pwd'];
echo $passwd.'<br />';
?>

把網(wǎng)頁(yè)user.html里面的這一行中的method,改為get執(zhí)行一次,再改為Post再運(yùn)行一次,看看結(jié)果:

       <form action="reg.php" method="post">

通過(guò)上面的實(shí)驗(yàn)?zāi)銜?huì)發(fā)現(xiàn)$_REQUEST即可以接收get傳值也可以接收post傳值。

另外,我們總結(jié)一些外部變量,要求知識(shí)點(diǎn)的學(xué)習(xí)級(jí)別:了解含義,默寫(xiě)這個(gè)單詞的寫(xiě)法和作用。

全局變量名功能說(shuō)明
$_COOKIE得到會(huì)話控制中cookie傳值
$_SESSION得到會(huì)話控制中session的值
$_FILES得到文件上傳的結(jié)果
$_GET得到get傳值的結(jié)果
$_POST得到post傳值的結(jié)果
$_REQUEST即能得到get的傳值結(jié)果,也能得到Post傳值的結(jié)果

請(qǐng)?jiān)儆浺痪湓挘阂陨线@些變量全是超全局的。(以后講解超全局的含義)。


注:

1.我們認(rèn)為從用戶輸入過(guò)來(lái)的所有數(shù)據(jù)都不是可信的。本書(shū)的下半部份會(huì)專(zhuān)門(mén)講解限制和過(guò)濾

2.在提交數(shù)據(jù)的時(shí)候,我們常用的方法有g(shù)et和post??梢赃@樣理解,get傳值在url中可見(jiàn),而post傳值在url中不可見(jiàn)。

而post傳值在url中不可見(jiàn),是通過(guò)瀏覽器的header頭部份將數(shù)據(jù)發(fā)送給指定服務(wù)器的。需要通過(guò)專(zhuān)門(mén)的工具才能看到Post發(fā)送的值為什么。你可以下載火狐瀏覽器(firefox)的插件(firebug)來(lái)查看。

火狐瀏覽器的圖標(biāo):

2015-08-02_55bdb8afd1ac0.png

打開(kāi)firebug:

2015-08-02_55bdb9e922bbd.png

查看header頭傳遞數(shù)據(jù)(網(wǎng)絡(luò),點(diǎn)擊POST reg.php 選擇Post),就看到了傳遞的名字和傳遞的數(shù)據(jù)值:

QQ截圖20161114101734.png

QQ截圖20161114101744.png

1.若真是使用get傳密碼,密碼在地址欄里面顯示過(guò)后。瀏覽器的歷史記錄會(huì)自動(dòng)記錄訪問(wèn)過(guò)的地址。惡意用戶會(huì),可以通過(guò)查看你的瀏覽器的歷史記錄,得到你曾經(jīng)輸入的密碼。因此,不能使用get方式來(lái)作密碼的傳輸方式。

get
讀音:[get]
解釋?zhuān)旱玫?,?jì)算機(jī)里是指一種傳送數(shù)據(jù)的方式

post
讀音:[po?st]
解釋?zhuān)河?jì)算機(jī)里指一種數(shù)據(jù)傳遞方式

request
讀音:[r??kw?st]
解釋?zhuān)赫?qǐng)求

submit
讀音:[s?b?m?t]
解釋?zhuān)禾峤唬仕?/p>

action
讀音:[??k??n]
解釋?zhuān)盒袆?dòng)、活動(dòng)

Weiter lernen
||
<html> <head> </head> <body> <!-- 這一行method 對(duì)應(yīng)的值改為了post --> <form action="reg.php" method="post"> <input type="text" name="username" /> <input type="password" name="pwd" /> <input type="submit" value="提交" /> </form> </body> </html>
einreichenCode zurücksetzen