A. 請教大神,php網址參數是怎麼傳遞的
wap.php這個文件叫做單入口文件,就是指所有的文件都要從這個文件進入,參數是等號後面的這個字元串,例如:一般都是通過$_GET['c']的到Group的,c一般是定義了你的文件夾,a一般是定義了你的文件名,也就是Group文件下的index文件
B. 如何在頁面之間傳遞變數
(1)Session
(2)Cookie
(3)Application
(4)URL地址中的參數
(5)通過隱藏欄位來傳遞數據
(6)Server.Transfer
(7)通過序列化對象
(8)........
下面就分別一一介紹:
(1)使用Session
session對象是用來記錄瀏覽器端的變數,是個別瀏覽器端專用的變數,對於每一個瀏覽器訪問時都會自動產生一個seseion對象,該對象提供一個存儲場所,用來存儲僅僅對該訪問者在會話的活動期間打開的網頁可用的變數和對象。這樣就用可以用來在Web間傳遞專對單個瀏覽器端使用的數據。其定義方法:session(「變數名」)=數值
如:Session["testTransmitVaraint"] = "testSession";
session對象所定義的變數只是瀏覽器端的專用變數,所以適用於局部會話間的網頁數據傳遞。
(2)使用Cookie
cookie是在瀏覽頁面時Web伺服器在瀏覽器端所寫入的一些小文件,cookie是存放在瀏覽器端本機磁碟上,而不是存放在服務端的。可以在發送數據時寫入cookie,接收時讀取cookie完成數據在Web頁面間的傳送。
發送頁面
HttpCookie cookie = new HttpCookie("testCookie");
cookie.Value = TextBox1.Text;
Response.SetCookie(cookie);
取Cookie頁
HttpCookie cookie = Request.Cookies["testCookie"];
Response.Write("<br>HttpCookie = " + cookie.Value);
(3)使用Application
application對象是用來記錄整個網站信息的,是記錄不同瀏覽器端共享的變數,無論有幾個瀏覽者同時存取網頁,都只會產生一個application對象實例。用戶可以通過定義application整站共享變數來實現網頁間的數據傳遞。其定義方法是:application(「變數名」)=數值
如:Application["testApplication"] = "testApplication";
application對象所定義的變數對於所有瀏覽端都是可見的,所以其使用場合是所有瀏覽端共享的全局數據傳遞。
(4)使用URL地址中的參數
URL方式是實現Web間數據傳遞最基本的方法,操作簡單,可很方便地實現不同Web頁面間的數據傳遞,但其安全性比較差。將要傳遞的數據附加在網頁地址(URL)後面進行傳遞。如:http://192.168.0.1/testweb.aspx?username=liming,其中?後面所跟著的字元串便是傳遞的數據,=前的是變數名,=後面是數值,可以使用request對象來獲取傳遞的數據。如:request(「username」)。這種方法在傳遞數據過程中其數據內容在URL欄中是顯示的,用戶能看到提交的內容。
以上四種方法的適用范圍:簡單變數如基本的數據類型的數據
(5)使用隱藏欄位來傳遞數據
通過在網頁上製作表單交互區域,用戶在瀏覽器端輸入數據,然後通過form提交到伺服器,在提交後的接受form數據的頁面里就可以接收到相應數據,即form的action頁面中可以使用request對象來接收所傳遞的數據。
如:
發送頁面:
}
接收頁面:request(「UserID」)
利用form頁面的文本框來接收用戶數據的輸入,通過submit按鈕提交後在targetweb頁面中使用request來接收數據。
適用范圍:基本的數據類型的數據,不宜傳遞對象變數等復雜的數據
(6)使用Server.Transfer
這個方法稍微復雜一點,但在頁面間值傳遞中卻是特別有用的,使用該方法你可以在另一個頁面以對象屬性的方式來存取顯露的值,當然了,使用這種方法,你需要額外寫一些代碼以創建一些屬性以便可以在另一個頁面訪問它,但是,這個方式帶來的好處也是顯而易見的。總體來說,使用這種方法是簡潔的同時又是面向對象的。
使用這種方法的整個過程如下:
1,在頁面里添加必要的控制項
2,創建返回值的Get屬性過程
3,創建可以返回表單的按鈕和鏈接按鈕
4,在按鈕單擊事件處理程序中調用Server.Transfer方法轉移到指定的頁面
5,在第二個頁面中,我們就可以使用Context.Handler屬性來獲得前一個頁面實例對象的引用,通過它,就可以使用存取前一個頁面的控制項的值了
此方法的適用范圍:簡單變數如基本的數據類型的數據,復雜變數如結構、類變數、DataSet、DataTable等
具體的事例,請見原代碼。
此方法的適用范圍:簡單變數如基本的數據類型的數據,復雜變數如結構、類變數、DataSet、DataTable等
(7)通過序列化對象
序列化是指將對象實例的狀態存儲到存儲媒體的過程。在此過程中,先將對象的公共欄位和私有欄位以及類的名稱(包括類所在的程序集)轉換為位元組流,然後再把位元組流寫入數據流。在隨後對對象進行反序列化時,將創建出與原對象完全相同的副本。
在面向對象的環境中實現序列化機制時,必須在易用性和靈活性之間進行一些權衡。只要您對此過程有足夠的控制能力,就可以使該過程在很大程度上自動進行。例如,簡單的二進制序列化不能滿足需要,或者,由於特定原因需要確定類中那些欄位需要序列化。
為什麼要使用序列化?最重要的兩個原因是:將對象的狀態保存在存儲媒體中以便可以在以後重新創建出完全相同的副本;按值將對象從一個應用程序域發送至另一個應用程序域。例如,序列化可用於在ASP.NET 中保存會話狀態,以及將對象復制到 Windows 窗體的剪貼板中。它還可用於按值將對象從一個應用程序域遠程傳遞至另一個應用程序域。
關於序列化對象更詳細的介紹,請參見微軟的「.NET 中的對象序列化」
(8)結束語
上述介紹的是網頁間數據傳遞的常用方法,各有千秋。其中URL方式和form方式實現方法簡單,可實現網頁間的簡單數據傳遞,一般為字元串類型,其特點是安全性差,而且必須是連續訪問兩頁面間數據傳遞。Cookie只能存放string類型的數據,如果想要存放更為復雜的數據類型,那麼必須先將其轉換為string類型。Application對象和Session對象操作相對復雜些,瀏覽量非常大的網頁使用時應適量,而且使用結束後盡量清除,否則大量使用有可能會導致伺服器的癱瘓。Session變數的安全性較高,可傳遞專用瀏覽端數據。具體應用決定了數據傳遞方式的選擇,合理數據傳遞方式選擇是Web頁面的設計中的關鍵考慮因素。
C. ASP 兩網頁如何傳遞參數
一、需要傳遞參數的頁面【test1.html】
1234567891011121314<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><HTML><HEAD><TITLE>test1.html</TITLE></HEAD><BODY><FORMMETHOD=POSTACTION="test2.asp">姓名:<INPUTTYPE="text"NAME="username">密碼:<INPUTTYPE="password"NAME="userpassword"><INPUTTYPE="hidden"NAME="hidden_ID"value="123456"><INPUTTYPE="submit"value="提交"></FORM></BODY></HTML>注意:隱藏參數和其他控制項類型不一樣的地方就是類型【TYPE="hidden"】,這是使用的關鍵。
二、接收參數的頁面【test2.asp】
12345678910111213<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><HTML><HEAD><TITLE>test2.asp</TITLE></HEAD><BODY><%response.write"姓名:"&request("username")&""response.write"密碼:"&request("userpassword")&""response.write"隱藏欄位(hidden_ID):"&request("hidden_ID")&""%></BODY></HTML>接收上個頁面傳遞過的隱藏參數和接收其他參數方法是一樣的,都是使用【request("控制項Name")】
按照以上方法即可實現ASP傳遞的參數。
D. html網頁如何傳遞接收地址參數
這個用js稍微處理一下就好了很簡單
實現html頁面的參數傳遞
方法一:
下面是javascrīpt的一種實現方法,這個函數是通過window.location.href中的分割符獲得各個參數。
有了這個函數,就可以在頁面之間傳遞參數了。
/*
*函數功能:從href獲得參數
*sHref:http://www.artfh.com/arg.htm?arg1=d&arg2=re
*sArgName:arg1,arg2
*return:thevalueofarg.d,re
*/
functionGetArgsFromHref(sHref,sArgName)
{
varargs=sHref.split("?");
varretval="";
if(args[0]==sHref)/*參數為空*/
{
returnretval;/*無需做任何處理*/
}
varstr=args[1];
args=str.split("&");
for(vari=0;i<args.length;i++)
{
str=args[i];
vararg=str.split("=");
if(arg.length<=1)continue;
if(arg[0]==sArgName)retval=arg[1];
}
returnretval;
}
方法二:
html地址傳遞參數進行其他事情.
<scrīpt>
/*用途:接收地直欄參數取id=1根據ID的值*/
urlinfo=window.location.href;//獲取當前頁面的url
len=urlinfo.length;//獲取url的長度
offset=urlinfo.indexOf("?");//設置參數字元串開始的位置
newsidinfo=urlinfo.substr(offset,len)//取出參數字元串這里會獲得類似「id=1」這樣的字元串
newsids=newsidinfo.split("=");//對獲得的參數字元串按照「=」進行分割
newsid=newsids[1];//得到參數值
newsname=newsids[0];//得到參數名字
</scrīpt>
方法三:
<SCRIPTLANGUAGE="JavaScript">
functiongetvalue(name){
varstr=window.location.search;//location.search是從當前URL的?號開始的字元串例如:http://www.51job.com/viewthread.jsp?tid=22720它的search就是?
tid=22720
if(str.indexOf(name)!=-1){
varpos_start=str.indexOf(name)+name.length+1;
varpos_end=str.indexOf("&",pos_start);
if(pos_end==-1){
alert(str.substring(pos_start));
}else{
alert("對不起這個值不存在!");
}
}
</SCRIPT>
方法四:
做中英轉換的時候,要准確的獲取參數並取出,所以做了一個簡單的html中用js獲取當取地址欄的一個Object。
裡面有三個方法:
1、request.QueryString("參數")//獲取指定參數,返回字元串;
2、request.QueryStrings();//獲取全部參數,並返回數組;
3、request.setQuery("參數","參數的值");//如果當前地址欄有此參數,那麼將更新此參數,否則返回一個新的地址欄參數字元串。
例如:
當前地址欄參數字元串為:?name=a&site=never_online
alert(request.setQuery("name","blueDestiny"))
如果地址欄參數中有"name",那麼返回?name=blueDestiny&site=never_online
setQuery方法有自動追加參數的功能。如:
當前地址欄參數字元串為:?site=never_online
alert(request.setQuery("name","blueDestiny"))
則返回?site=never_online&name=blueDestiny
同理,如果地址欄沒有參數,也會自動追加參數
alert(request.setQuery("name","blueDestiny"))
返回?name=blueDestiny
<SCRIPTLANGUAGE="JavaScript">
<!--
//author:never-online
//web:never-online.net
varrequest={
QueryString:function(val){
varuri=window.location.search;
varre=newRegExp(""+val+"=([^&?]*)","ig");
return((uri.match(re))?(uri.match(re)[0].substr(val.length+1)):null);
},
QueryStrings:function(){
varuri=window.location.search;
varre=/w*=([^&?]*)/ig;
varretval=[];
while((arr=re.exec(uri))!=null)
retval.push(arr[0]);
returnretval;
},
setQuery:function(val1,val2){
vara=this.QueryStrings();
varretval="";
varseted=false;
varre=newRegExp("^"+val1+"=([^&?]*)$","ig");
for(vari=0;i<a.length;i++){
if(re.test(a[i])){
seted=true;
a[i]=val1+"="+val2;
}
}
retval=a.join("&");
return"?"+retval+(seted?"":(retval?"&":"")+val1+"="+val2);
}
}
alert(request.setQuery("e","b"))
//-->
</SCRIPT>
E. 在網頁中傳遞參數
用session或者ViewState或者QueryString都可以
一般用QueryString的多一點,就是點擊的那個頁面鏈接寫成(原始鏈接 + ? + para1=xxx¶2=xxx¶3=xxx)
然後你那個彈出的網頁就在CS代碼文件里寫
string para1 = Request.QueryString["para1"].ToString();
string para2 = Request.QueryString["para2"].ToString();
string para3 = Request.QueryString["para3"].ToString();
然後PageLoad事件里寫:
string myScript = "NVSViewerCtrl.OpenChannel(para1, para2, para3)";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "MyScript", myScript, true);
然後網頁裡面的<script type="text/jscript" language="javascript">
NVSViewerCtrl.OpenChannel("192.168.1.13", "", 0);
</script> 就可以去掉了。
F. html網頁如何傳遞地址參數
html網頁如何傳遞地址參數:
function GetQueryString(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r!=null)return unescape(r[2]); return null;
}
// 調用方法
例:<script type="text/javascript" src="<%=GetQueryString("id")%>.js"></script>
G. 在自己的網站把參數傳到另一個網站(比如BAIDU)怎麼做
傳參數很簡單的,找到他的url就可以了。
舉個例子吧,比如往網路上傳。「你好」這個參數。
http://www..com/s?wd=你好&tn=ichuner&bar=
提交到這個地址就可以了。不信你在地址欄輸入後回車試試。
所以你可以取到你自己頁面上輸入的參數然後替換掉"你好"就可以完成你的意願了。
注意:上面的url要取全了啊,不止是有下劃線那部分,後面的也一起的。
才子_輝祝您愉快!
H. Get方式如何傳遞參數
在列出post與get的區別:
1.Post傳輸數據時,不需要在URL中顯示出來,而Get方法要在URL中顯示。
2.Post傳輸的數據量大,可以達到2M,而Get方法由於受到URL長度的限制,只能傳遞大約1024位元組.
3.Post顧名思義,就是為了將數據傳送到伺服器段,Get就是為了從伺服器段取得數據.而Get之所以也能傳送數據,只是用來設計告訴伺服器,你到底需要什麼樣的數據.Post的信息作為http請求的內容,而Get是在Http頭部傳輸的。
get和post的區別
1get方式傳遞的參數可以在頁面上看見,So安全性不高,反之post安全性高
2get方式傳遞的速度快。
在後台定義了get,set方法可以直接獲取,不用getParameter("name");
$.get(....) $.ajax(....) $.getJSON(....)3個都是ajax傳遞
只是方式不同。
$.get()是以get方式傳遞到後台
$.ajax()需要你配置傳遞到後台的方式,而且功能比$.get()方法多,建議使用這個方法
$.getJSON()傳遞的是json數據類型
開發經驗表明,兩者最重要的區別是:get不能傳中文,會亂碼,而post就不會出現亂碼問題了
首先看一下get、post的區別 1、 get是把參數數據隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個欄位一一對應,在URL中可以看到。post是通過HTTP post機制,將表單內各個欄位與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。 2、 對於get方式,伺服器端用Request.QueryString獲取變數的值,對於post方式,伺服器端用Request.Form獲取提交的數據。兩種方式的參數都可以用Request來獲得。 3、get傳送的數據量較小,不能大於2KB。post傳送的數據量較大,一般被默認為不受限制。但理論上,因伺服器的不同而異. 4、get安全性非常低,post安全性較高。 5、 <form method="get" action="a.asp?b=b">跟<form method="get" action="a.asp">是一樣的,也就是說,action頁面後邊帶的參數列表會被忽視;而<form method="post" action="a.asp?b=b">跟<form method="post" action="a.asp">是不一樣的。 另外 Get請求有如下特性:它會將數據添加到URL中,通過這種方式傳遞到伺服器,通常利用一個問號?代表URL地址的結尾與數據參數的開端,後面的參數每一個數據參數以「名稱=值」的形式出現,參數與參數之間利用一個連接符&來區分。 Post請求有如下特性:數據是放在HTTP主體中的,其組織方式不只一種,有&連接方式,也有分割符方式,可隱藏參數,傳遞大批數據,比較方便。 總而言之:當我們在提交表單的時候我們通常用post方式,當我們要傳送一個較大的數據文件時,需要用post。當傳遞的值只需用參數方式(這個值不大於2KB)的時候,用get方式即可。
所以對於ajax提交兩者用法自然就明了了
I. 怎樣在網頁之間傳遞參數
有兩種方式一種是將你的標志數據保存到session,cookie,application中 在另一個頁面調用相應的session,cookie,這個對伺服器的壓力壓力比較大。
還有一種是使用response來傳值response.rediect ("你的傳頁面?你要傳的值(注意給個標識例如id =2))
然後再你傳的頁面獲取使用request.quertstring("id")即可