標記行:用<form>表示.這個標記行必須包含action屬性和method屬性,action屬性是給窗體提供另一個程序的url或路徑(可以是當前文件),使該程序可以從窗體中提取并帶走數據.method屬性(get或post)則告訴窗體如何帶走數據(post首選,因為它比較安全,因為它不在url中傳送信息).
窗體的內容,包括輸入字段:輸入字段是用戶輸入信息的區域,就是<input>表單,<textarea>這些東西.輸入的字段必須包含type和name屬性,不過其他的屬性也可以有,但不是必須的.輸入字段的類型最常見的有:text,check box,radio,select,password等.
動作按鈕或圖像,一般用于提交/清理信息.用戶定義的按鈕在技術上也認為是輸入類型:包括:submit,reset,image(經常作為圖片按鈕).
閉標記行:</form>
第一種:通過url傳送變量
例如:http://m.survivalescaperooms.com/news/list.php?id=123&lang=en
id=123就是新聞的參數,而lang=en就表示語言是英文,那么我們可以通過php的$_get來取得id和lang的值,比如說要檢索id的值 只需要$_get['id'] 就能取到id的值,同理 lang也一樣.
通過url傳值的缺點:
1.每個人都能看到變量的值,所以用這種方式傳輸敏感數據并不是安全的.
2.用戶可以隨意修改url中的值,并可以嘗試不同的組合,使打開網站后顯示出我們不希望顯示出來的信息.
3.用戶還可能使用保存已久的url和內嵌其中的舊變量提取不正確的或陳舊信息.
第二種:通過會話中傳送變量
如果說信息不那么敏感,或者信息是靜態的,完全可以使用url傳值,但如果用戶要傳送用戶名,密碼等信息或者傳送地址和電話號碼等個人信息,那最好要在傳送的時候保持私密性.例如可以使用cookie 或者session.(個人想法,因為是重頭重新學習~先說說session).
會話是僅存在瀏覽器關閉前的一組臨時變量.會話信息包括會話id,被授權的個人是否登陸到站點上等.這些信息都是為php臨時存儲的以便在需要時使用.
如果強制用戶使用cookie傳送變量,可以在php.ini里邊設置 session.use_only_cookies=1
另外,在使用會話前應確保php.ini文件已經做好修改,即為:session.save_path顯示有效路徑.接著只需要調用session_start()函數(寫在本頁的所有的輸出語句前),在php中開始一個會話.
例如:文件1,test_1.php
- <?php
- session_start();
- $_session['username']='van';
- $_session['authuser']=1;
- ?>
- <html>
- <head>
- <title>test1</title>
- </head>
- <body>
- <?php
- $myfavmovie=urlencode('life of brian');
- echo "<a href="test2.php?favmovie=$myfavmovie">";
- echo "click here to see information about my favorite movie!";
- echo "</a>";
- ?></body>
- </html>
test2.php
- <?php
- session_start();
- if($_session['authuser']!=1)
- {
- echo "sorry,but you don't have permission to view this page!";
- exit();
- }
- ?>
- <html>
- <head>
- <title>
- my movie site -<?php echo $_get['favmovie'];?></title>
- <body>
- <?php
- echo 'welcome to our site,';
- echo $_session['username'];
- echo '!<br/>';
- ?>
- </html>
第三種:用cookie傳送變量
使用cookie存在潛在的安全風險,黑客可以通過cookie來獲取你在這個web上所留下來的信息,加以利用,所以最好不要把私人信息存儲在計算機上.
由于訪客可能選擇關閉cookie功能,或者選擇刪除計算機中的cookie,所以從開發的角度來看,使用cookie信息并不是最佳的方法,發送 cookie,代碼如下:
- <?php
- $value = "my cookie value";
- // 發送一個簡單的 cookie
- setcookie("testcookie",$value);
- ?>
- <html>
- <body>
- ...
- ...<?php
- $value = "my cookie value";
- // 發送一個 24 小時候過期的 cookie
- setcookie("testcookie",$value, time()+3600*24);
- ?>
- <html>
- <body>
新聞熱點
疑難解答