8.8 GET 與 POST

  GET 與 POST 是兩種表單資料的傳遞方式,詳見以下範例。
  GET 使用範例:
send.php
<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <form action="receive.php" method="get">
        姓名:<input type="text" name="name"/><br>
        性別:<input type="radio" name="sex" value="male"/>男
        <input type="radio" name="sex" value="female"/>女
        <br><input type="submit" value="送出"/>
    </form>
</body>
receive.php
<?php
    echo $_GET['name'].", ".$_GET['sex'];
?>
  POST 使用範例:
send.php
<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <form action="receive.php" method="post">
        姓名:<input type="text" name="name"/><br>
        性別:<input type="radio" name="sex" value="male"/>男
        <input type="radio" name="sex" value="female"/>女
        <br><input type="submit" value="送出"/>
    </form>
</body>
receive.php
<?php
    echo $_POST['name'].", ".$_POST['sex'];
?>
  使用 GET 時我們要將 form 元素的 method 屬性值設為 get;相對的,使用 POST 時屬性值就要設為 post。兩個方法的差別在於,GET 會將傳遞的資料放置在網址中,POST 則會將傳遞的資料放置在 HTTP 標頭 (header) 中。故 POST 較 GET 安全且可傳遞的資料量也較大。
  事實上,使用 GET 時在網址中出現的那一串字串就是所謂的 URL 參數,其格式為「原網址?變數一的名稱=變數一的值&變數二的名稱=變數二的值&……」,因此您應該會看到「http://localhost/receive.php?name=YourName&sex=YourSex」。若您在欄位裡輸入中文,由於在傳遞時會經過編碼處理,所以您看到的參數值會有點累似亂碼。
註:POST 的資料大小上限由 php.ini 或 .htaccess 中的 post_max_size 參數決定。
思考:試說明如何間接地將一個 PHP 變數與一個 JavaScript 變數之值相互傳遞。