Feedback installieren. Feedback-Formular erstellen. Vielleicht ist es interessant für Sie

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.

In dieser Lektion werden wir die Funktion kennenlernen post (), am Beispiel der Erstellung feedback-Formulare auf PHP Mit den nachfolgenden Sendedaten an die E-Mail.

Erstellen Sie dazu zwei Dateien - forma.php. und mail.php.. In der ersten Datei gibt es nur ein Formular mit Feldern, um den Benutzer einzugeben. Innere Tag. bilden - Taste "Email" Und Attribut. aktion.was auf den Handler bezieht - mail.php.Es ist dabei, dass Daten aus dem Formular angezeigt werden, wenn Sie die Taste drücken "Email". In unserem Beispiel werden diese Formulare an eine mit Titel von Titel gesendet "/Mail.php". Diese Seite registrierte das Skript auf PHP.welche verarbeitet die Formulardaten:


Diese Formulare werden von der Methode gesendet POST. (verarbeitet als $ _POST.). $ _POST. - Dies ist ein Array von Variablen, die über das Verfahren an das aktuelle Skript übertragen werden POST..

Im Folgenden sehen Sie den Inhalt der Datei forma.php.Wessen Felder füllt den Benutzer auf eine Website. Alle Feldeintragsfelder müssen ein Attribut haben name., Verschreiben wir Werte selbst, die auf der Logik basieren.




Feedback-Formular auf PHP mit dem Senden an E-Mail


Feedback-Formular auf PHP







Eine Nachricht hinterlassen:
Ihr Name:



Email:

Telefonnummer:

Botschaft:

Der Textbereich kann eine unbegrenzte Anzahl von Zeichen enthalten -\u003e







Das Formular sieht also visuell im Browser aus.

Nächster Schreibcode für die Datei mail.php.. Erfinden Sie selbst Namen für Variablen. IM PHP. Die Variable beginnt mit einem Zeichen $ und dann der Name der Variablen. Der Textwert der Variablen ist Zitate. Mit den Variablen auf einer Administrator-E-Mails werden der Inhalt des Formulars übertragen, wodurch der Name des Formularelements in eckige Klammern ersetzt wird. name..

$ bis \u003d " [E-Mail geschützt]"; // E-Mail des Datenempfängers aus dem Formular
$ TEMA \u003d "Feedback-Formular auf PHP"; // Theme des EAMELs erhalten
$ message \u003d "Ihr Name:" $ _ Post ["Name"]. "
"; // Weisen Sie einen variablen Wert zu, der aus dem Namen \u003d Namensformular erhalten wird
$ Nachricht \u003d "E-Mail:". $ _ Post ["E-Mail"]. "
"; // aus dem Formularname \u003d E-Mail erhalten
$ Nachricht \u003d "Telefonnummer:" $ _ Post ["Telefon"]. "
"; // von dem Namen \u003d Telefonform empfangen
$ Nachricht \u003d "Nachricht:". $ _ Beitrag ["Nachricht"]. "
"; // empfangen vom Namen \u003d Nachrichtenformular
$ Header \u003d "MIME-Version: 1.0". "\\ r \\ n"; // Titel entspricht dem Format plus einem String-Übersetzungssymbol
$ Header. \u003d "Inhaltstyp: Text / HTML; charetset \u003d utf-8". "\\ r \\ n"; // Zeigt die Art der gesendeten Inhalte an
Post ($ to, $ tema, $ Nachricht, $ Headers); // Sendet Variablenwerte an den Empfänger per E-Mail
?>

Somit die Daten aus dem Array $ _POST. wird in die entsprechenden Variablen übertragen und an Mail mit der Funktion gesendet e-Mail. Lassen Sie uns unsere Form ausfüllen und auf die Schaltfläche Senden klicken. Vergessen Sie nicht, Ihre E-Mail anzugeben. Der Brief kam sofort.

Feedback-Formular für die SiteIch werde Ihnen zeigen - basierend auf der Verwendung von AJAX-Technologie. Aber keine Sorge, Sie müssen dies nicht wissen, alles ist bereits fertig, es muss nur dieses Formular installieren und für sich selbst eingerichtet werden!

Jungs - das Skript ist völlig veraltet. Jemand arbeitet, jemand hat keine. Und ich verstehe und alles mehr Update - Faulheit. Testen Sie daher nach Ihrem Ermessen.

PHP-Feedback-Formular mit dem Senden an E-Mail

Diese feedback vor Ort bilden Sehr funktionsfähig an sich sind mehrere Plug-Ins miteinander verbunden, die ein attraktives Erscheinungsbild erstellen und die Gültigkeit (Richtigkeit der Richtigkeit) der von Ihnen eingegebenen Daten prüfen. Diese Plugins arbeiten an großem und mächtigen! Und genannt dieses:

    1. Jqtransform. - Plugin, mit dem Sie unser Feedback-Formular schön machen können!

    2. formValidator. - Und dieses Plugin prüft die Form der Kontakte über die Richtigkeit der eingegebenen Informationen und in diesem Fall die Popup-Tipps werden angezeigt!

Für die volle Arbeit dieses Formulars wird die Klasse - PHPMailer verwendet. Als eines der besten angesehen!

Hinweis für den intelligenten:

Das Feedback-Formular für die Site kann auf HTML hergestellt werden! Aber es wird anfangen, nur mit PHP zu arbeiten! Und in keiner Weise!

Dies ist für diejenigen, die nur auf HTML nach einem Rückmeldungsformular suchen. Machen Sie es, aber es wird nicht funktionieren!

Daher müssen Ihre PHP unterstützen, und für diese Form von Kontakten sollte PHP nicht niedriger als die fünfte Version sein. Hoffentlich ist es klar? Darüber hinaus unterstützt jegliche normale Hosting diese Bedingungen!

Ich habe diese Form des Feedbacks auf der Website www.tutorialzine.com ausgegraben. Der Link führt direkt auf die ursprüngliche Seite, d. H. Website des Autors dieses Formulars!

Es ist alles in englischer Sprache, also hatten wir ein kleines Basteln mit Sasha, um diese Form von Kontakten und den mit ihm verbundenen Plugins zu russischen.

Ich gestehe, ehrlich zu sein, und mit dieser "Form" gab es zwei Tage, da verschiedene Untiefen auftauchen, und das inverse Kommunikationsformular bis zum Ende unvollendert, desto schöner, desto schöner wollte ich nicht einlegen! Wenn Sie also ein Amateur sind, um alles selbst zu tun, und der Gedanke wird in Ihren leichten Kopf passen - selbst, um dieses Formular zu russischen, ich werde ein paar Tipps nicht einschränken, da einfach die Übersetzung der Phrasen nicht auf beschränkt ist:

    1. Diese Form des Feedbacks wird von dort unter den Bourgeois geschärft und wurde heruntergeladen, sodass Sie anstelle von normalen russischen Figuren - krakoyablla schicken wird. Beobachten Sie die Kodierung. Und im Allgemeinen werden alle "Seehern" damit verbunden!

    2. Das Validierungsskript versteht zunächst nicht unsere Buchstaben, sodass sie sie registrieren müssen!

    3. Wenn Sie auch nach diesen Maßnahmen das Thema des Schreibens in Russisch angeben, wird der Brief mit dem Thema geliefert - kein Thema (ich hoffe, dass es richtig geschrieben wird), es wird behandelt, wenn Sie die Kodierung in der PHPMailer-Klassendatei angeben.

    4. In der ursprünglichen Form gedrückt den Text in den Eingabefeldern auf den Boden und nicht in der Mitte. Dies ist ein JQTransform-Plugin-Glitch.

Nun, alles schien zu malen und gewarnt zu werden. Lass uns weiter gehen!

Also, lass uns anfangen, das erste, was wir die Seite und die Stile dafür platzieren werden. Die Markierung enthält das übliche Feedback-Formular mit zwei Eingängen (Telefon, E-Mails) und einem Textbereich, in dem der Benutzer in unserer Idee seine Nachricht eingibt. Der Formularhandler wird auf einer separaten Seite platziert.

Feedback-Formular

Geben Sie das Telefon ein:

Ihre E-Mail:

Ihre Frage:


Spliting-Stile:

HTML, Körper (Größe: 100%; Rand: 0;) HTML (Hintergrundfarbe: #FFF; Farbe: # 333; Font: 12px / 14px Vertana, Tahoma, Sans-Serif; Cursor: Default;) # Feedback-Formular (Hintergrundfarbe: #ECECEC; Rand: 50px Auto 0; Text-Align: Center; Breite: 430px; Polsterung: 15px;) # Feedback-Formular H2 (Marge-Bottom: 25px;) # Feedback-Form-Eingang, #Feedback -Form Textarea (Hintergrundfarbe: #FFF; Border: 1Px fest # A9A9A9; Polsterung: 1px 5px; Breite: 90%;) # Feedback-Form-Eingang (Höhe: 26px;) # Feedback-Formtextarea (Höhe: 75px; Padding-Top: 5Px;) # Feedback-Form-Eingang (Margin-Top: 15px; Hintergrundfarbe: # 0b7bb5; Rand: 1px fest #cccccc; Farbe: #FFFFFF; fontgewicht: fett; Höhe: 40px; Höhe: 40px; Texttransformation: Großbuchstaben; Breite: 225px; Cursor: Zeiger;)

Als Ergebnis all dieser Aktionen ist dieses Formular:

Jetzt ist es Zeit, den Server zu erledigen. Unser Skript umfasst mehrere Teile:

  • Rahmen;
  • Sekundäre Funktionen;
  • Verarbeitung von Daten senden;
  • Nachrichten anzeigen

Alle diese Teile natürlich bedingt, da niemand einen Brei von dem Code oder im Gegenteil stört, die Schlüsselteile in andere Dateien herstellen. Aber ich denke, der Handler ist besser, um mit einer Datei zu tun, so dass es praktisch ist, um ihn an andere Projekte anzuschließen.

Rahmen

In dieser Phase erstellen wir drei Variablen: $ my_email (die Mailbox, auf die Daten gesendet werden), $ path_log (Pfad zu Protokolldatei) und $ TIME_BACK (Time Return User zurück an die Site).

// Geben Sie Ihre Mailbox $ my_email an \u003d " [E-Mail geschützt]"; // Geben Sie an, wo die Protokolle von $ path_log \u003d" log.txt "gespeichert werden; // Geben Sie den Benutzer auf die Site (en) $ time_back \u003d 3;

Sekundäre Funktionen

Hier beschreiben wir fünf Funktionen, die die Datenverarbeitung vereinfachen.

Nachrichtenausgabevorlagen:

Funktion error_msg ($ message) ($ message \u003d "

"$ Nachricht."

"Zurück $ Meldung;) function success_msg ($ message) ($ message \u003d"

"$ Nachricht."

", $ Nachricht zurücksenden;)

Daten aus dem Formular löschen:

Funktion CLEAR_DATA (Return-Trim (Strip_tags ($ var)););)

Brief senden:

Funktion send_mail ($ E-Mail, $ subj, $ Text, $ von) ($ Header \u003d "Von:". $ Von. $ Von. \\ R \\ n "; $ Header. \u003d" MIME-Version: 1.0 \\ r \\ n "; $ Headers. \u003d "Inhaltstyp: Text / HTML; charset \u003d utf-8 \\ r \\ n"; $ ergebnis \u003d mail ($ E-Mail, $ subj, $ text, $ headers); if (! $ Ergebnis) (Rückgabe FALSE;) RETURN TRUE;)

Und die letzte Funktion, die das Telefon und die E-Mail über die Richtigkeit der Aufzeichnung ihres Formats prüft.

Funktion check_format ($ data, $ type) (Fall "E-Mail": $ muster \u003d "/) (+ (* +)) *.) +++ $ / i"; if (pregan_match ($ muster, $ data)) (Return true;) brechen; Fall "Telefon": $ muster \u003d "/ ^ (\\ +? \\ D +)? \\ S * (\\ (\\ d + \\))? [\\ S-] * ([\\ d -] *) $ / "; if (PREG_MATCH ($ Muster, $ Data)) (Return true;) brechen;) Zurücksetzen falsch;)

Wie Sie alle Funktionen einer kleinen Größe sehen können, die wir geschrieben haben. Es war möglich, sie nicht für die Datenverarbeitung zu ertragen, aber wenn Sie etwas ändern oder erweitern müssen, z. B. check_format (), ist es viel einfacher und bequemer.

Verarbeitung von Daten senden.

Zunächst lernen wir, von welcher Seite der Benutzer kam. Dann definieren wir die Variablen, in denen unsere Nachrichten gespeichert werden, und der Status des Sendens von Buchstaben.

// Finden Sie die vorherige Seite ab $ Prev_Page \u003d $ _server ["http_referer"]; // unsere Beiträge $ msg \u003d ""; // Briefstatus $ status_email \u003d "";

Nun, damit es keine Kodierungsprobleme gibt, geben Sie es mit dem Header an.

Header ("Inhaltstyp: Text / HTML; charset \u003d utf-8");

If ($ _-Server ["Request_Method"] \u003d\u003d "Post") (falls (isset ($ _ Post ["Number], $ _Post [" E-Mail "], $ _POST [" Frage "])) ($ nummer \u003d Clear_data ($ _POST ["Nummer"]); $ email \u003d clear_data ($ _ Post ["E-Mail"]); $ frage \u003d clear_data ($ _ post ["Frage"]); if (check_format ($ nummer, "telefon) ") && check_format ($ E-Mail," E-Mail ") &&! Leer ($ Frage)) (// Wir bilden $ e_title \u003d" (! Lang: Neue Nachricht"; $e_body = "!} "; $ e_body. \u003d" "$ E_body. \u003d" Telefon: ". $ Nummer; $ e_body. \u003d"
"; $ e_body. \u003d" Mail: ". $ E-Mail; $ e_body. \u003d"
"; $ e_body. \u003d" Frage: "$ Frage; $ e_body. \u003d""; $ e_body. \u003d"»
Wir werden Ihnen bald antworten. ");) Sonst ($ status_email \u003d" ERROR "; $ msg \u003d error_msg (" Beim Senden eines Schreibens ist ein Fehler aufgetreten. ");) // Schreiben Sie an die $ STR \u003d" TIME: ". Datum ( "DMY G: I: S") "\\ n \\ r"; $ str \u003d "Telefon:". Nummer $ "\\ n \\ r"; $ str \u003d "Mail"... $ email ".. \\ N \\ r ";. $ str \u003d" Frage "$ Frage." \\ N \\ R "; $ str \u003d" . Letter: . "; $ str \u003d" "$ Status_Email" \\ n \\ r \u003d \u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \\ N \\ R "; file_put_contents ($ path_log, $ str, file_append);) ELSE ($ MSG \u003d error_msg (" Fill aus dem Formular richtig! ");)) sonst ($ msg \u003d error_msg (" Fehler aufgetreten! ");)) sonst (Ausgang;)

Im schriftlichen Code definieren wir, ob ein Formular gesendet wurde, ansonsten schließe ich diese Datei der EXIT-Funktion. Als nächstes überprüfen Sie die Anwesenheit in dem POST-Array von Zellen mit unseren Daten, wenn sie kamen, reinigen sie von möglichem Müll. Überprüfen Sie nach der Reinigung die E-Mail- und Telefonformate sowie das Vorhandensein von Text in einer variablen Frage. Als nächstes bilden wir einen Brief schreiben, senden und Schreib logien, wo zusätzlich zu den Daten, speichern wir den Status einen Brief zu schicken. Wir können also den Betrieb der E-Mail-Funktion nachverfolgen und gleichzeitig die Daten nicht verlieren.

Display-Meldungen

Wir haben nur überlassen, den Benutzer über einen erfolgreichen oder "nicht sehr sehr" -Verfahren zu benachrichtigen, und geben sie mit dem Formular wieder an die Site zurück. Dazu verwenden wir das Markup mit den Einschlüssen des PHP-Skripts.

Um den Benutzer wieder auf den Standort umzuleiten, verwenden wir die AktualisierungsmedaTo, wo sie die Einfügen des PHP-Codes bereits mit den erstellten Variablen herstellen. Wir brauchen noch ein wenig JavaScript zu verwenden, um eine Seite etwas dynamischer zu gestalten. Wir schreiben die TIMEBACK () -Funktion, die sich in umgekehrter Reihenfolge befindet, um Sekunden vor der Umleitung zu zählen.

Feedback-Formular-Handler

Sie werden auf die Seite zurückgeschickt durch

Das ist alles, die Form des Feedbacks ist fertig.

Vom Autor: Sei gegrüßt, Freunde. In diesem Artikel wird eine Fortsetzung sein, in der wir ohne einen Neustart des Seite Formulardaten an den Server implementiert senden. Hier setzen wir dieses Thema fort und erfahren, wie Sie Daten auf dem Server übernehmen und das Senden des Formulars in E-Mail (E-Mail) umsetzen. Lassen Sie uns also das Feedback-Formular konfigurieren und fügen Sie die Möglichkeit hinzu, sie an E-Mail zu senden.

Quelldateien des aktuellen Artikels können Sie Software herunterladen.

In dieser Lektion werden wir alles so einfach wie möglich und alleine tun. Um Buchstaben zu senden, verwenden wir insbesondere die spezielle PHP-Funktion namens mail (), die früher verwendet wurde, um Buchstaben zu verwenden.

Beginnen wir mit der Mail-Funktionssyntax. Diese Funktion hat drei obligatorische Parameter und zwei optional (nicht erforderlich). Erforderliche Parameter:

e-Mail-Empfänger (Sie können auch mehrere Adressen angeben, über das Komma übertragen).

betreff - Gegenstand des Briefes;

nachricht - Buchstabe Text.

Aus optionalen Parametern wird nur der erste fast immer verwendet, der für die Header des Buchstabens verantwortlich ist: Codierung, Absender, Brieftyp usw.

Versuchen wir, einen Brief mit dieser Funktion zu senden. Machen Sie es in der Mail.php-Datei, in der wir Daten aus dem Formular akzeptieren. Der neue Code dieser Datei ist:

Ihre Nachricht gebucht

";) Sonst (Echo"

Error!

"; }

< ? php

$ bis \u003d " [E-Mail geschützt]" ; // Adresse des Empfängers

$ Thema \u003d. "Anruf anrufen"; // Buchstabe Betreff.

$ Message \u003d. "Name: ($ _POST [" Name "]) \\ r \\ n"; // Namen zum Text hinzufügen

$ Nachricht. \u003d. "Telefon: ($ _POST [" Telefon "])"; // Fügen Sie dem Text das Telefon hinzu

$ Header. \u003d. "Inhaltstyp: Text / Plain; charset \u003d utf-8". "\\ r \\ n"; // Wir setzen die Kodierung ein

$ Header. \u003d "Von: [E-Mail geschützt]"." \\ r \\ n "; // den Absender hinzufügen

if (Mail ($ to, $ thema, $ message, $ header)) (

echo. "

Ihre Nachricht gebucht

" ;

) Sonst (

echo. "

Error!

" ;

Dies ist der Mindestcode, mit dem Sie bereits eine Nachricht bilden können, um zu senden. Lassen Sie uns überprüfen, wie es funktioniert:

Wie Sie sehen, funktioniert der Code als Antwort, erhalten wir eine Nachricht, dass der Brief gesendet wird. Da wir auf einem lokalen Server arbeiten, werden hier Briefe wirklich nicht an die E-Mail-Funktion gesendet, sie werden in einem speziellen Ordner als Textdatei gespeichert. In Open Server ist dies ein Ordner \\ userdata \\ temp \\ eMail \\. Lassen Sie uns diesen Ordner öffnen und stellen Sie sicher, dass der Buchstabe da ist, es wird so aussehen:

Ausgezeichnet! Es gibt mehrere Punkte, die das JS-Skript nicht verhindern. Sie müssen beispielsweise eine Nachricht anzeigen, die nicht durch einfachen Text, nämlich den HTML-Code, sowie die Formularfelfelder nach dem Senden der Nachricht löschen. Der endgültige JS-Code ist:

$ (Funktion (). Senden (E.PREVENTDEFAULT (E); VAR Data \u003d $ (diese) .Serialisieren (); $ .ajax ((URL: "mail.php", Typ: "Post", Daten: Daten, Beforesert: Funktion () () ($ ("# Senden"). Weiter (). Text (I "Senden ...");), Erfolg: Funktion (res) ($ ("Input"). Finden ("Input"). ). Val (""); $ ("# Senden"). Next (). HTML (RES);), Fehler: Funktion () (Alarm ("Fehler!");)));););););) ;

$ (Funktion () () (

$ ("#Recall"). Senden (Funktion (E) (

e. Standard verhindern ();

vAR-Daten \u003d $ (diese). serialize ();

$. ajax (((

uRL: "mail.php",

typ: "Post",

daten: Daten,

beforesert: Funktion () () (

$ ("#Submit"). Nächster (). Text ("Ich sende ...");

Fortsetzung des Themas:
Os

Ich habe einen Web-Service, den ich überregte, den ich als "Link zum Service hinzufügen" registriert habe, für den HTTPS erforderlich ist, und Zertifikat. Unten ist mein Code zum Erstellen einer Instanz ...