Daten über HTML-Formulare in PHP übertragen. Php _self im Action Formular Attribut

In dieser PHP-Lektion werden die grundlegenden Konzepte der Sprache betrachtet: Verarbeitungsformulare mit einer Anforderung zum Senden einer Webseite, der Hauptsteuerungsstrukturen von PHP beim Verarbeiten von Formularen, zeichnen Daten aus dem PHP-Formular in einer Datei auf, die Datumsfunktion in PHP Datum ().

1. Erinnern Sie sich an alle Dateien pHP. Test nur beim Laufen Denver Und nur aus der Browser-Adressleiste. Sie können PHP-Dateien nicht per Doppelklick ausführen!

2. Rennen Sie Denver.

Übung 1. Einfache Formular verarbeiten

Berücksichtigen Sie in dieser Klasse PHP die Formularverarbeitung auf der HTML-Seite, die Erstellung von PHP-Variablen für Formularfelder.

1. Erstellen Sie ein Formular wie in Abb. 3.1. Es versteht sich, dass beim Klicken auf die Schaltfläche Senden klicken, die Daten aus dem Formular an den Administrator übertragen, und der Client wird die Antwort auf dem Bildschirm angezeigt Bestellung verarbeitet. Wenn Sie beim Schreiben eines Formulars schwer sind, können Sie den Code unten implementieren und im Ordner speichern php_2. unter dem Namen forma_bob.html. Wir erinnern Sie daran, dass die Form des Formularhandlers in das Attribut geschrieben ist aktion. Etikett bilden.

Abbildung 3.1.

2. Um den Benutzer nach dem Senden von Daten eine Antwort zu erhalten, müssen Sie einen Formularhandler in PHP erstellen. Erstellen Sie den Code unten und speichern Sie ihn im Ordner. php_2. unter dem Namen zakaz.php.

3. Überprüfen Sie die Leistung des Handlers. Führen Sie dazu die Datei aus forma_bob.html. Durch den Browser, indem Sie eingeben adresszeile Browser-Adresse http: //localhost/php_2/forma_bob.html.

4. Geben Sie im Feld Formular beliebige Zahlen ein und klicken Sie auf eine Bestellung senden. Das Ergebnis ist in FIG. 3.2.

Abbildung 3.2.

Variable Formulare

Der gesamte Nutzungsort des Bestellformulars besteht darin, Informationen über die Reihenfolge des Clients zu empfangen, die er von der Tastatur eingegeben hat. In dem PHP-Szenario zu jedem der Formularfelder können Sie sowohl auf eine Variable auf denselben Namen wie das Formularfeld aufgeben. In der Zunge PHP-Variablen leicht zu erkennen, weil sie aus dem Dollarzeichen beginnen $ .

Sie können auf den Inhalt des Felds zugreifen. reifenqty. Auf folgende Weise:

$ reifen // Kurzer Stil

$ _Post ['reifen'] // mittlerer Stil

$ Http_post_vars ['reifen'] // langen stil

Wir werden einen langen Stil für Verweise auf Variablen verwenden, aber zur Benutzerfreundlichkeit, um kurze Verwendung von Kurzversionen aufzubauen. Dies ist ein praktisches I. sichere Methode Manipulieren von Daten, die in allen Systemen effektiv funktionieren, unabhängig von den ausgewählten Versionen und Einstellungen.

Das Kopieren des Inhalts einer Variablen auf einen anderen, wenden wir den Zuweisungsvorgang an, deren Bezeichnung in der PHP-Sprache ein Zeichen der Gleichheit ( = ). Die unten angegebene Code-Zeichenfolge erstellt eine neue Variable mit dem Namen $ reifen und überträgt den Inhalt $ _Post ['reifen'] Zu dieser neuen Variablen:

$ reifen \u003d $ _ Beitrag ['TREATEQTY']

Da dieses Skript keine Ausgabe erzeugt, gibt es keinen Unterschied, es wird über oder unter dem Deskriptor platziert . Normalerweise wird dieser Block am Anfang des Skripts platziert.

5. In der Datei zakaz.php. Ändern Sie den Code wie folgt und überprüfen Sie die Leistung des Formulars. Das Ergebnis ist in FIG. 3.3. Die Zahlen können sich je nach den eingegebenen Daten unterscheiden.

Abbildung 3.3.

Übung 2. Erstellen eines Rechners für das Formular "Autoteile von Bob"

Berücksichtigen Sie in dieser PHP-Lektion die wichtigsten arithmetischen PHP-Funktionen für Berechnungen.

1. Datei. forma_bob.html. Speichern unter dem Namen forma_bob_2.html.

2. Datei. zakaz.php. Speichern unter dem Namen zakaz_2.php.

3. In der Datei. forma_bob_2.html. Die Form von "Autoteilen von Bob" -Schänder ändert sich, dass er die Ansicht ergreift, wie in FIG. 3.4. Vergessen Sie nicht, den Namen des Handlers zu ändern zakaz_2.php.. Wenn Sie es schwierig finden, können Sie den untenstehenden Code implementieren.

Abbildung 3.4.

4. Erstellen Sie eine neue Formularverarbeitung in der Datei zakaz_2.php.Verwendung des Wissens aus früheren Lektionen. Die Verarbeitung muss die folgenden Ausgabe und Bedingungen enthalten:

1. Die Kosten jedes Produkts werden durch die Konstante bestimmt. Die PHP-Konstante wird von der Definitionsfunktion eingestellt. Beispiel definieren ("Pokrprice", 10); Der erste Funktionsparameter ist der Name der Konstante, der von Großbuchstaben geschrieben wird, der zweite Parameter ist der Wert der Konstante.

2. logischer Betrieb. ODER bezeichnet ||

3. logischer Betrieb. UND bezeichnet && .

4. Vergleichen Sie den Betrieb: mehr > , Weniger < , mehr oder gleich\u003e \u003d, weniger oder gleich <=

5. Funktion, die die Zeit von einem Computer liest datum ("H: I, J F")

6. Funktion, die die Anzahl der Semikolons formatiert zahlenformat.. Beispiel number_format ($ sumnalog, 2). Der erste Parameter ist eine Variable, die Formatschilder, der zweite Parameter ist die Anzahl der Semikolonen.

7. Wenn Sie es schwierig finden, eine Formularverarbeitung zu erstellen, kann der untenstehende Code (Abb. 3.8) verwendet werden:

Abbildung 3.8.

Übung 3. Daten aus dem Formular in einer Textdatei aufnehmen

In unserer PHP-Lektion berücksichtigen wir auch die Aufzeichnung von Daten aus dem Formular in einer Textdatei und der Datums-Funktion Datum (), wenn Sie die Form bearbeiten.

1. Fügen Sie in der Handlerdatei "Autoteile über Bob" nach der letzten Abschlussstrebe den Code hinzufügen.

Abbildung 3.9.

2. Überprüfen Sie das Programm. Textdatei orders.txt. Automatisch erstellt, den Inhalt anzeigen.

Steueraufgabe

Nach dem Studieren dieser Lektion wird PHP eingeladen, einen Referenzjob durchzuführen, um das gewonnene Wissen zu sichern.

Abbildung 3.10.

1. Erstellen Sie eine Form wie in Abb. 3.10.

2. Erstellen Sie eine Formularverarbeitung, die die Auftragsergebnisse anzeigt, wie in FIG. 3.11 (Die Ergebnisse unterscheiden sich je nach den in das Formular eingegebenen Daten.

3. Die Auftragsergebnisse müssen in einer separaten Textdatei aufgenommen werden.

Die Bestellliste muss Folgendes widerspiegeln:

  • Art der Ware.
  • Kosten 1 Stück. Waren.
  • Die Anzahl der bestellten Waren.
  • Die Gesamtkosten der Bestellung ohne Lieferung, Umsatzsteuer und Rabatte.
  • Lieferpreis.
  • Der Wert der Verkaufssteuer.
  • Rabatt in Prozent und Rubel.
  • Bestellwert, Berücksichtigung der Lieferung, Umsatzsteuer und Rabatte.
  • Versandadresse.

Bedingungen des Problems:

  1. Warenkosten:
    • griffe - 10 Rubel.
    • bücher - 100 Rubel.
    • souvenir - 1000 reiben.
    • computer - 10.000 Rubel.
  2. Umsatzsteuer - 18%. Die Steuer wird dem Gesamtwert aller Waren unter Berücksichtigung des Rabatts hinzugefügt.
  3. Versandkosten - 500 Rubel. Die Versandkosten werden dem Gesamtwert aller Waren unter Berücksichtigung von Rabatten und Umsatzsteuer hinzugefügt.
  4. Rabatte:
    • Bei der Bestellung von Griffen oder Büchern weniger als 5 Stück. Rabatt - 5% von 5 bis 10 Stück. - 10% über 10 Stück. - zwanzig%;
    • Bei der Bestellung von Souvenirs oder Computern von 10 bis 20 PCs. Rabatt - 10%, von 20 bis 30 Stück. - 20% über 30 Stück. - 40%.

"PHP-Formular arbeitet mit Form in PHP" - der achten Lektion des PHP-Tutorials. In dieser Lektion sprechen wir über Verarbeitungsformen von PHP.

Arbeit mit Formularen

Mit PHP können Sie die Daten verarbeiten, die der Benutzer in die Formularfelder eingegeben hat. Nach der Aktivierung der Senden-Schaltfläche werden die Daten an die Seite gesendet - der im Feld Elementfeld angegebene Handler

. Auf der Handlerseite befindet sich das PHP-Skript, das bestimmte Vorgänge in den erhaltenen Daten ausführt, beispielsweise erzeugt und sendet einen Buchstaben an die angegebenen Benutzeranforderungen.

Übertragen Sie Daten an den Handler.

Daten aus dem Formular werden als Sequenz von Paarnamen / Wert an den Server übermittelt. Dies bedeutet, dass der Name jedes Formularelements (im Namensattribut des Tags) dem Wert dieses Elements (eingegebener oder dem ausgewählten Benutzer) zugeordnet ist. Der zum Senden verwendete Formatname / Wert hat einen Ansicht des NAME \u003d-Werts.

Alle Daten, die vom Formular an das Handlerprogramm übertragen wurden, befinden sich in den folgenden Superglobal-Arrays: $ _ GET, $ _POST und $ _REQUEST.

$ _Get - Enthält alle von der GET-Methode übertragenen Werte.

$ _Post-Holt alle von der Postmethode übertragenen Werte.

$ _REQUEST -Content alle von Post übertragenen Werte und erhalten Methoden.

Nachname:

Stadt:

Botschaft:

Nach dem Drücken der Tasteeinreichen Alle Daten werden an den Handler übertragenprocess.php. . Da dieses Formular die Methode verwendetPOST. Alle Variablen befinden sich innerhalb des Arrays $ _POST.

Nun schaffen wir einen Handler:

Echo "Name: " $ _POST [FNAME]. "
»;
Echo "Nachname: " $ _Post ["lname"]. "
»;
Echo "Stadt: " $ _POST ["Stadt"]. "
»;
Echo "
»;
Echo "Ihre Nachricht:". $ _POST ["Nachricht"];
?>

Legen Sie diese Datei mit der Formularseite in das Verzeichnis. Wenn nun, wenn Sie das Formular verwenden, werden die Daten an den Handler übertragen, wodurch eine Nachricht angezeigt wird, die Benutzerdaten enthält.

Array $ _REQUEST.

Verwendung von Superglobal-Array$ _REQUEST. Es ist sehr praktisch, insbesondere wenn nicht bekannt ist, wie Daten übertragen wurden.

Dank des FOREACH-Zyklus können Sie den Wert des $ _REQUEST-Arrays sortieren.

IM dieses Beispiel Wir werden auf dem Bildschirm alle Werte des $ _REQUEST-Arrays angezeigt. Dies kann erfolgen, um die Richtigkeit der Dateneingabe des Benutzers zu überprüfen. Das heißt, der Benutzer gibt die Daten in das Formular ein, klickt Senden, aber anstelle der Verarbeitung der Daten wird die Nachricht auf dem Bildschirm angezeigt, wobei die Nachricht mit den eingegebenen Daten und der Inschrift bestätigt oder abgelehnt wird. Diese Idee wird auf vielen Standorten angewendet und im Allgemeinen in vielen Programmen.

In dieser Lektion haben wir gelernt, PHP zu Prozessformen zu verwenden. Wie Sie sehen, ist PHP leistungsfähiges Werkzeug Formulare-Verarbeitung, sodass Sie eine Vielzahl von Manipulationen über Benutzerdaten erstellen können, z. B. das Speichern einer Benutzerdaten in einer Datenbank zur späteren Berechtigung, sendet eine Nachricht an User Mail und vieles mehr.

In der nächsten Lektion lernen wir, die vom Benutzer eingegebenen Daten vor der direkten Verarbeitung zu überprüfen.

Sie haben ein JavaScript in Ihrem Browser gesperrt. Erlauben Sie Javascript für die Site-Arbeit!

Arbeit mit Formularen

HTML-Formulare werden verwendet, um Daten von der Webseite der Webseite übertragen zu können. Für das Arbeiten mit Formularen in PHP bietet eine Reihe von Spezialfonds.

Vordefinierte Variablen

In PHP gibt es eine Reihe vordefinierter Variablen, die sich nicht ändern, wenn alle Anwendungen in einer bestimmten Umgebung ausgeführt werden. Sie werden auch Umgebungsvariablen oder Variablen bezeichnet. Sie spiegeln die Einstellungen des Webservers von Apache sowie Informationen über die Anforderung für diesen Browser wider. Es ist möglich, URL-Werte, Abfragezeichenfolgen und andere HTTP-Anforderungselemente zu erhalten.

Alle vordefinierten Variablen sind in der $ Global Associal Array enthalten. Neben Umgebungsvariablen enthält dieses Array auch globale Variablen, die im Programm definiert sind.

Beispiel 1.

Sehen Sie sich $ Globals Array an $ Wert) ECHO "\\ $ GLOBALS [\\" $ KEY \\ "] \u003d\u003d $ Wert
"; ?>

Infolgedessen erscheint eine Liste aller globalen Variablen auf dem Bildschirm, einschließlich Umgebungsvariablen. Der am häufigsten verwendete von ihnen:

VariableBeschreibungGebäude
$ _Server ["http_user_Agent"]Name und Client-VersionMozilla / 5.0 (kompatibel; GoogleBot / 2.1; + http: //www.google.com/bot.html)
$ _Server ["Remote_Addr"]IP Adresse144.76.94.14
gETENV ("http_x_forded_for")Interne Client-IP-Adresse
$ _Server ["anfragen_method"]Anforderungsmethode (Get oder Post)Erhalten.
$ _Server ["Query_string"]Bei der Anforderung erhalten Sie codierte Daten, die mit URL übertragen werden
$ _Server ["anfrage_url"]Vollständige Adresse des Clients, einschließlich einer Abfragezeichenfolge
$ _Server ["http_referer"]Die Adresse der Seite, mit der die Anforderung erstellt wurde
$ _Server ["php_self"]Pfad zum Programm, das ausgeführt wird/Index.php.
$ _Server ["server_name"]Domainwebseite
$ _Server ["anfrage_uri"]Weg/Php/php_form.php.

Benutzereintragungsverarbeitung.

Das PHP-Input-Verarbeitungsprogramm kann von HTML-Text mit Eingangsformen getrennt werden, und Sie können auf einer Seite anordnen.

Beispiel 2.

Ein Beispiel für die Eingabeverarbeitung

"Methode \u003d" Post "\u003e

Kartennummer:

Hier gibt es keinen Datenübertragungsknopf, da Eine Form, die aus einem Feld besteht, wird automatisch übertragen, wenn Sie den Schlüssel drücken .

Bei der Verarbeitung eines Elements mit einer mehrwertigen Auswahl, um auf alle ausgewählten Werte zuzugreifen, müssen Sie dem Elementnamen ein paar eckige Klammern hinzufügen. Halten Sie die Strg-Taste, um mehrere Elfs auszuwählen, halten Sie die Strg-Taste.

Beispiel 3.1.

Aufführen

Das Ergebnis von Beispiel 3.1:

Tee Kaffee Milch Schinkenkäse

Beispiel 3.2.

Verarbeitungsliste aus der Datei EX1.HTM

    "FOREACH ($ Artikel als $ Wert) ECHO"
  • $ Wert "; Echo"
"; ?>

Beispiel 4. Empfangen Sie Werte aus Checkbox-Flags

$ V) (wenn ($ v) Echo "Sie kennen die Programmiersprache $ k!
"; Anders Echo" Sie kennen die Programmiersprache $ k nicht.
"; } } ?>
"Methode \u003d" Post "\u003e Welche Programmiersprachen kennen Sie?
PHP.
Perl

Das Ergebnis von Beispiel 4:

Welche Programmiersprachen kennen Sie? PHP. Perl

Beispiel 5

"; ?>
"Methode \u003d" Post "\u003e

Sie können mit Formularen umgehen, ohne sich um die tatsächlichen Feldnamen zu sorgen.

Dazu können Sie (abhängig von der Übertragungsmethode) ein assoziatives Array von $ http_get_vars oder $ http_post_vars verwenden. Diese Arrays enthalten den Namen / Wert von Paaren für jedes Element der übertragenen Form. Wenn Sie sich nicht darum kümmern, können Sie ein assoziatives Array $ _REQUEST verwenden.

Beispiel 6.

Bearbeitung der beliebigen Eingabe unabhängig von der Übertragungsmethode $ Wert) ECHO "$ KEY \u003d\u003d $ Wert
"; ?>

Beispiel 7. Drücken Sie die Taste mit dem Operator "@".

">

Verwenden der Header () -Funktion, senden Sie den Browser-Header, können Sie den Benutzer den Benutzer auf eine neue Seite umleiten.

Beispielsweise:

Übertragen Sie die Datei an den Server. FILE FILE. Hochladen

Mit PHP können Sie Dateien an den Server übertragen. Das HTML-Formular, das zum Übertragen der Datei entwickelt wurde, muss das Argument ECTYPE \u003d "Multipart / Form-Data" enthalten.

Darüber hinaus sollte ein verborgenes Feld mit dem Namen Max_File_size im Formular vor der Datei sein, um die Datei zu kopieren. Die maximale Größe der übertragenen Datei muss in diesem versteckten Feld (normalerweise nicht mehr als 2 MB) aufgenommen werden.

Das Feld selbst ist, die Datei zu übertragen - das übliche Eingabeelement mit dem Argument Typ \u003d "Datei".

Beispielsweise:

"Methode \u003d" Post "\u003e

Nachdem die Datei an den Server übertragen wird, empfängt er einen eindeutigen Namen und wird im Verzeichnis für temporäre Dateien gespeichert. Der vollständige Pfad zur Datei wird in der globalen Variablen aufgenommen, deren Name mit dem Feldnamen übereinstimmt, um diese Datei übertragen zu können. Darüber hinaus behält PHP weitere Informationen zur übertragenen Datei in anderen globalen Variablen:

Beispiel 8.

Verarbeitung der übertragenen Datei "; Echo" Name: "$ _ Dateien [" UserFile "] [" Name "]."
"; Echo" Größe: "$ _ Dateien [" UserFile "] [" Größe "]."
"; Echo" Typ: ". $ _ Dateien [" UserFile "] [" Typ "]."
"; } ?>
"Methode \u003d" Post "\u003e

Beispiele für das Herunterladen von Dateien an den Server

Wenn es Probleme mit dem Transcodierserver der heruntergeladenen Datei gibt, ist das Codesymbol 0x00. Ersetzt mit einem Leerzeichen (Codesymbol 0x20.), fügen Sie der Datei hinzu httpd.conf. Aus dem Apache-Katalog (/ usr / local / apache) folgende Zeilen.

CharsetrecodemultipartForms deff.

Eine der häufigsten Aufgaben in der Praxis ist die Umsetzung der Form des Feedbacks. TOBASH schreibt ihren HTML-Code, entwerfen Sie es auf CSS, erstellen Sie ein PHP-Skript, das die vom Benutzer empfangenen Daten verarbeiten würde, und senden sie an unsere E-Mail, wodurch ein JS-Skript schreibt, das das Formular überprüfen würde, um die Eingabedaten angemessen einzugeben, den Schutz von Unsere Spams Angemessenheit, um sicherzustellen, dass unser Postfach nicht von den Anschlägen von Bots fiel.

Alle oben genannten Momente werden in unserer Überprüfung berücksichtigt und ausführlich kommentiert.

Wir beginnen also mit dem Erstellen eines Feedback-Formulars:

Html.

Zunächst schreiben wir HTML-Code, es ist auf Felder eingestellt, die den Benutzer füllen. Sie werden weiterhin ausgestellt. Der Codecode 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" > Botschaft: < textarea rows= "7" cols= "50" name= "message" > < input type= "submit" value= "Senden" />

Und visuell sieht es so aus:

Ich stimme zu, während alles hässlich ist und nichts klar ist, aber wir haben gerade angefangen.

Betrachten Sie das obige Code-Detail:

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


    Um ein Formular erstellen zu können, müssen Sie das Formular-Tag verwenden. Er bestimmt den Anfang und das Ende des Formulars für den Code-Interpreter. Er hat wie jedes Tag einen ganzen Satz von Attributen, aber zwingende Formulare bildet jedoch nur zwei, dies ist eine Methode (Methode zum Senden einer Anforderung an den Server, für Formulare verwenden, um Pfosten verwenden) und die Aktion (Zeigt den Pfad zur Formübergabe an Datei, insbesondere in dieser Datei, enthält ein PHP-Skript, das in unserem Fall an die vom Benutzer eingegebene E-Mail gesendet wird, in unserem Fall, dass diese Datei mail.php bezeichnet wird, und es liegt in demselben Site-Verzeichnis als die betreffende Seite ).
  • < input maxlength= "30" type= "text" name= "name" />


    Als nächstes folgen wir dem stattdessen. Dies sind die tatsächlichen Formularfelder selbst, in denen Benutzer die benötigten Informationen eingeben (Typ \u003d "Text" sagt, dass es der Text ist). Das Attribut MaxLength zeigt an, wie viele Zeichen den Benutzer in dieses Feldformular eingeben können. Das wichtigste Attribut ist Name - es gibt den Namen eines bestimmten Felds an. Es ist auf diesen Namen in der zukünftigen PHP-Skript, in denen die Informationen einkommentiert wird. Wenn Sie möchten, können Sie immer noch das Attribut Platzhalter einstellen, das den Text in dem Feld anzeigt, wenn Sie den Cursor in der Installation des Cursors verschwinden. Einer der PLAYSHOLDER-Probleme ist, dass es nicht von einigen alten Browsern unterstützt wird.
  • < label for = "name" > Name:


    Wird verwendet, wenn wir Platzhalter ablehnen. Die übliche Feldsignatur, das Formatattribut berichtet, was speziell das Feld diese Signatur enthält. Der Wert des Interesses für uns ist durch den Namen angegeben.
  • < textarea rows= "7" cols= "50" name= "message" >


    Da der Eingang von den Benutzerinformationen verabreicht werden soll, ist nur diese Zeit das Feld für lange Nachrichten geschärft. Zeilen gibt die Größe des Feldes in Saiten, Cols in Zeichen an. Im Allgemeinen setzen sie die Höhe und Breite unseres Feldes.
  • < input type= "submit" value= "Senden" />


    Die Tatsache, dass dies eine Schaltfläche zum Senden eines Formulars ist, trifft auf uns type \u003d "Senden", und der Wert legt den Text fest, der sich in dieser Taste befindet.
  • < div class = "right" >


    Wird nur für weitere visuelle Designform verwendet.

CSS.

Damit unser Feedback-Formular präsentierbar ist, muss er ausgestellt werden. Um das folgende Ergebnis zu erhalten:

Wir haben diesen Kodex verwendet:

formular (Hintergrund: # F4F5F7; Padding: 20px;) Form. Links, bilden. Rechts (Anzeige: Inline-Block; Vertical-Align: Top; Breite: 458px;) Form. Rechts (Auffüllen Schriftgröße: 16px; Breite: 436px;) textarea (Höhe: 98px; Margin- Bottom: 32px;) Eingang [Typ \u003d "Senden"] (Breite: 200px; Float: rechts; Rand: Keine; Hintergrund: # 595B5F; Farbe: #FFF; Texttransformation: Großbuchstaben;)

Im Detail, um CSS zu malen, sehe ich den Punkt nicht, ich werde Ihre Aufmerksamkeit nur auf wichtige Punkte ziehen:

  1. Schreiben Sie keine Registrierung für jedes Tag in der Form. Versuchen Sie, Ihre Selektoren aufzubauen, sodass ein Paar Codezeilen alle Elemente ausführt, die Sie benötigen.
  2. Verwenden Sie keine Linien und erstellen Sie Unterbrechungen, zusätzliche Tags nach Typ < br>, < p> Also weiter, mit diesen Aufgaben ist CSS perfekt mit der Display-Eigenschaft fertig: Block und Rand mit Polsterung. Mehr darüber, warum nicht benutzen < br> Im Layout können Sie in dem Artikel-Tag BR lesen und ist es erforderlich? .
  3. Verwenden Sie das Tabellenlayout nicht für Formulare. Dies widerspricht der Semantik dieses Tags, und Suchmaschinen lieben den semantischen Code. Um eine visuelle Dokumentenstruktur zu bilden, haben wir über genügend DIV-Tags, und die von ihm in CSS eingestellten Anzeigeeigenschaften (erstellt Blöcke in Folge) und vertikal ausgerichtet: Top (erlaubt es ihnen nicht, um die herumlaufen Bildschirm), bitten wir sie die notwendige Höhe und Voila, nichts überflüssiges und alles ist, wie wir brauchen.

Für diejenigen, die ihre Zeit beim Design sparen möchten, kann ich mit CSS-Frameworks beim Erstellen von Websites empfehlen, insbesondere selbst geschrieben. Meine Wahl in diesem Plan ist Twitter-Bootstrap. Die Lektion auf der Gestaltung von Formularen mit ihrer Verwendung kann angesehen werden.

PHP.

Nun, es ist an der Zeit, unsere Form zu leisten.

Wir gehen in unser Stammverzeichnis der Site und erstellen dort eine E-Mail.php-Datei, auf die wir den Pfad in dem Formatattribut des Formtags zuvor angegeben haben.

Letztendlich sieht der Code so aus:

Ihre Nachricht wurde erfolgreich gesendet \\ "Javascript: History.back () \\"\u003e Zurück zurück

" ; if (! leer ($ _Post ["Name"]) und! leer ($ _POST ["Telefon"]) und! leer ($ _Post ["Mail"]) und! leer ($ _Post ["Nachricht"])) ($ name \u003d trim (strip_tags ($ _post ["Name"])); $ phone \u003d trim (strip_tags ($ _Post ["Telefon"]); $ mail \u003d trim (strip_tags ($ _Post ["Mail"]) ); $ Message \u003d trim (strip_tags ($ _post ["Meldung"]); mail (, "Sie haben geschrieben:" Name ".
Seine Nummer: "$ phone."
Seine Mail: "$ Mail. "
Seine Botschaft: "
. $ Nachricht,); Echo. "Ihre Nachricht wurde erfolgreich gesendet!
Sie erhalten die Antwort bald
$ zurück "
; Ausfahrt; ) Sonst (Echo; Exit;)?\u003e

Die Diskussion von HTML- und CSS-Teilen dieses Dokuments kann übersprungen werden. Im Wesentlichen ist dies die übliche Seite der Site, die Sie auf Anfrage und Notwendigkeit arrangieren können. Betrachten Sie den wichtigsten Teil davon - PHP-Formular-Verarbeitungsskript:

$ back \u003d "

\\ "Javascript: History.back () \\"\u003e Zurück zurück

" ;

Wir erstellen einen Link für diese Zeichenfolge, um zur vorherigen Seite zurückzukehren. Da wir nicht im Voraus wissen, welche Seite der Benutzer darauf fällt, erfolgt er mit einer kleinen JS-Funktion. In Zukunft beziehen wir uns einfach auf diese Variable, um sie an den an den benötigten Orten zurückzuziehen.

if (! leer ($ _Post ["Name"]) und! leer ($ _POST ["Telefon"]) und! leer ($ _Post ["Mail"]) und! leer ($ _Post ["Nachricht"])) ( // Intader Teil des Handlers ) Sonst (Echo "Um eine Nachricht zu senden, füllen Sie alle Felder aus! $ Zurück"; Ausfahrt; )

Hier schrauben wir die Formprüfung auf der Fülle der Felder. Wie Sie erraten, schreiben wir in Zitate in Bezug auf $ _POST ["Name"] in Anführungszeichen, schreiben wir den Wert des Namensattributs unserer Inkontinone.

Wenn alle Felder ausgefüllt sind, beginnt das Skript die Verarbeitung der Daten in seinem Innenteil, aber wenn mindestens ein Feld nicht ausgefüllt wurde, wird die Meldung mit der Anforderung angezeigt, um alle Echo-Formularfelfelder zu füllen ", um eine Nachricht senden Alle Felder! $ Back "und Verweis, um zur vorherigen Seite zurückzukehren, die wir die allererste Zeichenfolge erstellt haben.

Dale Insert in das Innere des Formularhandlers:

$ name \u003d trim (strip_tags ($ _post ["Name"])); $ Phone \u003d trim (strip_tags ($ _Post ["Telefon"]); $ Mail \u003d Trim (strip_tags ($ _Post ["Mail"])); $ Message \u003d trim (strip_tags ($ _post [Nachricht "]));

Somit haben wir die vom Benutzer eingegebenen Daten von HTML-Tags und unnötigen Lücken gereinigt. Dadurch können wir sich vor dem Ermitteln eines schädlichen Codes in den an uns gesendeten Nachrichten schützen.

Schecks können kompliziert sein, aber es ist bereits auf Ihrer Anfrage. Der Mindestschutz auf der Serverseite, die wir bereits eingestellt haben. Darüber hinaus tun wir auf der Clientseite mit JS.

Es wird nicht empfohlen, das Formular auf der Serverseite für JS vollständig abzulehnen, da er obwohl es extrem selten ist, aber die Unic sind mit dem im Browser getrennten JS gefunden.

Fügen Sie nach dem Reinigen der Tags das Senden einer Nachricht hinzu:

post ( "[email protected]", "Brief mit address_iessight""Ich habe dir geschrieben:". $ Name "
Seine Nummer: "$ phone."
Seine Mail: "$ Mail. "
Seine Botschaft: "
. $ Nachricht, "Inhaltstyp: Text / HTML; charet \u003d Windows-1251") ;

Es ist diese Linie und tätigt sich in der Formation und sendet eine Nachricht an uns. Es ist wie folgt gefüllt:

  1. "[email protected]" - Hier zwischen Zitaten einfügen Sie Ihre E-Mail
  2. "Brief mit dem Address_Name" ist Gegenstand der Nachricht, die an die Mail kommt. Sie können hier alles schreiben.
  3. "Sie haben geschrieben:" $ Name. " < br /> Seine Nummer: "$ phone." < br /> Seine Mail: "$ Mail." < br /> Seine Nachricht: "$ MESSAGE - Wir bilden den Nachrichtentext selbst. $ Name - Fügen Sie die vom Benutzer vom Benutzer gefüllten Informationen durch den Appell auf die Felder aus dem vorherigen Schritt ein, beschreiben Sie in Anführungszeichen, was es bedeutet, dass dieses Feld bedeutet, Tag < br /> Wir machen die Übertragung der Linie, damit die Nachricht im Allgemeinen lesbar ist.
  4. Content-Type: Text / HTML; charset \u003d Windows-1251 - Am Ende gibt es eine klare Angabe des Datentyps der in der Nachricht übertragenen Daten und deren Kodierung.

WICHTIG!

Codierung in dem "Head" des Dokuments angegeben ( < meta http- equiv= "Content-Type" content= "Text / HTML; charet \u003d windows-1251" /> ), Kodierung aus dem Inhaltstyp: Text- / HTML-Nachricht; charset \u003d windows-1251 und im Allgemeinen muss die Kodierung der PHP-Datei ansonsten übereinstimmen "Krakoyarbra" wird anstelle von russischen oder englischen Buchstaben angezeigt.

Viele geben nicht an, dass die Codierung der Nachricht explizit gesendet wird, jedoch auf einigen E-Mail-Clients, da dies aus diesem Grund jedoch Probleme in der Zukunft gibt (nicht lesbare Buchstaben in die Poststelle), also empfehle ich es, es anzuzeigen.

Überprüfung des Formulars für angemessene Daten

Damit Benutzer nicht in den Feldern, um Unaufmerksamkeit zu lachen und alles richtig auszufüllen, müssen die Eingabedaten bestätigt werden.

Dies kann sowohl von PHP auf der Serverseite als auch auf der JS auf der Clientseite erfolgen. Ich benutze die zweite Option, denn so kann eine Person sofort herausfinden, was er nicht richtig gemacht hat, und korrigieren Sie den Fehler, ohne zusätzliche Übergänge auf den Seiten vorzunehmen.

Skriptcode Insert in dieselbe Datei, wo wir einen HTML-Teil des Formulars haben. Für unseren Vorfall wird es so aussehen:

< script> Funktionsprüfungsform (Formular) (VAR-NAME \u003d Formular. Name. Wert; var n \u003d Name. Übereinstimmung (/ ^ [a- zaza-yay] * [a-za- ya-i] + $ /); if (! n) (Alarm ( "Der Name wird falsch eingegeben, bitte korrigieren Sie den Fehler"); FALSCH ZURÜCKGEBEN; ) VAR-Telefon \u003d Formular. Telefon. Wert; Var p \u003d Telefon. Übereinstimmung (/ ^ [0 - 9 +] [0 - 9 -] * [0 - 9 -] + $ /); if (! p) (Alarm ( "Das Telefon wird falsch eingegeben"); FALSCH ZURÜCKGEBEN; ) VAR Mail \u003d Formular. Mail. Wert; Var m \u003d Mail. Übereinstimmung (/ ^ [A- ZA- ZA- ZA- 9] [A- ZA- ZAG0- 9 \\. _-] * [A- ZA- ZA- ZAGE 9 _] * @ ([A- ZA- ZAZ0- 9] + ([A- ZA- ZAZ0- 9 -] * [A- ZA- ZAZ0- 9] +) * \\.) + [A- ZA- Z] + $ /); if (! m) (Alarm ( "E-Mail wurde falsch eingegeben, korrigieren Sie bitte den Fehler"); FALSCH ZURÜCKGEBEN; ) True zurückgeben; )

Nun, jetzt die übliche Analyse:

Zum, um auf die Schaltfläche Senden zu klicken, haben wir getestet Wir verbergen den Start unseres Skripts auf dem Formular-Tag:

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

Nun, an Punkten nehmen wir die Zusammensetzung der Überprüfung an:


Wie Sie feststellen können, dass ein solcher Mini-Check für jedes unserer Feld geschrieben wird. Eine Inspektion auf einem Feld, das ich in einem Screenshot mit einem roten Quadrat zugeteilt habe, auf anderen Feldern hat es eine ähnliche Struktur, und wenn es erforderlich ist, ein Feld hinzuzufügen oder zu entfernen, können Sie es jetzt einfach tun.

Eine der wichtigsten Vorteile von PHP ist, wie es mit HTML-Formularen funktioniert. Hier ist die Hauptsache, dass jedes Element des Formulars automatisch Ihren PHP-Programmen zur Verfügung steht. Detaillierte Informationen zur Verwendung von Formularen in PHP lesen Sie den Abschnitt. Hier ist ein Beispiel für ein HTML-Formular:

Beispiel # 1 Einfaches HTML-Formular

Ihr Name:

Ihr Alter:

In dieser Form gibt es nichts Besonderes. Dies ist ein gewöhnliches HTML-Formular ohne spezielle Tags. Wenn der Benutzer das Formular ausfüllt und die Sende-Taste drücken, wird die Seite Action.php aufgerufen. Diese Datei kann so etwas sein:

Beispiel # 2 Zeigt diese Formulare an

Guten Tag, .
Sie Jahre.

Ein Beispiel für die Ausgabe dieses Programms:

Hallo, Sergey. Sie sind 30 Jahre alt.

Wenn Sie die Code-Teile nicht berücksichtigen htmlspecialchars () und (int)Das Prinzip des Betriebs dieses Codes sollte einfach und verständlich sein. htmlspecialchars () Bietet die korrekte Kodierung von "speziellen" HTML-Zeichen, sodass Schädliches HTML oder Javascript in Ihre Seite eingefügt wird. Das Altersfeld, über das wir wissen, dass es eine Zahl sein sollte, können wir einfach in einwandeln ganze Zahldas entlastet uns automatisch von unerwünschten Zeichen. PHP kann dies auch automatisch mit der Filterverlängerung durchführen. Variablen $ _POST ["Name"] und $ _POST ["Alter"] automatisch für Ihre Tools PHP installiert. Früher haben wir die $ _server-Superglobal-Variable verwendet, hier verwenden wir auch die Variablen von $ _Post, die alle Postdaten enthält. beachte das methode senden. (Methode) Unsere Formular ist post. Wenn wir die Methode benutzt haben Erhalten.Die Informationen unseres Formulars wären in einer superglobalen Variablen $ _GET. Darüber hinaus können Sie die Variable von $ _request verwenden, wenn die Datenquelle keine Rolle spielt. Diese Variable enthält eine Mischung aus Daten erhalten, Post, Cookie.

VOR 15 JAHREN.

Gemäß der HTTP-Spezifikation sollten Sie die Postmethode verwenden, wenn Sie das Formular verwenden, um den Status von etwas auf dem Server enden zu ändern. Für Exlow, wenn eine Seite ein Formular enthält, mit dem Sie alle eigenen Kommentare hinzufügen können, wie Diese Seite sollte hier das Formular verwenden. Wenn Sie auf einem Beitrag auf "Reload" oder "Refresh" auf "Reload" oder "Aktualisieren" klicken, ist es fast immer ein Fehler - Sie sollten nicht zweimal denselben Kommentar veröffentlichen - weshalb diese Seiten Arena " t mit einem Lesezeichen oder zwischengespeichert.

Sie sollten die GET-Methode verwenden, wenn Ihr Formular gut ist, etwas vom Server bekommt und nichts ändert. Zum Beispiel sollte das Formular für eine Suchmaschine verwendet werden, um etwas zu ändern, was der Kunde etwas ändert, und das Lesezeichen oder das Einspeichern der Ergebnisse einer Suchmaschinenabfrage ist ebenso nützlich wie das Lesezeichen oder die Zwischenspeicherung einer statischen HTML-Seite.

vor 1 Jahr.

Es lohnt sich, zu klären:

Post ist nicht sicherer als zu bekommen.

Die Gründe für die Auswahl von VS-Beitrag beinhalten verschiedene Faktoren, z. B. die Absicht der Anforderung (sind Grenzen, wie lange eine URL sein kann, und Parameter a, die in der URL gesendet werden können), und wie einfach Sie möchten, dass die Aktion gemeinsam genutzt werden soll - Beispiel, Google Search IRE erhalten, da es einfach ist, die Suchabfrage mit jemand anderem zu kopieren und zu teilen, indem Sie einfach die URL teilen.

Die Sicherheit ist nur eine Rücksicht, da dies aufgrund der Tatsache, dass ein GET einfacher zu teilen ist als ein Post. Beispiel: Sie möchten nicht, dass ein Kennwort gesendet wird, das von Get gesendet werden soll, da der Benutzer die resultierende URL teilen kann und das Kennwort versehentlich ausgesetzt ist.

Ein Get und ein Post-AER-AERL, das von einem gut platzierten böswilligen Mensch gleichnässt ist, wenn Sie TLS / SSL nicht bereitstellen, um die Netzwerkverbindung selbst zu schützen.

Alle Formulare, die über HTTP (in der HTTP 80) gesendet werden, sind unsicher, und heute (2017), gibt es die Arena "t viele gute Gründe für eine öffentliche Website, die nicht https verwendet werden (was grundlegend http + Transportschichtsicherheit ist).

Wenn Sie mit TLS verwenden, minimieren Sie, wenn Sie TLS verwenden, das Risiko Ihrer Benutzer, die Code (Anzeigen) in Ihren Verkehr injiziert haben, der in Ihren Verkehr eingespritzt wird, der nicht von Ihnen gestellt wurde.

Fortsetzung des Themas:
Smartphone

Konfigurieren und aktivieren Sie einen speziellen AHCI-Modus, der vorzugsweise jedem Benutzer, der erheblich erweitern möchte, und gleichzeitig die Fähigkeiten Ihres PCs zur Arbeit mit ...