1. php中GET的問題
foreach($_GET as $k=>$v)
{
echo $k . '=' . $v . ' <br /> ';
}
$_GET 是個數組來的 自己需要什麼值就讀取什麼就OK
2. PHP的GET用法
先來解決你的問題,再來詳細討論GET的詳細解釋:
因為你的show.php是GET的目標網頁,那麼就在這個目標網頁中加入如下代碼即可實現你所要求的功能:
echo $_GET['id'];
下面我們針對GET進行一下詳細的解釋來加深你對GET的理解:
GET是網頁傳值常用的一種方式,它能夠將緊跟在域名後第一個問號後的值或者&符號後面的值以GET數組的形式接收進頁面,用幾個實例看一看:
http://www..com/.php?name=4
這個域名就需要在.php中出現這樣的語句就可以取到那個數值4:
$_GET[name];
http://www..com/sosuo.php?id=6&ppt=lost&time=last
在這種情況下,在sosuo.php頁面中加入如下代碼便可以得到三個值:
$_GET[id];//得到數字6
$_GET[ppt];//得到字元串lost
$_GET[time];//得到字元串last
以上的例子就是php中接收GET傳值的方法。
那麼,除了自行寫域名進行傳值以外,還有沒有其它的方法進行GET傳值呢?答案是有的,最為典型的方法是使用form表單,再看下面的例子:
<form action="let.php" method="get" name="form">
<input name="name" type="text" value="12345>" />
<input name="haha" type="submit" value="submit" />
</form>
這是在html中最為常見的一種表單,出現在一些要求用戶輸入的地方,這裡面總計有兩個input,那麼當點擊「submit」這個按鈕之後,表單會自動在域名中生成類似上述例子的寫法:
let.php?name=12345&haha=submit
這個時候,根據上面所講過的方法,想必你一定知道如何使用它了吧?這種方法經常出現在php的頁面傳值中。換個說法,就是兩個頁面之間(或者自身頁面取值)時經常使用的一種傳值方法。
除此之外,還有POST傳值方式、SESSION和COOKIE傳值幾種方法,但除GET和POST之外,其它傳值方式應盡量避免使用。
以上這些都是剛剛接觸php時在頭腦中比較模糊的一些概念,還是建議你進行一下系統的學習,html、域名、js甚至是和其它語言之間進行傳值的方式也將隨著你系統學習的深入漸漸清晰起來。
最後祝你學習成功。
3. PHP中$_GET到底是怎麼回事
POST GET ,是提交表單的兩種方式,GET傳值就用$_GET獲取,POST提交表單就用$_POST
post與get的區別是一個在地址欄顯示參數,另一個不顯示
舉個例子,如果你登錄的時候用get方式,那麼你的值就會在地址欄上顯示,這樣就無安全性可言
而你在搜索或者有頁碼的時候 用post把參數在地址欄上隱藏起來,這樣就毫無意義
而用$_GET可以獲得瀏覽器地址欄上的參數的值(?問號後面的一串字元),比如www..com/s?wd=123,那麼你用$_GET,就可以獲取參數(你可以理解為事件,動作,或者參數,該值在傳遞表單時與input的name一致)為wd的值123,多個參數用&符連接,比如?an=0&si=5理解為an參數的值為0與si參數的值為5。
所以你的代碼$_GET[out]可以這樣理解,用$_GET去獲得瀏覽器地址欄out這個參數的值,因為他的地址是?out=login,所以獲得的值為login
4. php中get和post的區別
1、Get 方法通過 URL 請求來傳遞用戶的數據,將表單內各欄位名稱與其內容,以成對的字元串連接,置於 action 屬性所指程序的 url 後,如[url]http://www.domain.com/test.asp?name=51js&password=51js[/url], 數據都會直接顯示在 url 上,就像用戶點擊一個鏈接一樣;Post 方法通過 HTTP post 機制,將表單內各欄位名稱與其內容放置在 HTML 表頭(header)內一起傳送給伺服器端交由 action 屬性能所指的程序處理,該程序會通過標准輸入(stdin)方式,將表單的數據讀出並加以處理
2、 Get 方式需要使用 Request.QueryString 來取得變數的值;而 Post 方式通過 Request.Form 來訪問提交的內容
3、 Get 方式傳輸的數據量非常小,一般限制在 2 KB 左右,但是執行效率卻比 Post 方法好;而 Post 方式傳遞的數據量相對較大,它是等待伺服器來讀取數據,不過也有位元組限制,這是為了避免對伺服器用大量數據進行惡意攻擊,根據微軟方面的說法,微軟對用 Request.Form() 可接收的最大數據有限制,IIS 4 中為 80 KB 位元組,IIS 5 中為 100 KB 位元組
建議:除非你肯定你提交的數據可以一次性提交,否則請盡量用 Post 方法
4、 Get 方式提交數據,會帶來安全問題,比如一個登陸頁面,通過 Get 方式提交數據時,用戶名和密碼將出現在 URL 上,如果頁面可以被緩存或者其他人可以訪問客戶這台機器,就可以從歷史記錄獲得該用戶的帳號和密碼,所以表單提交建議使用 Post 方法;Post 方法提交的表單頁面常見的問題是,該頁面如果刷新的時候,會彈出一個對話框
建議:出於安全性考慮,建議最好使用 Post 提交數據
***********************************
在B/S應用程序中,前台與後台的數據交互,都是通過HTML中Form表單完成的。Form提供了兩種數據傳輸的方式——get和post。 雖然它們都是數據的提交方式,但是在實際傳輸時確有很大的不同,並且可能會對數據產生嚴重的影響。雖然為了方便的得到變數值,Web容器已經屏蔽了二者的 一些差異,但是了解二者的差異在以後的編程也會很有幫助的。
Form中的get和post方法,在數據傳輸過程中分別對應了HTTP協議中的GET和POST方法。二者主要區別如下:
1、Get是用來從伺服器上獲得數據,而Post是用來向伺服器上傳遞數據。
2、Get將表單中數據的按照variable=value的形式,添加到action所指向的URL後面,並且兩者使用「?」連接,而各個變數之間使用 「&」連接;Post是將表單中的數據放在form的數據體中,按照變數和值相對應的方式,傳遞到action所指向URL。
3、Get是不安全的,因為在傳輸過程,數據被放在請求的URL中,而如今現有的很多伺服器、代理伺服器或者用戶代理都會將請求URL記錄到日誌文件中, 然後放在某個地方,這樣就可能會有一些隱私的信息被第三方看到。另外,用戶也可以在瀏覽器上直接看到提交的數據,一些系統內部消息將會一同顯示在用戶面 前。Post的所有操作對用戶來說都是不可見的。
4、Get傳輸的數據量小,這主要是因為受URL長度限制;而Post可以傳輸大量的數據,所以在上傳文件只能使用Post(當然還有一個原因,將在後面的提到)。
5、Get限制Form表單的數據集的值必須為ASCII字元;而Post支持整個ISO10646字元集。
6、Get是Form的默認方法。
*.Post傳輸數據時,不需要在URL中顯示出來,而Get方法要在URL中顯示。
*.Post傳輸的數據量大,可以達到2M,而Get方法由於受到URL長度的限制,只能傳遞大約1024位元組.
*.Post顧名思義,就是為了將數據傳送到伺服器段,Get就是為了從伺服器段取得數據.而Get之所以也能傳送數據,只是用來設計告訴伺服器,你到底需要什麼樣的數據.Post的信息作為http請求的內容,而Get是在Http頭部傳輸的。
5. PHP中$_get與$get 區別
你是想問$_GET和$_get及$get嗎??
$_GET是php內置的一個全局變數,全局可用,也就是說在函數內部和外部都可以用,不受作用域限制,實際是它裡面存的是個數組,一般用來獲取url中query的相應的值。
$_get 和 $get 都是一般的普通變數,沒有什麼明顯的區別,只能說他們是不同的變數。
6. php中怎麼用get
php面向對象_get(),_set()的用法
一般來說,總是把類的屬性定義為private,這更符合現實的邏輯。但是,對屬性的讀取和賦值操作是非常頻繁的,因此在PHP5中,預定義了兩個函數「__get()」和「__set()」來獲取和賦值其屬性。類似於java中的javabean的操作,使用的方法也類似,只是不需要像javabean中那樣,對每個欄位進行set和get的操作。只需要加上兩個魔術方法即可。即私有成員的設值和取值的操作。
在PHP5中給我們提供了專門為屬性設置值和獲取值的方法,「__set()」和「__get()」這兩個方法,這兩個方法不是默認存在的,而是我們手工添加到類裡面去的,像構造方法(__construct())一樣,類裡面添加了才會存在,可以按下面的方式來添加這兩個方法,當然也可以按個人的風格來添加:
//__set()方法用來設置私有屬性
public function __set($name,$value){
$this->$name = $value;
}
//__get()方法用來獲取私有屬性
public function __get($name){
return $this->$name;
}
__get()方法:這個方法用來獲取私有成員屬性值的,有一個參數,參數傳入你要獲取的成員屬性的名稱,返回獲取的屬性值,這個方法不用我們手工的去調用,因為我們也可以把這個方法做成私有的方法,是在直接獲取私有屬性的時候對象自動調用的。因為私有屬性已經被封裝上了,是不能直接獲取值的,但是如果你在類裡面加上了這個方法,在使用「echo$p1->name」這樣的語句直接獲取值的時候就會自動調用__get($name)方法,將屬性name傳給參數$name,通過這個方法的內部執行,返回我們傳入的私有屬性的值。如果成員屬性不封裝成私有的,對象本身就不會去自動調用這個方法。
__set()方法:這個方法用來為私有成員屬性設置值的,有兩個參數,第一個參數為你要為設置值的屬性名,第二個參數是要給屬性設置的值,沒有返回值。這個方法同樣不用我們手工去調用,它也可以做成私有的,是在直接設置私有屬性值的時候自動調用的,同樣屬性私有的已經被封裝上
了,如果沒有__set()這個方法,是不允許的,比如:$this->name=『zhangsan』,這樣會出錯,但是如果你在類裡面加上了__set($property_name,
$value)這個方法,在直接給私有屬性賦值的時候,就會自動調用它,把屬性比如name傳給$property_name,把要賦的值「zhangsan」傳給$value,通過這個方法的執行,達到賦值的目的。如果成員屬性不封裝成私有的,對象本身就不會去自動調用這個方法。為了不傳入非法的值,還可以在這個方法給做一下判斷。代碼如下:
<?php
class
Person
{
//下面是人的成員屬性,都是封裝的私有成員
private $name; //人的名子
private $sex; //人的性別
private $age; //人的年齡
//__get()方法用來獲取私有屬性
private function
__get($property_name)
{
echo
"在直接獲取私有屬性值的時候,自動調用了這個__get()方法<br>";
if(isset($this->$property_name))
{
return($this->$property_name);
}
else
{
return(NULL);
}
}
//__set()方法用來設置私有屬性
private function
__set($property_name,
$value)
{
echo
"在直接設置私有屬性值的時候,自動調用了這個__set()方法為私有屬性賦值<br>";
$this->$property_name
= $value;
}
}
$p1=newPerson();
//直接為私有屬性賦值的操作,會自動調用__set()方法進行賦值
$p1->name="張三";
$p1->sex="男";
$p1->age=20;
//直接獲取私有屬性的值,會自動調用__get()方法,返回成員屬性的值
echo
"姓名:".$p1->name."<br>";
echo
"性別:".$p1->sex."<br>";
echo
"年齡:".$p1->age."<br>";
?>
程序執行結果:
在直接設置私有屬性值的時候,自動調用了這個__set()方法為私有屬性賦值
在直接設置私有屬性值的時候,自動調用了這個__set()方法為私有屬性賦值
在直接設置私有屬性值的時候,自動調用了這個__set()方法為私有屬性賦值
在直接獲取私有屬性值的時候,自動調用了這個__get()方法
姓名:張三
在直接獲取私有屬性值的時候,自動調用了這個__get()方法
性別:男
在直接獲取私有屬性值的時候,自動調用了這個__get()方法
年齡:20
以上代碼如果不加上__get()和__set()方法,程序就會出錯,因為不能在類的外部操作私有成員,而上面的代碼是通過自動調用__get()和__set()方法來幫助我們直接存取封裝的私有成員的。
7. PHP中獲取GET的值
以前在遠標時做過:加號是js用的啦~~應該這樣組合,用.
$ID = $_GET["id1"] . "," . $_GET["id2"] . "," . $_GET["id3"];
其實很奇怪既然要那種形式為什麼不直接playall.php?id=1,2,3&&a=ok
這樣傳值~~
2種方法..
第一:playall.php?id1=1&id2=2&id3=3&a=ok
處理頁:$ID=$_GET["id1"] . "," . $_GET["id2"] . "," . $_GET["id3"];
第二種:playall.php?id=1,2,3&&a=ok
直接 $ID=$_GET["id"];
8. PHP GET參數特殊符號有什麼規律
這是URI(Uniform Resource Identifier)編碼如果URL中有漢字,就必須編碼後使用
例如,":"字元用十六進制來表示為3A,所以必須使用%3A來表示,"/"字元用十六進制來表示為2F,所以必須使用%2F來表示"/"字元。
一般空格是轉換為加號 漢字以及特殊字元都要根據16進制的內容再在前門加一個%進行轉換
而這裡面分為不同的編碼規則 有GBK、UTF8 所以在編碼的時候要進行設置
下面是一個java獲取字元串編碼的例子
//百分比編碼:獲取某個字元的URL編碼,編碼是用URLEncoder.encode(),解碼是用URLDecoder.decode()函數
Stringtext;
try{
text=URLEncoder.encode("http://.com","iso-8859-1");
System.out.println(text);
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
9. php get返回值問題
這是一個API調用的問題。1.php是請求的發起者,2.php是請求的接受者。1.php可以讀取2.php中的輸出。所以2.php的返回內容需要列印出來。
請看下例:
<?php
#1.php
$r=file_get_contents('2.php?id=123456');
$r=json_decode($r,true);#將json格式的數據轉換為數組
echo$r['foo'];
?>
<?php
#2.php
$id=int($_GET['id']);
$r=array('foo'=>$id*2);
echojson_encode($r);#將數組序列化為字元串,這里使用json格式
10. php __get()方法
先來解決你的問題,再來詳細討論GET的詳細解釋:
因為你的show.php是GET的目標網頁,那麼就在這個目標網頁中加入如下代碼即可實現你所要求的功能:
echo $_GET['id'];
下面我們針對GET進行一下詳細的解釋來加深你對GET的理解:
GET是網頁傳值常用的一種方式,它能夠將緊跟在域名後第一個問號後的值或者&符號後面的值以GET數組的形式接收進頁面,用幾個實例看一看:
http://www..com/.php?name=4
這個域名就需要在.php中出現這樣的語句就可以取到那個數值4:
$_GET[name];
http://www..com/sosuo.php?id=6&ppt=lost&time=last
在這種情況下,在sosuo.php頁面中加入如下代碼便可以得到三個值:
$_GET[id];//得到數字6
$_GET[ppt];//得到字元串lost
$_GET[time];//得到字元串last
以上的例子就是php中接收GET傳值的方法。
那麼,除了自行寫域名進行傳值以外,還有沒有其它的方法進行GET傳值呢?答案是有的,最為典型的方法是使用form表單,再看下面的例子:
這是在html中最為常見的一種表單,出現在一些要求用戶輸入的地方,這裡面總計有兩個input,那麼當點擊「submit」這個按鈕之後,表單會自動在域名中生成類似上述例子的寫法:
let.php?name=12345&haha=submit
這個時候,根據上面所講過的方法,想必你一定知道如何使用它了吧?這種方法經常出現在php的頁面傳值中。換個說法,就是兩個頁面之間(或者自身頁面取值)時經常使用的一種傳值方法。
除此之外,還有POST傳值方式、SESSION和COOKIE傳值幾種方法,但除GET和POST之外,其它傳值方式應盡量避免使用。
以上這些都是剛剛接觸php時在頭腦中比較模糊的一些概念,還是建議你進行一下系統的學習,html、域名、js甚至是和其它語言之間進行傳值的方式也將隨著你系統學習的深入漸漸清晰起來。
最後祝你學習成功。