1. get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù)。
十多年的海陵網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營銷的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整海陵建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“海陵網(wǎng)站設(shè)計(jì)”,“海陵網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
2. get是把參數(shù)數(shù)據(jù)隊(duì)列加到提交表單的ACTION屬性所指的URL中,值和表單內(nèi)各個(gè)字段一一對應(yīng),在URL中可以看到。post是通過HTTP post機(jī)制,將表單內(nèi)各個(gè)字段與其內(nèi)容放置在HTML HEADER內(nèi)一起傳送到ACTION屬性所指的URL地址。用戶看不到這個(gè)過程。
3. 對于get方式,服務(wù)器端用Request.QueryString獲取變量的值,對于post方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。
4. get傳送的數(shù)據(jù)量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。
5. get安全性非常低,post安全性較高。但是執(zhí)行效率卻比Post方法好。
建議:
1、get方式的安全性較Post方式要差些,包含機(jī)密信息的話,建議用Post數(shù)據(jù)提交方式;
2、在做數(shù)據(jù)查詢時(shí),建議用Get方式;而在做數(shù)據(jù)添加、修改或刪除時(shí),建議用Post方式;
get 傳值是網(wǎng)址是 ;xxx=xxxx xxx 是參數(shù)
post 要要提交表單的 地址就不會出現(xiàn)上面的那種
辦法很多:
第一種:GET(就是URL,也就是鏈接上帶有參數(shù)),例子:
1.php(第一個(gè)頁面)
a href="2.php?arr=abc"傳遞get數(shù)組名為arr,值是abc,傳遞到2.php頁面
/a
看到?arr=abc了吧,這就是參數(shù)了,如果有兩個(gè)呢:a href="abc.php?abc=abc123=123"傳遞get數(shù)組名為abc,值是abc
/a
用這個(gè)隔開,當(dāng)然啦,在網(wǎng)頁上看就是
2.php(第二個(gè)頁面)
?php
echo $_GET['abc'];
//輸出傳遞過來的值
-------------------------------------------------------------------------
第二個(gè)辦法是:POST,表單提交,依舊是給例子:
form name="form1" method="post" action="2.php"
method的意思是以post方式提交到2.php,action的意思是動作,method是類型
隨便輸一個(gè):
label
input type="text" name="val" /
input是html的標(biāo)簽,類型是文本域(輸入文字),名字是val(后臺用于接收的名稱)
/label
p
label
input type="submit" name="Submit" value="提交" /
/label
/p
/form
2.php(第二個(gè)頁面)
?php
echo $_POST['val'];
//輸出上一個(gè)頁面提交過來的val文本域的值。
?
-------------------------------------------------------------------------------------------
第三個(gè)辦法是:SESSION,會話。還是給例子(注意,SESSION是全局變量,也就是說,它只要被聲明,在所有頁面都是可用的,前提是你不關(guān)閉網(wǎng)頁或者沒有到SESSION的生命周期。而POST和GET只要php執(zhí)行完畢就會立刻被釋放,也就沒有了。):
1.php
?php
session_start();
//會話開始,這樣你才可以調(diào)用session
$_SESSION['val']='123';
//直接聲明全局變量val的值等于123
echo $_SESSION['val'];
?
a href="2.php"跳轉(zhuǎn)到第二個(gè)頁面去看看。
/a
2.php
?php
session_start();
echo $_SESSION['val'];
//直接輸出全局變量val.
?
--------------------------------------------------------------------------------
最后一個(gè)辦法,cookie。餅干,哈哈不過呢,這個(gè)辦法不好用,因?yàn)閏ookie是存放在客戶端上(也是全局變量),session是存放在服務(wù)器上。這是兩者唯一的不同
然后捏,我也沒用過cookies,所以呢。我只能百度一個(gè)給你咯,調(diào)用辦法一樣的$_COOKIE['名稱']
?php
setcookie("user", "Alex Porter", time()+3600);
//創(chuàng)建一個(gè)名為user的cookie變量,它的值是Alex Porter。它將在一個(gè)小時(shí)以后過期,也就是不能訪問了
echo $_COOKIE['user'];
//你還要刷新一下頁面才可以生效= =。。
?
?
一、用form表單中的hidden隱藏域。這種方法就是把待傳遞的變量用表單的方式再次傳送,比如在用戶登陸后,把他的信息如$username、$id等等信息用表單發(fā)送到下一張網(wǎng)頁,當(dāng)然,很多情況,是諸如text、option等等框體不想再被看到的話,可以采用隱藏的輸入域。下面是一個(gè)實(shí)例,假設(shè)$username是經(jīng)過上頁為驗(yàn)證身份發(fā)送到本頁并且在本頁經(jīng)過驗(yàn)證的變量,想傳遞到下一頁中去,那么可以建立文件test4.PHP:
?$username="張明";?
form method="post" action="test5.php"
input type="hidden" name="username" value="?echo $username?"
input type="submit" name="submit" value="看看"
/form
test5.php:
?echo "你好,$username,歡迎光臨php自學(xué)網(wǎng)!";?
打開apache服務(wù)器,輸入在頁面的按鈕上點(diǎn)擊,會發(fā)現(xiàn)新出的網(wǎng)頁上$username的值已經(jīng)傳送過來了。
當(dāng)然這種方法的弱點(diǎn)是很明顯的,它還要再使用一個(gè)表單,而且在test5.php的網(wǎng)頁上想要刷新的話還要重新發(fā)送,這顯然是不太友好的。
二、使用session。后來,我查找了一些關(guān)于session的文章,覺得這時(shí)傳遞變量的一種非常好的方法。下面通過舉例子來說明:
建立一個(gè)新文件test6.php:
?session_start(); //初始化一個(gè)session
session_register("username"); //注冊一個(gè)session變量
$username="張明"; //要傳遞的變量值
echo "a href=test7.php去看看/a";
?
test7.php:
?session_start(); //初始化一個(gè)session
echo "你好,$username,歡迎光臨php自學(xué)網(wǎng)!";? //顯示傳遞過來的變量
使用這種方法的時(shí)候要注意:?session_start();?應(yīng)該放在文件的最前面,即"?"前面不應(yīng)有任何內(nèi)容,包括空格,這是我調(diào)試多次未成功找出的原因。
這個(gè)變量只能在當(dāng)前打開的瀏覽器中傳遞,若要在新打開的窗口中也能傳遞,剛要按下面的方法來做:
文件:test8.php
?session_start();
session_register("username");
$username="張明";
echo "a href=test7.php?$a=".session_id()." target=_blank去看看/a"; //將當(dāng)前的session的id值傳給下一個(gè)窗口。
?
test7.php
?session_start();
echo "你好,$username,歡迎你的光臨!";?
三,通過cookie
建立文件test9.php
?SetCookie("username","張明");//把username設(shè)置到cookie中去
echo "a href=test5.php target=_blank去看看/a";?
文件test5.php
建立test5.php:
?echo "你好,$username,歡迎你的光臨php自學(xué)網(wǎng)!";?
總結(jié):以上只是一些常用的方法,還有很多的方法,如可以使用數(shù)據(jù)庫,memcache等等.在此不做過多介紹.
可以這樣:
你要在form /form標(biāo)簽里加個(gè)隱藏的表單,如這樣:
table width="531"
tr
th width="50"姓名:/th
th width="144"?php echo $row["name"]?input type="hidden" name="realname" value="?=$row["name"]?" //th!--每個(gè)里面加上這上一個(gè)隱藏的表單,這樣你提交之后就可以在另外一個(gè)頁面獲取值了--
th width="53"性別:/th
th width="90"?php echo $row["sex"]?/th
th width="46"年齡:/th
th width="120"?php echo $row["age"]?/th
/tr
/table
input name="updata" type="submit" value="修改" /
/form
在另外一個(gè)頁面這樣獲取值:
$name=$_POST['realname']; //這樣在test.php頁面就取到人名的值了
其他值同理
使用表單來傳遞,_post它在php只能獲取由表單的 method="post" 時(shí)它才能接受到數(shù)據(jù),
如下代碼:
form?id="form1"?name="form1"?method="get"?action=""
label
input?type="text"?name="cn"?value='獲取到我了'?/
/label
/forma.php頁面
?
if(?$_post?)
{
echo?$_post['cn'];
}
else
{
echo?'沒有獲取到值';
}
?