一、用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:
成都創(chuàng)新互聯(lián)公司,專注為中小企業(yè)提供官網(wǎng)建設(shè)、營銷型網(wǎng)站制作、響應(yīng)式網(wǎng)站建設(shè)、展示型網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)等服務(wù),幫助中小企業(yè)通過網(wǎng)站體現(xiàn)價(jià)值、有效益。幫助企業(yè)快速建站、解決網(wǎng)站建設(shè)與網(wǎng)站營銷推廣問題。
?$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)擊,會(huì)發(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"); //注冊(cè)一個(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等等.在此不做過多介紹.
兩種方式可以實(shí)現(xiàn),
1、用js獲取get參數(shù)
url = location.href.toString();
strParam = url.split("?");
然后將獲取到的參數(shù),然后把strParam和iframe的URL拼起來,再dl.php里都$_GET數(shù)組即可
2、用php直接把參數(shù)拼到url路徑里
3、js修改dl.php生成的html代碼
1. get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù)。
2. get是把參數(shù)數(shù)據(jù)隊(duì)列加到提交表單的ACTION屬性所指的URL中,值和表單內(nèi)各個(gè)字段一一對(duì)應(yīng),在URL中可以看到。post是通過HTTP post機(jī)制,將表單內(nèi)各個(gè)字段與其內(nèi)容放置在HTML HEADER內(nèi)一起傳送到ACTION屬性所指的URL地址。用戶看不到這個(gè)過程。
3. 對(duì)于get方式,服務(wù)器端用Request.QueryString獲取變量的值,對(duì)于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 要要提交表單的 地址就不會(huì)出現(xiàn)上面的那種
現(xiàn)在服務(wù)器上配置好郵件,php里面有發(fā)送郵件的函數(shù)sendmail
sendmail('郵件地址','郵件標(biāo)題','郵件內(nèi)容');
?php
if(isset($_POST['time']))
{
echo '您選擇了';
switch($_POST['time'])
{
case 1:
echo '保存一周';
break;
case 2:
echo '保存一個(gè)月';
break;
case 3:
echo '保存三個(gè)月';
break;
}
}
?
form method="post"
label for="a_week"一周/labelinput type="radio" name="time" value="1"/
label for="a_month"一個(gè)月/labelinput type="radio" name="time" value="2"/
label for="three_month"三個(gè)月/labelinput type="radio" name="time" value="3"/
button type="submit"提交/button
/form不知道你具體的需求,從你的描述大概這樣實(shí)現(xiàn)吧
通過session來儲(chǔ)存
?php
session_start();
$_SESSION['username'] = "userName";
?
在其它頁面直接取出就行了
?
session_start();
echo?$_SESSION['username'];
?
通過url傳向其它頁面?zhèn)鬟f參數(shù)
other.php?user=xxx
?或在php重定向到其它頁面時(shí)
$username = "xxx";
$home_url = 'logIn.php?user='.$username;
header('Location:'.$home_url);
其它頁面用$_GET["user"]來接收
3.通過表單向其它頁面?zhèn)魉蛥?shù)
其它頁面用$_POST["user"]來接收