Formular html-Datenausgabe php. Das einfachste Formular zum Senden von Daten per E-Mail mit HTML und PHP

Um die Übertragung von Daten an den Server über ein Formular zu organisieren, müssen Sie ein HTML-Formular implementieren, in das die Besucher der Website ihre Informationen und den PHP-Code eingeben, um die empfangenen Daten auf dem Server zu akzeptieren und zu verarbeiten.

HTML-Einreichungsformular

Das Formular auf der Seite wird durch Tags gebildet

...
, in denen Feld-Tags zur Eingabe von Textinformationen, Tags für spezielle Komponenten (z. B. eine Combobox), Tags für ein Auswahlfeld und Datei-Upload platziert sind.

* Für HTML5 ist es auch möglich, Formularfeld-Tags nicht innerhalb von Formular-Tags, sondern überall auf der Seite zu platzieren. Gleichzeitig muss für jedes dieser Felder das Attribut „form“ angegeben werden, um festzulegen, mit welcher Form der Übermittlung es interagieren soll.

Die einfachste Formularübermittlung könnte also den folgenden Code enthalten:


Ein Wert:
B-Wert:

Formularelemente und ihre Parameter:

action="myform.php"– Das Attribut „action“ bestimmt, welche PHP-Datei die gesendeten Daten verarbeitet. In diesem Beispiel werden die Daten an die Datei "myform.php" gesendet, die sich im selben Verzeichnis wie die Formularseite befindet. Wenn dieses Attribut nicht explizit angegeben wird, werden die Formulardaten an die Seitenadresse des Formulars selbst gesendet.

method="post"– Der Methodenparameter definiert die POST- oder GET-Datenübertragungsmethode. Mehr dazu im Artikel „Unterschiede zwischen POST- und GET-Methoden“ . Wenn Sie das Attribut nicht explizit angeben, wird standardmäßig die GET-Methode verwendet.

Text "Wert A:" Und "Wert B:" nur zum Zwecke der Gestaltung und Verständlichkeit des Formulars für den Benutzer hinzugefügt. Es ist nicht notwendig, dies für die Datenübertragung hinzuzufügen, aber damit der Benutzer versteht, was er eingeben muss, ist es sinnvoll, es anzugeben.

Stichworte werden verwendet, um verschiedene Formularsteuerelemente zu bilden.

Typ = "Text"– das Attribut „type“ definiert den Typ des Feldes. Je nachdem welcher Typ angegeben ist, wird die Aussehen Element und sein Zweck. Der Wert des Attributs "text" gibt an, dass das Element im Browser als einzeiliges Textfeld angezeigt wird, in das der Benutzer seine Zeichenfolge eingeben kann.

name="daten1"– das Attribut „name“ gibt den Namen bzw. den Index der Daten im vom Server empfangenen Array an. Dies ist ein erforderlicher Parameter, mit dem dann im PHP-Handler auf den übergebenen Wert zugegriffen werden kann. Der Name kann beliebig gewählt werden, bequemer ist es jedoch, wenn dieser Wert eine klare Bedeutung hat.

type="senden"- Schild mit diesem Wert wird der Parameter „Typ“ auf der Seite als Schaltfläche angezeigt. Auf einen Button auf dem Formular kann man übrigens verzichten. Sind beispielsweise Textfelder im Formular vorhanden, kann das Versenden durch einfaches Drücken der „Enter“-Taste auf der Tastatur erfolgen. Aber eine Schaltfläche macht das Formular übersichtlicher.

value="Senden" !}– in diesem Fall (für type="submit") definiert es nur die Beschriftung auf der Schaltfläche. Bei type="text" ist dies beispielsweise der Text, der im Textfeld angezeigt wird.

Als Ergebnis sieht dieser Code auf der Seite in etwa so aus:

Durch Anklicken des Buttons werden die Daten an die angegebene Seite gesendet, und wenn diese vorhanden ist und korrekt funktioniert, werden die Daten verarbeitet.

Verarbeitung der übermittelten HTML-Formulardaten in PHP

Die auf die beschriebene Weise gesendeten Daten werden in den superglobalen Arrays $_POST, $_GET und $_REQUEST abgelegt. $_POST oder $_GET enthalten Daten, je nachdem, welche Methode gesendet wurde. $_REQUEST enthält übermittelte Daten durch eine der angegebenen Methoden.

$_POST, $_GET und $_REQUEST sind assoziative Arrays, deren Indexfelder mit den "name"-Attributen der Tags übereinstimmen . Um mit Daten in der Datei myform.php zu arbeiten, können Sie dementsprechend die Werte der Elemente eines solchen Arrays Variablen zuweisen, indem Sie den Feldnamen als Index angeben:

// für GET-Methode
$a = $_GET[ "Daten1" ];
$b = $_GET[ "Daten2"];

// für die POST-Methode
$a = $_POST[ "Daten1" ];
$b = $_POST[ "Daten2"];

// mit irgendeiner Methode
$a = $_REQUEST[ "Daten1" ];
$b = $_REQUEST[ "Daten2"];

Überprüfung der Ausfüllung von Formularfeldern

Manchmal müssen Sie beim Empfangen von Daten überprüfen, ob der Benutzer ein leeres Formular gesendet hat. Sie können dafür die leere Funktion verwenden.

if (leer ($_REQUEST["data1" ])) (
Echo "Das Feld ist nicht ausgefüllt";
} anders(
Echo „Das Feld war gefüllt“;
$a = $_REQUEST[ "Daten1" ];
}

Normalerweise ist diese Lösung ausreichend. Wenn Sie Text eingeben müssen, wird deutlich, ob er eingegeben wird oder nicht. Wenn der Benutzer jedoch absichtlich Null für die Berechnung eingibt, zeigt die leere Funktion, dass kein Wert vorhanden ist. Daher ist es für solche Situationen besser, die Isset-Funktion zu verwenden. Es wird explizit geprüft, ob der Wert gesetzt ist oder nicht.

if (isset ($_REQUEST["data1" ])) (
Echo „Das Feld war gefüllt“;
$a = $_REQUEST[ "Daten1" ];
} anders(
Echo "Das Feld ist nicht ausgefüllt";
}

Eine der häufigsten Aufgaben in der Praxis ist die Implementierung eines Feedback-Formulars. Tobish schreibt seinen HTML-Code, gestaltet ihn in CSS, PHP-Erstellung ein Skript, das die vom Benutzer erhaltenen Daten verarbeitet und an unsere Mail sendet, ein JS-Skript schreibt, das das Formular auf die Angemessenheit der Eingabedaten überprüft, unseren Nachwuchs vor Spam schützt, damit unser Postfach nicht vor Bot-Angriffen zusammenbricht .

Alle oben genannten Punkte werden in unserem Review berücksichtigt und ausführlich kommentiert.

Beginnen wir also mit der Erstellung eines Feedback-Formulars:

HTML

Zuerst schreiben wir HTML-Code, der die Felder festlegt, die der Benutzer ausfüllen wird. Sie werden in Zukunft entwickelt. Der Formularcode sieht so aus:

< form method= "post" action= "mail.php" > < div class = "left" > < label for = "name" >Name: < input maxlength= "30" type= "text" name= "name" /> < label for = "phone" >Telefon: < input maxlength= "30" type= "text" name= "phone" /> < label for = "mail" >Email: < input maxlength= "30" type= "text" name= "mail" /> < div class = "right" > < label for = "message" >Nachricht: < textarea rows= "7" cols= "50" name= "message" > < input type= "submit" value= "Schicken" />

Und optisch sieht es jetzt so aus:

Ich stimme zu, bis jetzt ist alles hässlich und nichts ist klar, aber wir haben gerade erst begonnen.

Betrachten Sie den obigen Code im Detail:

  • < form method= "post" action= "mail.php" > …


    Um ein Formular zu erstellen, müssen Sie das Form-Tag verwenden. Er bestimmt Anfang und Ende des Formulars für den Codeinterpreter. Es hat, wie jedes Tag, eine ganze Reihe von Attributen, aber es sind nur zwei erforderlich, damit das Formular funktioniert, das sind method (die Methode zum Senden einer Anfrage an den Server, post wird standardmäßig für Formulare verwendet) und action (gibt an der Pfad zur Form-Handler-Datei, nämlich in dieser Datei wird ein PHP-Skript enthalten sein, das uns dann die vom Benutzer eingegebenen Werte per Mail zusendet, in unserem Fall sehen wir, dass diese Datei mail.php heißt und es befindet sich im selben Site-Verzeichnis wie die Seite, die wir in Betracht ziehen).
  • < input maxlength= "30" type= "text" name= "name" />


    Als nächstes haben wir Eingaben. Dies sind eigentlich die Formularfelder selbst, in die Benutzer die von uns benötigten Informationen eingeben (type = "text" gibt an, dass es sich um Text handelt). Das Attribut maxlength gibt an, wie viele Zeichen der Benutzer in das angegebene Formularfeld eingeben kann. Das wichtigste Attribut ist Name – es gibt den Namen eines bestimmten Felds an. Unter diesen Namen verarbeitet das PHP-Skript die eingehenden Informationen weiter. Falls gewünscht, können Sie auch das Platzhalterattribut festlegen, das Text innerhalb des Felds anzeigt, der verschwindet, wenn der Cursor darin platziert wird. Ein Problem mit dem Platzhalter ist, dass er von einigen älteren Browsern nicht unterstützt wird.
  • < label for = "name" >Name:


    Wird verwendet, wenn wir Platzhalter aufgegeben haben. Die übliche Feldbezeichnung, das Attribut for, gibt an, auf welches Feld sich die angegebene Bezeichnung bezieht. Der Wert gibt uns den Namen des Interessengebietes an.
  • < textarea rows= "7" cols= "50" name= "message" >


    Genauso wie die Eingabe ist es für den Benutzer gedacht, Informationen einzugeben, nur ist dieses Mal das Feld für lange Nachrichten zugespitzt. Zeilen gibt die Größe des Feldes in Zeilen, Spalten in Zeichen an. Im Allgemeinen legen sie die Höhe und Breite unseres Feldes fest.
  • < input type= "submit" value= "Schicken" />


    Type="submit" teilt uns mit, dass dies eine Schaltfläche zum Absenden des Formulars ist, und value gibt den Text an, der in dieser Schaltfläche enthalten sein wird.
  • < div class = "right" >


    dient nur der weiteren visuellen Gestaltung des Formulars.

css

Damit unser Feedback-Formular präsentabel aussieht, muss es gestaltet werden. Um das folgende Ergebnis zu erhalten:

Wir haben diesen Code verwendet:

form ( Hintergrund: #f4f5f7; Padding: 20px; ) form . links, Formular. rechts (Anzeige: Inline-Block; vertikal ausrichten: oben; Breite: 458px; ) Formular . right ( padding- left: 20px; ) label ( display: block; font-size: 18px; text- align: center; margin: 10px 0px 0px 0px; ) input, textarea ( border: 1px solid #82858D; padding: 10px; Schriftgröße: 16px; Breite: 436px; ) Textbereich (Höhe: 98px; Rand unten: 32px; ) Eingabe[ type= "submit" ] (Breite: 200px; Float: rechts; Rand: keiner; Hintergrund: #595B5F; Farbe: #fff; Texttransformation: Großbuchstaben; )

Ich sehe keinen Sinn darin, CSS im Detail zu beschreiben, ich lenke Ihre Aufmerksamkeit nur auf die wichtigsten Punkte:

  1. Es ist nicht notwendig, für jedes Tag im Formular ein Design zu schreiben. Versuchen Sie, Ihre Selektoren so aufzubauen, dass Sie alle benötigten Elemente in ein paar Codezeilen formatieren können.
  2. Verwenden Sie keine zusätzlichen Tags nach Typ, um Zeilen zu unterbrechen und Einzüge zu erstellen < br>, < p> usw., diese Aufgaben erledigt CSS perfekt mit der Eigenschaft display: block und margin with padding. Mehr darüber, warum Sie es nicht verwenden sollten < br> Im Layout können Sie im Allgemeinen das br-Tag im Artikel lesen, aber wird es wirklich benötigt? .
  3. Verwenden Sie kein tabellarisches Layout für Formulare. Dies widerspricht der Semantik dieses Tags, und Suchmaschinen lieben semantischen Code. Um die visuelle Struktur des Dokuments zu bilden, reichen uns div-Tags und die in CSS gesetzten display: inline-block properties (ordnet Blöcke in einer Reihe an) und vertical-align: top (verhindert, dass sie sich über den Bildschirm ausbreiten ), stellen wir ihnen die gewünschte Höhe ein und voila, nichts überflüssiges und alles ist so angeordnet, wie wir es brauchen.

Für diejenigen, die ihre Zeit bei der Gestaltung von Websites sparen möchten, kann ich Ihnen raten, beim Erstellen von Websites, insbesondere von selbst geschriebenen, CSS-Frameworks zu verwenden. Meine Wahl in dieser Hinsicht ist Twitter Bootstrap. Eine Lektion zum Entwerfen von Formularen kann angezeigt werden.

PHP

Nun, es ist an der Zeit, unser Formular funktionsfähig zu machen.

Wir gehen in unser Root-Verzeichnis der Seite und erstellen dort die Datei mail.php, zu der wir zuvor den Pfad im action-Attribut des form-Tags angegeben haben.

Letztendlich sieht sein Code so aus:

Ihre Nachricht wurde erfolgreich gesendet \" javascript: history.back()\" >Zurück

" ; if (! leer ($_POST [ "name" ] ) und ! leer ($_POST [ "telefon" ] ) und ! leer ($_POST [ "mail" ] ) und ! leer ($_POST [ "nachricht" ] ) ) ( $name = trim (strip_tags ($_POST [ "name" ] ) ) ) ; $phone = trim (strip_tags ($_POST [ "phone" ] ) ) ; $mail = trim (strip_tags ($_POST [ "mail" ] ] ) ) ; $message = trim (strip_tags ($_POST [ "message" ] ) ) ; mail (, , "An Sie gesendet: " . $name . "
Seine Nummer: „ . $phone .“
Seine Mail: " . $mail . "
Seine Botschaft: „
. $nachricht , ) ; Echo "Ihre Nachricht wurde erfolgreich gesendet!
Sie erhalten in Kürze eine Antwort
$zurück"
; Ausfahrt; ) sonst ( Echo ; Beenden ; ) ?>

Sie können die Diskussion der HTML- und CSS-Teile dieses Dokuments überspringen. Im Kern ist dies eine normale Seite der Website, die Sie nach Ihren Wünschen und Bedürfnissen gestalten können. Betrachten wir den wichtigsten Teil davon - das PHP-Skript zur Verarbeitung des Formulars:

$zurück = "

\" javascript: history.back()\" >Zurück

" ;

Mit dieser Zeile erstellen wir einen Link, um zur vorherigen Seite zurückzukehren. Da wir vorher nicht wissen, von welcher Seite der Nutzer auf diese gelangt, geschieht dies über eine kleine JS-Funktion. In Zukunft werden wir einfach auf diese Variable verweisen, um sie an den Stellen anzuzeigen, die wir brauchen.

if (! leer ($_POST [ "name" ] ) und ! leer ($_POST [ "telefon" ] ) und ! leer ($_POST [ "mail" ] ) und ! leer ($_POST [ "nachricht" ] ) ) ( // interner Teil des Handlers) Sonst (echo "Bitte füllen Sie alle Felder aus, um eine Nachricht zu senden! $zurück "; Ausfahrt; )

Hier befestigen wir die Formularprüfung für die Fülle der Felder. Wie Sie erraten haben, schreiben wir im $_POST["name"]-Teil den Wert des Namensattributs unserer Eingaben in Anführungszeichen.

Wenn alle Felder ausgefüllt sind, beginnt das Skript mit der Verarbeitung der Daten in seinem internen Teil, aber wenn mindestens ein Feld nicht ausgefüllt wurde, wird auf dem Bildschirm des Benutzers eine Nachricht mit der Aufforderung angezeigt, alle Felder auszufüllen des Formulars echo "Um eine Nachricht zu senden, füllen Sie alle Felder aus! $back" und einen Link, um zur vorherigen Seite zurückzukehren, die wir mit der allerersten Zeile erstellt haben.

Fügen Sie es als Nächstes in das Innere des Formularhandlers ein:

$name = trim (strip_tags ($_POST [ "name" ] ) ) ; $phone = trim (strip_tags ($_POST [ "phone" ] ) ) ; $mail = trim (strip_tags ($_POST [ "mail" ] ) ) ; $message = trim (strip_tags ($_POST [ "message" ] ) ) ;

Daher haben wir die Benutzereingabe von HTML-Tags und zusätzlichen Leerzeichen gelöscht. Dadurch können wir uns davor schützen, bösartigen Code in an uns gesendeten Nachrichten zu erhalten.

Kontrollen können kompliziert sein, aber es liegt an Ihnen. Den minimalen Schutz haben wir serverseitig bereits eingestellt. Den Rest erledigen wir clientseitig mit JS.

Ich empfehle nicht, den serverseitigen Formularschutz zugunsten von JS komplett aufzugeben, denn obwohl es äußerst selten vorkommt, gibt es einzelne Personen mit deaktiviertem JS im Browser.

Fügen Sie nach dem Reinigen der Tags die folgende Nachricht hinzu:

mail ( "[email protected]", "E-Mail von your_site_address", "Hat dir geschrieben: " . $name . "
Seine Nummer: „ . $phone .“
Seine Mail: " . $mail . "
Seine Botschaft: „
. $nachricht , "Inhaltstyp:text/html;charset=windows-1251") ;

Es ist diese Linie, die mit der Bildung und dem Senden einer Nachricht an uns beschäftigt ist. Es wird wie folgt ausgefüllt:

  1. "[email protected]" - fügen Sie hier Ihre E-Mail zwischen Anführungszeichen ein
  2. "E-Mail von your_site_address" ist der Betreff der Nachricht, die an die E-Mail gesendet wird. Hier kannst du alles schreiben.
  3. "Hab dir geschrieben: ".$name." < br /> Seine Nummer ist: ".$phone." < br /> Seine Mail: ".$mail." < br /> Seine Nachricht: ".$message - wir bilden den Text der Nachricht selbst. $name - wir fügen die vom Benutzer ausgefüllten Informationen ein, indem wir auf die Felder aus dem vorherigen Schritt zugreifen, in Anführungszeichen beschreiben wir, was dieses Feld mit dem Tag bedeutet < br /> Wir machen einen Zeilenumbruch, damit die Nachricht als Ganzes lesbar ist.
  4. Content-type:text/html;charset=windows-1251 - Am Ende steht eine explizite Angabe des in der Nachricht übermittelten Datentyps und dessen Kodierung.

WICHTIG!

Die im "Kopf" des Dokuments angegebene Kodierung ( < meta http- equiv= "Content-Type" content= "text/html; charset=windows-1251" /> ), die Codierung aus der Nachricht Content-type:text/html;charset=windows-1251 und im Allgemeinen die Codierung der PHP-Datei müssen übereinstimmen, andernfalls werden in den per E-Mail erhaltenen Nachrichten anstelle von russischen oder englischen Buchstaben „verrückte Wörter " wird Angezeigt werden.

Viele Leute geben die Codierung der gesendeten Nachricht nicht explizit an, aber dies kann in Zukunft bei einigen Mail-Clients zu Problemen führen (unlesbare Briefe kommen in der Mail an), daher empfehle ich, sie trotzdem anzugeben.

Prüfung des Formulars auf Angemessenheit der Eingabedaten

Damit Nutzer die Felder nicht versehentlich übersehen und alles korrekt ausfüllen, lohnt es sich, die Eingabedaten zu überprüfen.

Dies kann sowohl in PHP auf der Serverseite als auch in JS auf der Clientseite erfolgen. Ich verwende die zweite Option, weil eine Person auf diese Weise sofort herausfinden kann, was sie falsch gemacht hat, und den Fehler ohne zusätzliche Seitenübergänge korrigieren kann.

Der Skriptcode wird in dieselbe Datei eingefügt, in der sich der HTML-Teil des Formulars befindet. Für unseren Fall sieht das so aus:

< script>function checkForm(form) ( var name = form. name. value; var n = name. match(/ ^[ A- Za- zA- Za-z] * [ A- Za- zA- Za-z] + $/ ) ; if (! n) ( alarm( "Der Name wurde falsch eingegeben, bitte korrigieren Sie den Fehler") ; falsch zurückgeben ; ) var Telefon = Form. Telefon. Wert; var p = Telefon. match(/ ^[ 0 - 9 + ] [ 0 - 9 - ] * [ 0 - 9 - ] + $/ ) ; if (! p) ( alert( "Telefonnummer falsch eingegeben") ; falsch zurückgeben ; ) var mail = formular. Post. Wert; var m = mail . match(/ ^[ A- Za- z0- 9 ] [ A- Za- z0- 9 \. _- ] * [ A- Za- z0- 9 _] *@ ([ A- Za- z0- 9 ] + ([ A- Za- z0- 9 - ] * [ A- Za- z0- 9 ] + ) * \. ) + [ A- Za- z] + $/ ) ; if (! m) ( alert( "Eingegebene E-Mail ist falsch, bitte korrigieren Sie den Fehler") ; falsch zurückgeben ; ) true zurückgeben; )

So, jetzt die übliche Analyse:

Dafür, damit wir es validieren lassen, wenn Sie auf die Schaltfläche „Senden“ des Formulars klicken Wir hängen den Start unseres Skripts an das Form-Tag:

< form method= "post" action= "mail.php" onSubmit= "return checkForm(this)" >

Nun nehmen wir Punkt für Punkt die Zusammensetzung des Schecks:


Wie Sie sehen, wird für jedes unserer Felder ein solcher Mini-Check geschrieben. Ich habe die Überprüfung für ein Feld im Screenshot mit einem roten Quadrat hervorgehoben, für andere Felder hat es eine ähnliche Struktur, und wenn Sie ein Feld hinzufügen oder entfernen müssen, können Sie dies jetzt ganz einfach tun.

Interaktive Websites akzeptieren Eingaben von Benutzern. Eine gängige Methode, Eingaben zu erhalten, sind Formulare.

In diesem Lernprogramm erfahren Sie, wie Sie ein Formular erstellen und Eingaben auf dem Server verarbeiten.

Beim Erstellen eines Formulars sind zwei wichtige Attribute beteiligt: Aktion Und Methode.

Aktion Wird verwendet, um die URL einzugeben, an der das Formular gesendet wird. Dies kann eine PHP-Datei sein, die Eingaben verarbeitet. Methode Kann "post" oder "get" sein, was verschiedene Methoden zum Übergeben von Daten sind. Im Moment müssen Sie sich nicht mit den Unterschieden zwischen diesen Methoden befassen; die „get“-Methode sendet die Daten über eine URL, und die „post“-Methode sendet sie als Datenblock über den Standardeingabedienst (STDIN). Im letzten Tutorial, das wir durchgegangen sind, haben wir gesehen, wie Daten über eine URL mit $_GET abgerufen werden. In diesem Tutorial sehen wir uns an, wie die über die "Post"-Methode gesendeten Daten empfangen werden.

HTML-Seite mit Formular

Die Formularseite muss keine PHP-Datei sein (kann es aber sein). Es muss sich nicht einmal auf derselben Site befinden wie die Datei, die die Daten empfängt.

In unserem ersten Beispiel betrachten wir ein sehr einfaches Formular mit einem einzelnen Textfeld:

Form

Gib deinen Namen ein

Das folgende Formular wird im Browser angezeigt:

Jetzt kommt der spaßige Teil: Daten mit PHP abrufen und verarbeiten.

Formulardaten mit PHP anfordern

Wenn Sie Daten anfordern müssen, die über ein Formular übermittelt werden (unter Verwendung der Post), verwenden Sie $_POST :

$_POST["Feldname"];

die den Wert des Formularfelds zurückgibt. Versuchen wir das mal an einem Beispiel.

Lassen Sie uns zunächst wie zuvor eine Seite mit einem Formular erstellen. Dann erstellen wir eine PHP-Seite (Handler) „handler.php“ (beachten Sie, dass dies der Name der Seite ist, die wir im Attribut aufgezeichnet haben Aktion in unserer

).

Die Datei "handler.php" enthält:

Form Echo "

"; ?>

Benutzereingaben und Bedingungen

Im folgenden Beispiel versuchen wir, Benutzereingaben zu verwenden, um Bedingungen zu erstellen. Zuerst brauchen wir ein Formular:

Form

Was ist Ihr Name:

Deine Lieblingsfarbe: Rot Grün Blau

Im Browser sieht das so aus:

Wir verwenden diese Eingaben nun, um eine Seite zu erstellen, die die Hintergrundfarbe basierend auf Benutzereingaben automatisch ändert. Dies geschieht durch die Erstellung einer Bedingung (siehe Lektion ), die die vom Benutzer in das Formular eingegebenen Daten verwendet.

$strHeading = "

Hallo, " . $_POST["Benutzername"] . "

"; Schalter ($_POST["Lieblingsfarbe"]) ( case "r": break; Fall "g"; brechen; Fall "b": Pause; Standard: Unterbrechung; ) ?> Form

Der Hintergrund ist weiß, es sei denn, der Benutzer gibt eine bevorzugte Farbe auf dem Formular an. Dies wird durch Setzen des Wertes erreicht Standard(Standard), die angewendet wird, wenn keine der Bedingungen erfüllt ist.

Aber was passiert, wenn der Benutzer seinen Namen nicht angibt? Dann wird der Titel nur "Hallo," sein. Lassen Sie uns eine zusätzliche Bedingung erstellen, um diese Option zu ändern.

$strBenutzername = $_POST["Benutzername"]; if ($strBenutzername != "") ( $strHeading = "

Hallo, " . $_POST["Benutzername"] . "

"; ) anders ( $strHeading = "

Hallo Fremder!

";
} Schalter ($_POST["Lieblingsfarbe"]) ( Fall "r": $strBackgroundColor = "rgb(255,0,0)"; brechen; Fall "g"; $strBackgroundColor = "rgb(0,255,0)"; brechen; Fall "b": $strBackgroundColor = "rgb(0,0,255)"; brechen; Standard: $strBackgroundColor = "rgb(255,255,255)"; brechen; ) ?> Form

Im obigen Beispiel verwenden wir die Bedingungen für Schecks Informationen vom Benutzer. In diesem Fall ist es nicht so wichtig, wenn der Benutzer keinen Namen angibt. Da Ihr Code jedoch immer komplexer wird, ist es wichtig, dass Sie die Option berücksichtigen, dass der Benutzer überhaupt keine Formulare ausfüllt.

Beispiel: Kontaktformular

Basierend auf Ihren Kenntnissen in PHP und Formularen können Sie mithilfe der Mail-Funktion ein Kontaktformular erstellen, das die folgende Syntax hat:

Post (wo, Betreff, Nachricht);

Lassen Sie uns zunächst ein einfaches HTML-Formular erstellen:

Kontakt Formular

Kontakt Formular

Thema:

Nachricht:

Dann benötigen Sie ein PHP-Skript, um Benutzereingaben zu senden:

Funktionen // Empfänger (Änderung Ihrer E-Mail-Adresse) $strEmail = " [E-Mail geschützt]"; // Benutzereingaben abrufen $strSubject = $_POST["subject"]; $strMessage = $_POST["Nachricht"]; mail($strEmail,$strSubject,$strMessage); echo "Mail gesendet."; ?>

Beachten Sie, dass das Beispiel nur funktioniert, wenn Sie Zugriff auf den Mailserver haben. Dies ist in XAMPP und den meisten freien Hosts standardmäßig nicht der Fall. Daher erfordern einige Hosts möglicherweise einen Formularheader, der mit einem zusätzlichen Parameter ausgeführt wird:

Post ("[email protected]", "Test", "Dies ist eine Testnachricht", "Von: [email protected]");

Eine der größten Stärken von PHP ist die Zusammenarbeit mit HTML-Formularen. Der Schlüssel hier ist, dass jedes Formularelement automatisch Ihren PHP-Programmen zur Verfügung gestellt wird. Weitere Informationen zur Verwendung von Formularen in PHP finden Sie im Abschnitt. Hier ist ein Beispiel für ein HTML-Formular:

Beispiel #1 Die einfachste Form von HTML

Ihr Name:

Ihr Alter:

An dieser Form ist nichts Besonderes. Dies ist ein normales HTML-Formular ohne spezielle Tags. Wenn der Benutzer das Formular ausfüllt und auf die Schaltfläche „Senden“ klickt, wird die Seite „action.php“ aufgerufen. Diese Datei könnte Folgendes enthalten:

Beispiel #2 Rendern von Formulardaten

Guten Tag, .
Für dichJahre.

Beispielausgabe dieses Programms:

Hallo Sergej. Du bist 30 Jahre alt.

Wenn Sie Codestücke nicht mit berücksichtigen htmlspecialchars() Und (int), sollte das Funktionsprinzip dieses Codes einfach und klar sein. htmlspecialchars() stellt sicher, dass "spezielle" HTML-Zeichen richtig kodiert werden, sodass kein schädliches HTML oder Javascript in Ihre Seite eingefügt wird. Das Altersfeld, von dem wir wissen, dass es eine Zahl sein muss, können wir einfach umwandeln ganze Zahl, wodurch unerwünschte Zeichen automatisch entfernt werden. PHP kann dies mit der Filtererweiterung auch automatisch erledigen. Die Variablen $_POST["name"] und $_POST["age"] werden von PHP automatisch für Sie gesetzt. Früher haben wir das superglobale $_SERVER verwendet, aber hier verwenden wir auch das superglobale $_POST, das alle POST-Daten enthält. beachte das Sendemethode(Methode) unseres Formulars ist POST. Wenn wir die Methode anwenden würden ERHALTEN, dann wären unsere Formularinformationen im superglobalen $_GET. Alternativ können Sie die Variable $_REQUEST verwenden, wenn die Datenquelle irrelevant ist. Diese Variable enthält eine Mischung aus GET-, POST- und COOKIE-Daten.

vor 15 Jahren

Gemäß der HTTP-Spezifikation sollten Sie die POST-Methode verwenden, wenn Sie das Formular verwenden, um den Status von etwas auf der Serverseite zu ändern. Zum Beispiel, wenn eine Seite ein Formular hat, mit dem Benutzer ihre eigenen Kommentare hinzufügen können, wie hier Seite hier, sollte das Formular POST verwenden, weshalb diese Seiten nicht mit Lesezeichen versehen oder zwischengespeichert werden.

Sie sollten die GET-Methode verwenden, wenn Ihr Formular etwas vom Server holt und nichts ändert. Beispielsweise sollte das Formular für eine Suchmaschine GET verwenden, da das Durchsuchen einer Website nichts ändern sollte, was den Client interessiert, und das Setzen von Lesezeichen oder das Zwischenspeichern der Ergebnisse einer Suchmaschinenabfrage ist genauso nützlich wie das Setzen von Lesezeichen oder Zwischenspeichern eine statische HTML-Seite.

vor 2 Jahren

Klärungswürdig:

POST ist nicht sicherer als GET.

Die Gründe für die Wahl von GET vs. POST beinhalten verschiedene Faktoren wie die Absicht der Anfrage (übermitteln Sie Informationen?), die Größe der Anfrage (es gibt Grenzen, wie lang eine URL sein kann, und GET-Parameter werden in der gesendet URL) und wie einfach Sie möchten, dass die Aktion gemeinsam genutzt werden kann – Beispiel: Google-Suchanfragen sind GET, weil es einfach ist, die Suchanfrage zu kopieren und mit jemand anderem zu teilen, indem Sie einfach die URL teilen.

Sicherheit spielt hier nur eine Rolle, da ein GET einfacher zu teilen ist als ein POST. Beispiel: Sie möchten nicht, dass ein Passwort von GET gesendet wird, da der Benutzer die resultierende URL teilen und versehentlich sein Passwort preisgeben könnte.

Ein GET und ein POST können jedoch von einer gut platzierten böswilligen Person gleichermaßen leicht abgefangen werden, wenn Sie TLS/SSL nicht zum Schutz der Netzwerkverbindung selbst einsetzen.

Alle über HTTP (normalerweise Port 80) gesendeten Formulare sind unsicher, und heute (2017) gibt es nicht viele gute Gründe für eine öffentliche Website, HTTPS nicht zu verwenden (was im Grunde genommen HTTP + Transport Layer Security ist).

Wenn Sie TLS verwenden, minimieren Sie als Bonus das Risiko, dass Ihre Benutzer Code (ADs) in Ihren Datenverkehr einschleusen, der nicht von Ihnen dort abgelegt wurde.

In einem der vorherigen Themen wurde bereits über das Abrufen von Daten aus einem Formular nachgedacht. In diesem Thema werde ich näher erläutern, wie das Formular korrekt an den Server gesendet wird, sowie wie das Formular in PHP verarbeitet wird.

Absenden eines Formulars

Eingabefeld. Die häufigsten Formularelemente sind verschiedene Eingabefelder. Sie werden mit dem Tag erstellt viele Typen und Tags

wählen. Von Etikett , und für Listenelemente, d. h. für Tags

Radio knopf. Alle Optionsfelder derselben Gruppe müssen dasselbe Namensattribut haben. Dieser Wert legt nicht nur den Parameternamen fest, sondern gruppiert auch die Optionsfelder in einer Gruppe, aus der nur ein Optionsfeld ausgewählt werden kann. Das value-Attribut wird anders gesetzt. Fügen wir dem Formular Optionsfelder hinzu:

Kontrollkästchen. Im Gegensatz zu Optionsfeldern ist jedes Kontrollkästchen ein separates Formularelement. Alle Checkboxen sind unabhängig voneinander und jede sendet ihre Daten an den Server. Das Namensattribut aller Kontrollkästchen muss unterschiedlich sein, und das Wertattribut kann entweder gleich oder unterschiedlich sein. Das Kontrollkästchen enthält jedoch keine spezifischen Daten. Es kann entweder ausgewählt werden oder nicht. Daher macht es keinen Sinn, ihn auf einen langen Wert zu setzen. Er kann auf einen Wert von einem Zeichen gesetzt werden, z. B. 1. Auf dem Server hat dieser Wert folgende Bedeutung: Wenn ein Wert vorhanden ist, wurde das Kontrollkästchen aktiviert, und wenn kein Wert vorhanden ist, dann es ist nicht ausgewählt. Lassen Sie uns dem Formular Kontrollkästchen hinzufügen und eine Schaltfläche zum Senden des Formulars erstellen:

Verarbeitung von Daten aus Formularen

Im vorgeschlagenen Beispiel wird ein Formular erstellt, das Daten an ein Skript namens takeform.php sendet. Daher müssen Sie dieses Skript erstellen. Es wird nicht nur ein Programm sein, sondern eine Seite, die abhängig von den aus dem Formular erhaltenen Daten gebildet wird. Das Formular wird mit der POST-Methode übermittelt. Das Skript nimmt diese Daten aus dem superglobalen Array $_POST. Array-Elemente können einfach im Skript verwendet werden, aber wenn Sie viel mit ihnen arbeiten müssen, ist es umständlich, jedes Mal den Namen des Elements zu schreiben. Es ist einfacher, einen Wert in eine Variable zu schreiben und darauf zuzugreifen. Lassen Sie uns eine takeform.php-Datei erstellen und die Werte aus den ersten beiden Formularelementen in Variablen schreiben:

takeform.php:

Zu markieren