English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Tutorial lernen Sie, wie Sie Informationen mit den HTTP-GET- und POST-Methoden an den Server senden und wie Sie Informationen mit PHP abrufen.
Webbrowser verwenden in der Regel eine der beiden HTTP-Methoden (GET und POST) zur Kommunikation mit dem Server. Beide Methoden übermitteln Informationen auf unterschiedliche Weise und haben verschiedene Vorteile und Nachteile, wie nachstehend beschrieben.
Bei dem GET-Verfahren werden Daten als URL-Parameter gesendet und normalerweise durch ein Zeichensetzung von Namen und Wertpaaren durchgetrennt. Eine URL mit GET-Daten sieht in der Regel so aus:
http://www.example.com/action.php?name=john&age=24
Der fette Teil der URL ist das GET-Parameter, während der kursivierte Teil der Wert dieser Parameter ist. Durch Verbinden mit dem Ampersand (&) können mehrere Parameter=Werte in der URL eingebettet werden. Es können nur einfache Textdaten mit dem GET-Verfahren gesendet werden.
Da die gesendeten Daten im GET-Verfahren in der URL angezeigt werden, kann eine bestimmte Abfragezeichenfolgestruktur verwendet werden, um die Seite zu einem Lesezeichen hinzuzufügen.
Das GET-Verfahren ist nicht für den Transport sensibler Informationen geeignet, wie Benutzername und Passwort, da diese Informationen vollständig im URL-Abfragezeichenfolge sichtbar sind und möglicherweise im Speicher des Clientbrowsern gespeichert werden können.
Da das GET-Verfahren die Daten den Serverumgebungsvariablen zuweist, ist die Länge der URL begrenzt. Daher gibt es eine Begrenzung für die zu sendenden Gesamtdaten.
PHP bietet den Superglobalen Variable $_GET, um auf alle Informationen zuzugreifen, die über die URL gesendet oder über ein HTML-Formular mit dem Methode="GET"-Wert übermittelt werden.
!DOCTYPE html <html> <head> <title>Online Beispiel PHP GET Methode</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>
Bei der POST-Methode werden die Daten zusammen mit dem Verarbeitungs-Skript in einer separaten Kommunikation an den Server gesendet. Die über POST gesendeten Daten sind in der URL unsichtbar.
Es ist sicherer als GET, da die Informationen der Benutzer niemals in der URL-Abfragezeichenfolge oder im Serverprotokoll sichtbar sind.
Die Datenmenge, die übertragen werden kann, ist begrenzt, und Textdaten sowie binäre Daten (Dateiupload) können über POST gesendet werden.
Da die mit der POST-Methode gesendeten Daten in der URL unsichtbar sind, kann keine bestimmte Suchanfrage verwendet werden, um eine Lesezeichen für die Seite zu erstellen.
Wie $_GET ähnlich bietet PHP eine weitere superglobale Variable $_POST, um auf alle Informationen zuzugreifen, die durch die POST-Methode gesendet oder durch HTML-Formulare mit method="POST" eingereicht werden.
!DOCTYPE html <html> <head> <title>Online-Beispiel PHP POST-Methode</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>
PHP bietet eine weitere superglobale Variable $_REQUEST, die die Werte der Variablen $_GET und $_POST sowie den Wert der superglobalen Variable $_COOKIE enthält.
!DOCTYPE html <html> <head> <title>Online-Beispiel PHP $_REQUEST-Variable</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>
Sie werden im fortgeschrittenen Teil mehr über PHP cookieundFormularverarbeitungMehr Informationen.
Hinweis:Die superglobalen Variablen $_GET, $_POST und $_REQUEST sind integriert und sind in allen Bereichen des Skripts stets verfügbar.