Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie Formularformulare in PHP

So implementieren Sie Formularformulare in PHP

王林
王林nach vorne
2019-08-29 16:22:085209Durchsuche

1. Grundlegende Verwendung von Formularen

HTML verfügt über einen Tag, der speziell zum Senden von Daten verwendet wird: ff9c23ada1bcecdd1a0fb5d5a0f18437, über den Benutzereingaben einfach erfasst werden können.

Das Formular-Tag hat zwei notwendige Attribute:
Aktion: Adresse für die Formularübermittlung (an wen soll es nach dem Ausfüllen gesendet werden)
Methode: So senden Sie das Formular

Beispiel: Wir Sie müssen den Benutzernamen und das Passwort erfassen, die der Benutzer auf der Anmeldeschnittstelle eingegeben hat:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF‐8">
  <title>登录</title>
</head>
<body>
  <form action="login.php" method="post">
    <div>
      <label for="username">用户名</label>
      <input type="text" id="username" name="username">
    </div>
    <div>
      <label for="password">密码</label>
      <input type="password" id="password" name="password">
    </div>
    <button type="submit">登录</button>
  </form>
</body>
</html>

Je nach aktueller Situation fordert der Benutzer diese Formularseite zum ersten Mal an, füllt den Formularinhalt aus, klickt auf „Anmelden“ und Das Formular wird automatisch an login.php gesendet. Das verbleibende Problem besteht darin, zu überlegen, wie der vom Benutzer in login.php übermittelte Inhalt abgerufen werden kann.

Es gibt drei superglobale Variablen in PHP, die speziell zum Abrufen des Formulars verwendet werden Übermittlungsinhalt:
$_GET: Wird verwendet, um Inhalte zu erhalten, die mit der GET-Methode übermittelt wurden
$_POST: Wird verwendet, um Inhalte zu erhalten, die mit der POST-Methode übermittelt wurden
$_REQUEST: Wird verwendet, um Inhalte zu erhalten, die mit der GET- oder POST-Methode übermittelt wurden

Mit Hilfe von $_POST oder $_REQUEST können Sie den über das Formular übermittelten Inhalt erhalten:

<?php
// 获取表单提交的用户名和密码
echo &#39;用户名:&#39; . $_REQUEST[&#39;username&#39;];
echo &#39;密码:&#39; . $_REQUEST[&#39;password&#39;];

1.1. Übermittlungsadresse

Aktion Die Übermittlungsadresse bezieht sich auf das Ausfüllen dieses Formulars. Klicken Sie nach Abschluss auf „Senden“, um die Anforderungsadresse zum Senden der Anforderung festzulegen.
Aus Sicht der Wartungsfreundlichkeit senden wir es im Allgemeinen am häufigsten an die aktuelle Datei und bestimmen dann, ob es sich um eine Formularübermittlungsanforderung in der aktuellen Datei handelt:

<?php
if ($_SERVER[&#39;REQUEST_METHOD&#39;] === &#39;POST&#39;) {
  // 表单提交请求
  }

Darüber hinaus wird dies empfohlen Um $_SERVER['PHP_SELF'] dynamische Erfassung des aktuellen Seitenzugriffspfads zu verwenden, besteht keine Notwendigkeit, den Code aufgrund einer Dateiumbenennung oder einer Anpassung der Website-Verzeichnisstruktur zu ändern:

<!‐‐ 这样写死 action 地址,当文件重命名就需要修改代码 ‐‐>
<form action="/foo/login.php">
  <!‐‐ ... ‐‐>
</form>
<!‐‐ 通过 `$_SERVER[&#39;PHP_SELF&#39;]` 获取路径,可以轻松避免这个问题 ‐‐>
<form action="<?php echo $_SERVER[&#39;PHP_SELF&#39;]; ?>">
  <!‐‐ ... ‐‐>
</form>

1.2 Übermittlungsmethode

Methode Ja Wird zum Festlegen der Formularübermittlungsmethode verwendet. Derzeit kennen wir die beiden gängigsten Formularübermittlungsmethoden: GET und POST.
Aus Sicht der Wirkung können beide Daten an den Server senden, aber die beiden unterscheiden sich stark im Prinzip der Übermittlung:
GET
Die Formulardaten werden über den Parameter ? übergeben URL.
an den Server übergeben. Sie können den übermittelten Inhalt in der Adressleiste sehen.
Die Datenlänge ist begrenzt, da die Länge der URL-Adresse begrenzt ist (2000 Zeichen).
POST
Die Formulardaten werden übergeben zum Anfragetext. Auf der Serverseite können wir es nicht auf der Schnittstelle sehen.
Sie können jede Art von Daten übermitteln, einschließlich Dateien.
Da sie auf der Schnittstelle nicht sichtbar sind und nicht im Browser gespeichert werden, sind sie es sicherer
Welche Methode sollte unter welchen Umständen verwendet werden? Diese Methode muss auf der Grundlage des Geschäftsszenarios und der jeweiligen Merkmale der beiden Methoden entschieden werden. Es gibt keine absolute Antwort, es können nur einige Prinzipien angegeben werden:
Verwenden Sie GET niemals zum Versenden von Passwörtern oder anderen sensiblen Informationen! ! !
Sie sollten klar darüber nachdenken, ob diese Anfrage hauptsächlich dazu dient, etwas zu bekommen oder etwas zu senden

2. Allgemeine Verarbeitung von Formularelementen

Was den Text im Formular betrifft Elementelemente wie Feldtextfelder verwenden direkt den Namensattributwert des Elements als Schlüssel und die vom Benutzer eingegebenen Informationen als Wert und werden an den Server gesendet. Es gibt jedoch einige spezielle Formularelemente, die gesondert berücksichtigt werden müssen:

2.1 Optionsschaltfläche

<!‐‐ 最终只会提交选中的那一项的 value ‐‐>
<input type="radio" name="gender" value="male">
<input type="radio" name="gender" value="female">

2.2 Check-Schaltfläche

<!‐‐ 没有设置 value 的 checkbox 选中提交的 value 是 on ‐‐>
<input type="checkbox" name="agree">
<!‐‐ 设置了 value 的 checkbox 选中提交的是 value 值 ‐‐>
<input type="checkbox" name="agree" value="true">

Wenn Sie mehrere ausgewählte Elemente gleichzeitig einreichen müssen, können Sie dem Namensattribut [] folgen:

https://www.php. net /manual/zh/faq.html.php#faq.html.arrays

<input type="checkbox" name="funs[]" id="" value="football">
<input type="checkbox" name="funs[]" id="" value="basketball">
<input type="checkbox" name="funs[]" id="" value="world peace">

wird schließlich an den Server übermittelt, und was über $_POST empfangen wird, ist ein Indexarray.

2.3. Auswahlfeld

<select name="subject"> 
<!‐‐ 设置 value 提交 value ‐‐>  
<option value="1">语文</option>  
<!‐‐ 没有设置 value 提交 innerText ‐‐>  
<option>数学</option>
</select>

2.4 Datei-Upload

Das Eingabeelement, dessen Typattribut ist Die Datei kann über das Formular „Datei senden“ (Datei hochladen) übergeben werden, und das serverseitige PHP kann die hochgeladenen Dateiinformationen über $ _FILES abrufen.

<?php
// 如果选择了文件 $_FILES[&#39;file&#39;][&#39;error&#39;] => 0
// 详细的错误码说明:http://php.net/manual/zh/features.file‐upload.errors.php
if ($_FILES[&#39;file&#39;][&#39;error&#39;] === 0) {
  // PHP 在会自动接收客户端上传的文件到一个临时的目录
  $temp_file = $_FILES[&#39;file&#39;][&#39;tmp_name&#39;];
  // 我们只需要把文件保存到我们指定上传目录
  $target_file = &#39;../static/uploads/&#39; . $_FILES[&#39;file&#39;][&#39;name&#39;];
  if (move_uploaded_file($temp_file, $target_file)) {
    $image_file = &#39;/static/uploads/&#39; . $_FILES[&#39;file&#39;][&#39;name&#39;];
  }
}

$_FILES ist ebenfalls ein assoziatives Array, der Schlüssel ist der Name des Formulars, der Inhalt ist wie folgt:

array(1) {
  ["avatar"]=>
  array(5) {
    ["name"]=>
    string(17) "demo.jpg"
    ["type"]=>
    string(10) "image/jpeg"
    ["tmp_name"]=>
    string(27) "C:\Windows\Temp\php786C.tmp"
    ["error"]=>
    int(0)
    ["size"]=>
    int(29501)
  }
}

Weitere verwandte Fragen finden Sie auf der chinesischen PHP-Website: PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo implementieren Sie Formularformulare in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:Allgemeine PHP-BefehlszeileNächster Artikel:Allgemeine PHP-Befehlszeile