English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di Base PHP

Tutorial Avanzato PHP

PHP & MySQL

Manuale di riferimento PHP

GET e POST PHP

In questo tutorial, imparerai come inviare informazioni al server utilizzando i metodi HTTP GET e POST e come recuperare informazioni utilizzando PHP.

Metodi per inviare informazioni al server

I browser web utilizzano uno dei due metodi HTTP (HyperText Transfer Protocol) per comunicare con il server (GET e POST). Entrambi i metodi trasmettono informazioni in modi diversi e hanno vantaggi e svantaggi come descritto di seguito.

Metodo GET

Nei metodi GET, i dati vengono inviati come parametri dell'URL, solitamente separati da un trattino obliquo (ampersand) tra nome e valore. Di solito, un URL con dati GET è come segue:

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

La parte in grassetto nell'URL è il parametro GET, mentre la parte in corsivo è il valore di questi parametri. È possibile inserire più parametri=valori collegati con l'ampersand (&) nell'URL. Puoi inviare solo dati di testo semplici tramite il metodo GET.

Vantaggi e svantaggi del metodo GET

  • Poiché i dati inviati con il metodo GET vengono visualizzati nell'URL, è possibile aggiungere una segnalibro alla pagina utilizzando un valore di stringa di ricerca specifico.

  • Il metodo GET non è adatto per trasmettere informazioni sensibili, come nome utente e password, poiché queste informazioni sono completamente visibili nella stringa di ricerca dell'URL e potrebbero essere memorizzate nel memoria del browser del client come pagina di accesso.

  • Poiché il metodo GET assegna i dati alle variabili di ambiente del server, la lunghezza dell'URL è limitata. Pertanto, c'è un limite al numero totale di dati da inviare.

PHP offre la variabile superglobale $_GET per accedere a tutte le informazioni inviate tramite URL o utilizzate tramite il metodo "GET" attraverso un modulo HTML.

<!DOCTYPE html>
<html>
<head>
    <title>Online Esempio PHP Metod 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方法中,数据与处理脚本在单独的通信中作为包发送到服务器。通过POST方法发送的数据在URL中不可见。

使用POST方法的优缺点

  • 它比GET更安全,因为用户输入的信息永远不会在URL查询字符串或服务器日志中可见。

  • 可传递的数据量有更大的限制,并且可以使用POST发送文本数据以及二进制数据(上传文件)。

  • 由于POST方法发送的数据在URL中不可见,因此无法使用特定查询为页面添加书签。

与$_GET类似,PHP提供另一个超全局变量$_POST来访问通过POST方法发送或使用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>

您将在高级部分中了解有关PHP cookie表单处理的更多信息。

注意:超全局变量$_GET,$_POST和$_REQUEST是内置的,在整个脚本的所有作用域中始终可用。