PHP und HTML interagieren viel: PHP kann HTML generieren und HTML kann Informationen an PHP übergeben. Bevor Sie diese FAQs lesen, müssen Sie lernen, wie Sie Variablen aus externen Quellen abrufen. Die Handbuchseite zu diesem Thema enthält auch viele Beispiele.

Welche Codierung / Dekodierung benötige ich, wenn ich einen Wert über ein Formular/eine URL übergebe?

Es gibt mehrere Stufen, für die die Codierung wichtig ist., Angenommen, Sie haben eine Zeichenfolge $data, die die Zeichenfolge enthält, die Sie nicht codiert weitergeben möchten, sind dies die relevanten Phasen:

  • HTML-Interpretation. Um eine zufällige Zeichenfolge anzugeben, müssen Sie sie in doppelte Anführungszeichen setzen und htmlspecialchars() den gesamten Wert.

  • URL: EINE URL besteht aus mehreren teilen. Wenn Ihre Daten als ein Element interpretiert werden sollen, müssen Sie sie mit urlencode () codieren.,

Beispiel #1 Ein verstecktes HTML-Formularelement

<?php
echo '<input type="hidden" value="' . htmlspecialchars($data) . '" />'."\n";
?>

Hinweis: Es ist falsch, urlencode () $data, da der Browser für urlencode () der Daten verantwortlich ist. Alle gängigen Browser machen das richtig. Beachten Sie, dass dies unabhängig von der Methode (dh GET oder POST) geschieht. Sie werden dies jedoch nur bei GET-Anforderungen bemerken, da POST-Anforderungen normalerweise ausgeblendet sind.,

Hinweis: Die Daten werden wie beabsichtigt im Browser angezeigt, da der Browser die HTML-maskierten Symbole interpretiert. Beim Senden, entweder über GET oder POST, werden die Daten vom Browser zum Übertragen urlencodiert und direkt von PHP urldecodiert. Am Ende müssen Sie also keine Urlencodierung / Urldecodierung selbst durchführen, alles wird automatisch behandelt.,

Beispiel #3 In einer URL

<?php
echo '<a href="' . htmlspecialchars("/nextpage.php?stage=23&data=" .
urlencode($data)) . '">'."\n";
?>

Hinweis: Tatsächlich fälschen Sie eine HTML-GET-Anforderung, daher müssen Sie die Daten manuell urlencode ().

Hinweis: Sie müssen htmlspecialchars() die gesamte URL, da die URL als Wert eines HTML-Attributs auftritt. In diesem Fall löscht der Browser zuerst htmlspecialchars() den Wert und gibt dann die URL weiter. PHP wird die URL richtig verstehen, weil Sie urlencode()d die Daten., Sie werden feststellen, dass die & in der URL durch &amp;ersetzt wird. Obwohl sich die meisten Browser erholen, wenn Sie dies vergessen, ist dies nicht immer möglich. Selbst wenn Ihre URL nicht dynamisch ist, müssen Sie die URL htmlspecialchars ().

ich versuche, eine < – input type=“image“> – tag, aber das $foo.x und $foo.y Variablen sind nicht verfügbar. $_GET existiert auch nicht. Wo sind Sie?,

Beim Senden eines Formulars ist es möglich, ein Bild anstelle der Standardschaltfläche zum Senden mit einem Tag wie zu verwenden:

<input type="image" src="https://www.php.net/manual/en/faq.html.phpimage.gif" name="foo" />

Wenn der Benutzer irgendwo auf das Bild klickt, wird das zugehörige Formular mit zwei zusätzlichen Variablen an den Server übertragen: foo.x und foo.y.

Weil foo.x und foo.y würde ungültige Variablennamen in PHP machen, sie werden automatisch in foo_x und foo_y konvertiert. Das heißt, die Punkte werden durch Unterstriche ersetzt., Sie würden also wie alle anderen im Abschnitt Zum Abrufen von Variablen aus externen Quellen beschriebenen Variablen auf diese Variablen zugreifen. Für Beispiel, $_GET.

Hinweis:

Leerzeichen in Anforderungsvariablennamen werden in Unterstriche konvertiert.

Wie erstelle ich arrays in einem HTML – <form>?,

Um Ihr <Formular> Ergebnis zu erhalten, das als Array an Ihr PHP-Skript gesendet wird, benennen Sie die <Eingabe>, <Wählen Sie> oder <textarea> Elemente wie diese:

<input name="MyArray" /><input name="MyArray" /><input name="MyArray" /><input name="MyArray" />

Beachten Sie die eckigen Klammern nach dem Variablennamen., Sie können die Elemente in verschiedene Arrays gruppieren, indem Sie verschiedenen Elementen denselben Namen zuweisen:

<input name="MyArray" /><input name="MyArray" /><input name="MyOtherArray" /><input name="MyOtherArray" />

Dies erzeugt zwei Arrays, myArray und MyOtherArray, die an das PHP-Skript gesendet werden. Es ist auch möglich, Ihren Arrays bestimmte Schlüssel zuzuweisen:

<input name="AnotherArray" /><input name="AnotherArray" /><input name="AnotherArray" /><input name="AnotherArray" />

Das AnotherArray Array enthält jetzt die Schlüssel 0, 1, email und phone.

Hinweis:

Die Angabe von Array-Schlüsseln ist in HTML optional., Wenn Sie die Schlüssel nicht angeben, wird das Array in der Reihenfolge gefüllt, in der die Elemente im Formular angezeigt werden. Unser erstes Beispiel enthält die Tasten 0, 1, 2 und 3.

Siehe auch Array-Funktionen und Variablen Aus Externen Quellen.

Wie erhalte ich alle Ergebnisse von einem select multiple HTML-Tag?

Mit dem select multiple-Tag in einem HTML-Konstrukt können Benutzer mehrere Elemente aus einer Liste auswählen. Diese Elemente werden dann an den Aktionshandler für das Formular übergeben. Das Problem ist, dass sie alle mit demselben Widget-Namen übergeben werden. I. e.,

<select name="var" multiple="yes">

Jede ausgewählte Option wird im Aktionshandler angezeigt als:

var=option1var=option2var=option3 

Jede Option überschreibt den Inhalt der vorherigen Variablen $var. Die Lösung besteht darin, die Funktion „Array from form element“ von PHP zu verwenden. Folgendes sollte verwendet werden:

<select name="var" multiple="yes">

Dies weist PHP an, $var als Array zu behandeln, und jede Zuweisung eines Werts zu var fügt dem Array ein Element hinzu. Das erste Element wird $var, das nächste $var usw., Die Funktion count () kann verwendet werden, um zu bestimmen, wie viele Optionen ausgewählt wurden, und die Funktion sort () kann verwendet werden, um das Optionsarray bei Bedarf zu sortieren.

Beachten Sie, dass bei Verwendung von JavaScript die für den Elementnamen Probleme verursachen kann, wenn Sie versuchen, auf das Element nach Namen zu verweisen. Verwenden Sie stattdessen die numerische Formularelement-ID oder schließen Sie den Variablennamen in einfache Anführungszeichen ein und verwenden Sie diesen als Index für das Elementarray, z. B.:

variable = document.forms.elements']; 

Wie kann ich eine Variable von Javascript an PHP übergeben?,

Da Javascript (normalerweise) eine clientseitige Technologie und PHP (normalerweise) eine serverseitige Technologie ist und HTTP ein „zustandsloses“ Protokoll ist, können die beiden Sprachen Variablen nicht direkt gemeinsam nutzen.

Es ist jedoch möglich, Variablen zwischen den beiden zu übergeben. Eine Möglichkeit, dies zu erreichen, besteht darin, Javascript-Code mit PHP zu generieren und den Browser selbst aktualisieren zu lassen, wobei bestimmte Variablen an das PHP-Skript zurückgegeben werden. Das folgende Beispiel zeigt genau, wie das geht – es erlaubt PHP-Code, Bildschirmhöhe und-breite zu erfassen, was normalerweise nur auf der Clientseite möglich ist.,

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.