PHP 菜鳥教程

PHP 高級教程

PHP & MySQL

PHP 參考手冊

PHP GET 和 POST

在本教程中,您將學習如何使用HTTP GET和POST方法將信息發(fā)送到服務器,以及如何使用PHP檢索信息。

向服務器發(fā)送信息的方法

Web瀏覽器通常使用兩種HTTP(超文本傳輸協(xié)議)方法(GET和POST)之一與服務器通信。兩種方法都以不同方式傳遞信息,并且具有不同的優(yōu)點和缺點,如下所述。

GET方法

在GET方法中,數(shù)據(jù)作為URL參數(shù)發(fā)送,通常是由“&”號分隔的名稱和值對字符串&。通常,帶有GET數(shù)據(jù)的URL如下所示:

http://www.example.com/action.php?name=john&age=24

URL中的粗體部分是GET參數(shù),而斜體部分是這些參數(shù)的值。通過連接與號(&),可以在URL中嵌入多個 參數(shù)=值。 只能通過GET方法發(fā)送簡單的文本數(shù)據(jù)。

使用GET方法的優(yōu)缺點

  • 由于GET方法發(fā)送的數(shù)據(jù)顯示在URL中,因此可以使用特定的查詢字符串值對頁面添加書簽。

  • GET方法不適用于傳遞敏感信息,例如用戶名和密碼,因為這些信息在URL查詢字符串中完全可見,并且有可能作為訪問頁面存儲在客戶端瀏覽器的內(nèi)存中。

  • 因為GET方法將數(shù)據(jù)分配給服務器環(huán)境變量,所以URL的長度受到限制。因此,要發(fā)送的總數(shù)據(jù)存在限制。

PHP提供超級全局變量 $_GET 來訪問所有通過URL發(fā)送或使用method="GET"方式通過HTML表單提交的信息。

<!DOCTYPE html>
<html>
<head>
    <title>在線示例 PHP GET 方法</title>
</head>

<?php
if(isset($_GET["name"])){
    echo "<p>Hi, " . $_GET["name"] . "</p>";
}
?>
<form method="get" action="<?php echo $_SERVER["PHP_SELF"];?>">
    <label for="inputName">Name:</label>
    <input type="text" name="name" id="inputName">
    <input type="submit" value="Submit">
</form>

POST方法

在POST方法中,數(shù)據(jù)與處理腳本在單獨的通信中作為包發(fā)送到服務器。通過POST方法發(fā)送的數(shù)據(jù)在URL中不可見。

使用POST方法的優(yōu)缺點

  • 它比GET更安全,因為用戶輸入的信息永遠不會在URL查詢字符串或服務器日志中可見。

  • 可傳遞的數(shù)據(jù)量有更大的限制,并且可以使用POST發(fā)送文本數(shù)據(jù)以及二進制數(shù)據(jù)(上傳文件)。

  • 由于POST方法發(fā)送的數(shù)據(jù)在URL中不可見,因此無法使用特定查詢?yōu)轫撁嫣砑訒灐?/p>

與$_GET類似,PHP提供另一個超全局變量$_POST來訪問通過POST方法發(fā)送或使用method="POST"通過HTML表單提交的所有信息。

<!DOCTYPE html>
<html>
<head>
    <title>在線示例 PHP POST 方法</title>
</head>

<?php
if(isset($_POST["name"])){
    echo "<p>Hi, " . $_POST["name"] . "</p>";
}
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
    <label for="inputName">Name:</label>
    <input type="text" name="name" id="inputName">
    <input type="submit" value="Submit">
</form>

$ _REQUEST 變量

PHP提供了另一個超全局變量$_REQUEST,該變量包含$_GET和$_POST變量的值以及$_COOKIE超全局變量的值。

<!DOCTYPE html>
<html>
<head>
    <title>在線示例 PHP $_REQUEST 變量</title>
</head>

<?php
if(isset($_REQUEST["name"])){
    echo "<p>Hi, " . $_REQUEST["name"] . "</p>";
}
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
    <label for="inputName">Name:</label>
    <input type="text" name="name" id="inputName">
    <input type="submit" value="Submit">
</form>

您將在高級部分中了解有關(guān)PHP cookie表單處理的更多信息。

注意:超全局變量$_GET,$_POST和$_REQUEST是內(nèi)置的,在整個腳本的所有作用域中始終可用。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清