Trimiterea unui formular în php. Cel mai simplu formular pentru trimiterea datelor la e-mail folosind HTML și PHP

Lucrări de laborator 1. Protocol HTTP. Metode GET, POST. Formulare HTML.

Partea teoretică

Ciclul de viață al solicitării în protocolul HTTP

  1. Browser deschide conexiunea cu serverul
  2. Browserul trimite o cerere către server pentru a prelua pagina
  3. Serverul generează un răspuns (cel mai adesea un cod HTML) către browser și închide legătura
  4. Browserul analizează codul HTML și redă pagina

Acordați atenție la evidențiate îndrăzneţ. Chiar înainte de a vedea pagina solicitată pe ecran, conexiunea la server este închisă, iar el a uitat de tine. Și când introduceți o adresă diferită (sau aceeași), sau faceți clic pe un link sau faceți clic pe un buton de formular HTML, același model se va repeta.

Această schemă de lucru se numește "client server". Clientul în acest caz este browserul.

Așadar, conexiunea la serverul web durează doar câteva secunde (sau fracțiuni de secunde) - aceasta este perioada de timp dintre clic pe un link (sau altă metodă de solicitare) și începutul paginii care este afișată. Majoritatea browserelor afișează un fel de indicator în timpul conexiunii, cum ar fi MS Internet Explorer afișează animația în colțul din dreapta sus.

Pentru a scăpa definitiv de percepția HTTP ca o „cutie neagră”, să ne „prefacem” că suntem un browser care folosește telnet”a:

  1. Să fugim telnet ya.ru 80
  2. Introduceți următoarele în fereastra terminalului (dacă intrarea nu este afișată, este în regulă):

GET/HTTP/1.0[aici apăsați Enter]
Gazdă: ya.ru[aici apăsați Enter de două ori]

Apăsarea Enter corespunde, de regulă, unei combinații de caractere CR + LF, notate ca \r\n. Această notație va fi folosită mai jos.

Codul HTML al paginii http://ya.ru/ va rula pe ecran. După cum puteți vedea - nimic complicat.

Sursă Pagina curentă poate fi vizualizată în aproape orice browser selectând „Vizualizare|Sursă” din meniu.

Poze, rame - toate acestea sunt cereri suplimentare, exact aceleasi. De fapt, de unde provin imaginile din fereastra browserului: la analizarea (procesarea) codului HTML, browserul, lovind eticheta https://i2.wp.com/ imagine"> face o cerere suplimentară către server - cerere imagini, și îl afișează în locul unde se află eticheta .



Încerca:

Telnet www.google.ru 80

GET /php/php5en.png HTTP/1.0\r\n
Gazdă: ya.ru\r\n\r\n

Ceea ce veți vedea va rula pe ecran dacă vizualizați acest fișier png într-un editor de text.

I-2. Formulare HTML. Metode de trimitere a datelor către server

Probabil că v-ați întâlnit deja cu formulare HTML:

  1. Introdu numele tau:

Salvând acest cod într-un fișier HTML și vizualizându-l cu browserul dvs. preferat, veți vedea un formular HTML familiar:

Introdu numele tau:

Să aruncăm o privire mai atentă la etichetele utilizate în acest scurt exemplu.

Etichetă

, care are o etichetă de capăt asociată
, setează de fapt forma. Atributele sale sunt ambele opționale:

  • acțiune- indică adresa URL (complet sau relativ) la care trimis forma. Trimiterea unui formular este la fel ca o solicitare către server ca oricare alta (cum am descris mai sus).

Dacă acest atribut nu este specificat, majoritatea browserelor (mai precis, toate browserele pe care le cunosc) trimit formularul la documentul curent, adică „în sine”. Aceasta este o abreviere convenabilă, dar conform standardului atribut HTML este necesară acțiunea.

  • metodă - cale depunerea formularului. Sunt doi dintre ei.
    • OBȚINE- transmiterea datelor formularului către bara de adresa.
      Este posibil să fi observat pe diverse site-uri prezența simbolului „?” la sfârșitul adresei URL. și următoarele date în format parametru=valoare. Aici "parametru" corespunde sens atribut Nume elemente de formular (vezi mai jos despre etichetă ), și „valoare” la conținutul atributului valoare(de exemplu, conține introducerea utilizatorului în câmpul de text al aceleiași etichete ).
      De exemplu, încercați să căutați ceva în Yandex și acordați atenție barei de adrese a browserului dvs. Aceasta este metoda GET.
    • POST- datele formularului sunt trimise către organismul de cerere. Dacă nu este complet clar (sau complet de neînțeles) despre ce este vorba - nu vă faceți griji, vom reveni la această problemă în curând.

Dacă atributul metodă nespecificat - „GET” este implicit.

Etichetă - seturi element de formă, definit de atribut tip :

  • Sens "text" specifică un câmp de introducere a textului pe o singură linie
  • Sens "Trimite" specifică un buton care, atunci când este făcut clic, îl va face trimitere formulare pe server

Alte valori sunt posibile (și nu este singura etichetă care definește un element de formular), dar le vom acoperi în capitolele ulterioare.

Deci, ce se întâmplă când facem clic pe butonul „OK”?

  1. Browserul analizează elementele incluse în formular și formulare din atributele lor nume și valoare datele formularului. Să presupunem că numele este introdus Vasia. În acest caz, datele formularului sunt nume=Vasya&okbutton=OK
  2. Browserul stabilește o conexiune cu serverul, trimite o cerere către server pentru documentul specificat în atribut acțiune etichetă
    , folosind metoda de trimitere a datelor specificată în atribut metodă(în acest caz, GET), pasând datele formularului în cerere.
  3. Serverul analizează cererea primită, generează un răspuns, îl trimite către browser și închide conexiunea
  4. Browserul afișează documentul primit de la server

Trimiterea manuală a aceleiași solicitări (folosind telnet) arată astfel (să presupunem că Numele domeniului site - www.example.com):

telnet www.example.com 80

GET /cgi-bin/form_handler.cgi?name=Vasya&okbutton=OK HTTP/1.0\r\n
Gazdă: www.example.com\r\n
\r\n

După cum probabil ați ghicit până acum, să faceți clic pe un buton de trimitere dintr-un formular cu o metodă de trimitere „GET” este același lucru cu introducerea adresei URL corespunzătoare (cu un semn de întrebare și date de formular la sfârșit) în bara de adrese a browserului: http://www.example.com/cgi-bin/form_handler.cgi?name=Vasya&okbutton=OK

De fapt, metoda GET este folosită ori de câte ori solicitați un document de la server prin simpla introducere a URL-ului acestuia sau făcând clic pe un link. Folosind , adresa URL este pur și simplu atașată cu un semn de întrebare și date de formular.

Acum să înlocuim prima linie a formularului nostru cu următoarele:

Am specificat metoda de trimitere „POST”. În acest caz, datele sunt trimise către server într-un mod ușor diferit:

telnet www.example.com 80

POST /cgi-bin/form_handler.cgi HTTP/1.0\r\n
Gazdă: www.example.com\r\n
Tip de conținut: application/x-www-form-urlencoded\r\n
Lungimea conținutului: 22\r\n
\r\n
nume=Vasya&okbutton=OK

Când utilizați metoda POST, datele formularului sunt trimise după „două intrări” - în corp cerere. Orice lucru de mai sus este real. antet cerere (și când am folosit metoda GET, datele formularului au fost trimise în antet). Pentru ca serverul să știe pe ce octet să termine citirea corpului cererii, există o linie în antet lungimea conținutului; cam la fel ca datele formularului vor fi transmise parametru1=valoare1¶metru2=valoare2..., iar valorile sunt transmise ca urlencode - adică în același mod ca în cazul metodei GET, dar în corpul cererii - serverul este informat de antetul „Content-Type: application/x-www- formular-urlencoded".

Avantajul metodei POST este că nu există limită pentru lungimea șirului de date din formular.

Când folosiți metoda POST, nu este posibilă trimiterea formularului pur și simplu „urmând linkul”, așa cum a fost cazul GET.

Când utilizați un formular POST, în atributul său acțiune puteți specifica după semnul întrebării și parametrii GET-form. Astfel, metoda POST include și metoda GET.

Deci Prieteni. Acesta este ultimul videoclip din secțiunea despre învățarea formularelor HTML.

În ultimul tutorial video, am descoperit diferențele dintre metodele GET și POST pentru trimiterea datelor. Și am creat un fișier care este proiectat să proceseze date dintr-un formular HTML. Iar pentru a finaliza studiul final al formularelor, ne rămâne să învățăm cum să colectăm și să trimitem date din formular.

În acest videoclip, vom vorbi despre gestionarea datelor de formular, care este exact ceea ce este necesar pentru a colecta date din câmpurile de formular și apoi a le procesa. În acest videoclip, vom învăța cum nu numai să colectăm date din câmpuri, ci și să le trimitem pe e-mail. Nu vor exista caracteristici de prelucrare a datelor și altele asemenea. Vom folosi doar cel mai mult varianta simpla colectarea și trimiterea datelor. Vom trimite datele pe E-mail, pe care îl specificăm în handler. Aici merită să ne amintim că handlerul este un fișier în format php. Și din moment ce învățăm HTML, vom vorbi foarte pe scurt despre PHP. Și luați în considerare un exemplu specific de trimitere a datelor la e-mail.

Manipulator de formulare.

După cum am menționat mai sus, acesta este un fișier în format PHP, care, folosind diverse funcții, variabile și matrice globale, va putea colecta date din formular și le va trimite către cutie poștală. Vom lua în considerare cea mai simplă și mai primitivă versiune a handler-ului de formulare. Nu va face nicio validare pe teren sau ceva de genul ăsta. Singurul lucru pe care îl vom verifica în acest tutorial video este dacă un e-mail cu date de formular a fost trimis la e-mailul nostru sau ceva a mers prost.

Trimiterea datelor pe e-mail.

Data handler-ul este un cod PHP destul de mic care va prelua toate datele din câmpurile formularului, le va procesa și ni le va trimite prin poștă.

Pentru a trimite datele formularului la e-mail, vom folosi funcția de e-mail. Folosind funcția, putem specifica E-mailul la care trebuie trimise toate datele, subiectul scrisorii și mesajul în sine, care va consta din datele colectate din formular.

Dacă să vorbească limbaj simplu. Asta este în acest tutorial video. Vom analiza cum să creăm un formular de feedback pe site și să îl facem să funcționeze. Și când un vizitator dorește să ne scrie ceva, vom primi mesajul lui pe Adresa de e-mail. Totul este destul de simplu de fapt. Tot ce trebuie să faci este să parcurgi tutorialul despre învățarea formularelor HTML și să urmărești acest videoclip pentru a afla cum să faci totul pe site-ul tău.

Lecție video: Manipulator de formulare. Trimiterea datelor pe e-mail.

Referințele HTML și alte materiale pot și ar trebui descărcate!

În următorul tutorial video vom începe noua sectiune despre crearea tabelelor în HTML. Și vom ști

Pentru a organiza transferul de date către server folosind un formular, va trebui să implementați un formular HTML în care vizitatorii site-ului își vor introduce informațiile și codul PHP, al cărui scop este să accepte și să proceseze datele primite pe server.

Formular de trimitere HTML

Formularul de pe pagină este format din etichete ..., în interiorul căruia sunt plasate etichetele câmpurilor de intrare informații text, etichete de componente personalizate (de exemplu, o casetă combinată), etichete pentru caseta de selectare și încărcare fișier .

* Pentru HTML5, este, de asemenea, posibil să plasați etichete de câmpuri de formular nu în interiorul etichetelor de formular, ci oriunde în pagină. În același timp, pentru fiecare astfel de câmp, trebuie specificat atributul „form” pentru a determina cu ce formă de trimitere ar trebui să interacționeze.

Deci, cea mai simplă trimitere a formularului poate conține următorul cod:


O valoare:
Valoarea B:

Elemente de formular și parametrii acestora:

action="myform.php"– atributul „acțiune” determină ce fișier php va procesa datele trimise. În acest exemplu, datele vor fi trimise în fișierul „myform.php” aflat în același director cu pagina formularului. Dacă acest atribut nu este specificat în mod explicit, datele formularului vor fi trimise la adresa paginii formularului însuși.

method="post"– parametrul metodă definește metoda de transfer de date POST sau GET. Mai multe despre acest lucru în articolul „Diferențe între metodele POST și GET” . Dacă nu specificați atributul în mod explicit, metoda GET va fi utilizată în mod implicit.

Text „Valoarea A:”Și „Valoarea B:” adăugat numai în scopul conceperii și înțelegerii formularului pentru utilizator. Nu este necesar să adăugați acest lucru pentru transferul de date, dar pentru ca utilizatorul să înțeleagă ce să introducă, merită precizat.

Etichete sunt folosite pentru a forma diferite controale de formular.

tip="text"– atributul „tip” definește tipul câmpului. În funcție de tipul specificat, aspect elementul și scopul acestuia. Valoarea atributului „text” specifică faptul că elementul va fi afișat în browser ca un câmp text cu o singură linie în care utilizatorul își poate introduce șirul.

name="data1"– atributul „nume” indică numele, sau mai bine zis indexul datelor din matricea primită de server. Acesta este un parametru obligatoriu, prin care în handlerul php se va putea accesa apoi valoarea transmisă. Numele poate fi ales în mod arbitrar, cu toate acestea, este mai convenabil atunci când această valoare are un sens clar.

tip="trimite"- etichetă cu această valoare a parametrului „tip” va fi afișat pe pagină ca buton. De fapt, poți să faci fără un buton din formular. Dacă, de exemplu, există câmpuri de text în formular, atunci trimiterea se poate face prin simpla apăsare a „Enter” de pe tastatură. Dar a avea un buton face forma mai clară.

value="(!LANG:Trimiteți" !}– în acest caz (pentru type="submit") definește doar legenda de pe buton. Pentru type="text", de exemplu, acesta va fi textul care va fi afișat în câmpul de text.

Ca rezultat, pe pagină acest cod va arăta cam așa:

O valoare:
Valoarea B:

Făcând clic pe butonul, datele vor fi trimise către pagina specificată, iar dacă acestea există și funcționează corect, datele vor fi prelucrate.

Procesarea datelor din formularul HTML trimis în PHP

Datele trimise în modul descris sunt plasate în tablourile superglobale $_POST, $_GET și $_REQUEST. $_POST sau $_GET vor conține date în funcție de metoda trimisă. $_REQUEST conține date trimise prin oricare dintre metodele specificate.

$_POST, $_GET și $_REQUEST sunt tablouri asociative ale căror câmpuri de index se potrivesc cu atributele „nume” ale etichetelor . În consecință, pentru a lucra cu datele din fișierul myform.php, puteți atribui variabilelor valorile elementelor unei astfel de matrice, specificând numele câmpului ca index:

// pentru metoda GET
$a = $_GET[ „data1” ];
$b = $_GET[ „data2”];

// pentru metoda POST
$a = $_POST[ „data1” ];
$b = $_POST[ „data2”];

// cu orice metodă
$a = $_CERERE[ „data1” ];
$b = $_CERERE[ „data2”];

Verificarea completarii campurilor de formular

Uneori, atunci când primiți date, trebuie să verificați dacă utilizatorul a trimis un formular gol. Puteți utiliza funcția goală pentru aceasta.

dacă (gol ($_REQUEST["data1" ])) (
ecou „Câmpul nu este completat”;
} altceva(
ecou „Câmpul a fost umplut”;
$a = $_CERERE[ „data1” ];
}

De obicei, această soluție este suficientă. Dacă trebuie să introduceți text, va fi clar dacă este introdus sau nu. Cu toate acestea, dacă utilizatorul introduce zero în mod intenționat pentru calcul, atunci funcția goală va arăta că nu există nicio valoare. Prin urmare, pentru astfel de situații, este mai bine să utilizați funcția isset. Acesta va verifica în mod explicit dacă valoarea este setată sau nu.

dacă (isset ($_REQUEST["data1" ])) (
ecou „Câmpul a fost umplut”;
$a = $_CERERE[ „data1” ];
} altceva(
ecou „Câmpul nu este completat”;
}

Actualizat la 12.12.2015

În ciuda faptului că subiectul trimiterii de mesaje de e-mail direct de pe paginile site-ului este deja destul de bătut, dar judecând după scrisorile pe care le primesc de la vizitatorii site-ului meu, ajung la concluzia că mulți au încă lacune de cunoștințe în aceste aspecte.

Deci, în acest tutorial vom învăța cum să facem un formular pentru trimiterea de mesaje de e-mail din paginile site-ului cu verificarea corectitudinii introducerii datelor. Acestea. dacă un câmp al formularului nu este completat, scriptul va da o eroare și va anunța vizitatorul despre aceasta. Puteți vedea un exemplu despre cum funcționează un astfel de formular. Dacă completați acest formular și faceți clic pe butonul: Trimite un mesaj atunci voi primi mesajul tau.

Avantajul de a trimite mesaje în acest fel este evident:

1. Nu trebuie să „străluciți pe Internet” dvs adresa poștală, ceea ce înseamnă că nu va ajunge la spammeri.

2. Dacă vizitatorul dorește să vă pună o întrebare sau nu trebuie să întrebe ceva, copiați adresa E-mail, deschide-ți client de mail, scrie un mesaj etc. Vizitatorul va completa rapid datele solicitate în formular și vă va trimite un mesaj.

3. Cu o astfel de organizare părere cu vizitatori, probabilitatea de a vă livra un mesaj este de aproape 100%, mai ales dacă adresa de corespondență este legată de domeniul dvs. La urma urmei, nodurile intermediare sunt excluse dintr-un lanț lung de corespondență. Aceasta înseamnă că fiabilitatea livrării corespondenței crește dramatic.

Cum se creează un formular pentru a trimite mesaje?

De regulă, astfel de scripturi constau din două părți, iar codul este situat în două fișiere diferite:

  • Primul dosar- acesta este formularul în sine, în care sunt completate datele mesajului.
  • Al doilea dosar este un fișier de gestionare care primește date din formular (primul fișier) și le trimite la adresa de e-mail specificată în script. Dar aceste părți ale scenariului funcționează întotdeauna în perechi.

Scoatem prima parte a scenariului în dosar separatși numiți-o: mail.php. Acest fișier va conține formularul de introducere a datelor. Nume de fișier mail.php Am luat-o condiționat, puteți numi acest fișier cum doriți. Acest fișier poate avea altă extensie, de exemplu .html.

Pentru a contacta vizitatorii site-ului la acest fișier, aceștia fac de obicei un link simplu: scrieți autorului site-ului, trimiteți un mesaj sau ceva de genul acesta. Când un vizitator face clic pe un astfel de link, el ajunge la o pagină separată cu un formular în care trebuie să introduceți date (informații) pentru a trimite un mesaj.

Deci tu creezi fișier nou, dă-i un nume: mail.php sau mail.htmlși lipiți codul în el Listarea 1.

Listarea 1









Pentru a trimite un mesaj autorului site-ului, utilizați următorul formular:



Numele dumneavoastră:


Email-ul tau:


Mesajul dvs:




Acesta este cel mai simplu formular, format din doar 3 câmpuri pentru introducerea datelor. Am numit aceste câmpuri: Numele dumneavoastră, Email-ul tau, Mesajul dvs. Dacă este necesar, numărul de câmpuri poate fi mărit.

Primele două câmpuri: Numele dumneavoastră, Email-ul tau, sunt descrise de etichete:

Numele dumneavoastră:

dar fiecăruia îi este atribuit propriul nume, care este numit identificator: nume="nume"Și name="email" respectiv.

Al treilea câmp pentru introducerea unui mesaj este descris de etichete:

Mesajul dvs:

Acest câmp are un identificator: nume = "mizerie".

Și, desigur, există două butoane: Trimite un mesajȘi formă clară.

Datelor (informațiilor) pe care vizitatorul le introduce în formular li se atribuie identificatorii corespunzători: Nume, e-mailȘi mizerie Amintiți-vă - acest lucru este important!

Pentru ușurință în proiectare, întregul formular este plasat într-un tabel obișnuit, aspectul, care poate fi proiectat folosind , am această clasă: class="td_border", nu il aduc aici, daca e cazul, adaugati-l si voi, dupa gustul dumneavoastra.

handler de fișiere.

A doua parte a scriptului constă dintr-un fișier de gestionare: mail2.php, în care metoda POST toate datele cu identificatorii corespunzători sunt transferate: Nume, e-mailȘi mizerie. Aici, aceste date sunt plasate în variabile: $nume, $email, $mizerie.

Creați un fișier mail2.phpși scrie codul în el Lista 2:

Lista 2

$nume = $_POST[„nume”];
$email = $_POST[„e-mail”];
$mizerie = $_POST[„mizerie”];

$REMOTE_ADDR = $_POST["REMOTE_ADDR"];

dacă (isset($nume))
{
$nume = substr($nume,0,20); //Nu poate avea mai mult de 20 de caractere
dacă (gol ($nume))
{
ecou"

Nu s-a dat niciun nume!!!

";
ecou "";
Ieșire;
}
}
altfel
{
$nume = "nespecificat";
}

dacă (isset($email))
{
$email = substr($email,0,20); //Nu poate avea mai mult de 20 de caractere
dacă (gol ($email))
{
ecou"

E-mail nespecificat!!!

";
ecou" Reveniți și completați corect formularul.";
Ieșire;
}
}
altfel
{
$email = "nespecificat";
}

dacă (isset($mizerie))
{
$mess = substr($mess,0,1000); //Nu poate avea mai mult de 1000 de caractere
dacă (gol ($mizerie))
{
ecou"

Mesajul nu a fost postat!!!

";
ecou" Reveniți și completați corect formularul.";
Ieșire;
}
}
altfel
{
$mess = "nespecificat";
}

$i = "nespecificat";
if ($nume == $i ȘI $e-mail == $i ȘI $mizerie == $i)
{
echo "Atenție! A apărut o eroare! Nu ați completat câmpurile pentru mesaje!";
Ieșire;
}

$to=" [email protected] site-ul web ";
$subiect = " Mesaj de pe site";
$message = "Numele expeditorului: $nume .\nAdresa de e-mail: $email\nMesaj: $mess .\nAdresa IP: $_SERVER";
e-mail ($to,$subject,$message,"Content-type:text/plain; charset = windows-1251 ") sau tipăriți "Nu pot trimite e-mail!!!";
ecou"

Vă mulțumim că ați trimis mesajul dvs.

Este foarte important pentru mine!

Cu siguranță vei primi un răspuns în curând.”;
Ieșire;
?>

Acest fișier verifică datele introduse de vizitatorul site-ului în formular, apoi trimite un mesaj la adresa de e-mail specificată.

Dacă câmpurile sunt goale sau completate incorect, scriptul va returna un mesaj vizitatorului indicând motivul specific.

Vă rugăm să rețineți că fișierul: mail2.php trebuie să aibă o extensie .php , deoarece Trimiterea unui mesaj se face folosind funcția mail PHP.

Și, desigur, Găzduirea dvs. trebuie să sprijine Job PHP. Acest lucru se aplică în principal găzduirii gratuite, deși recent chiar și pe hosting gratuit PHP este instalat aproape peste tot.

În cod Lista 2 este simplu, corectează toate valorile evidențiate cu roșu pentru a se potrivi cerințelor tale, și anume:

  • notează-ți Adresa de e-mail, către care vor fi trimise mesajele (variabilă $to);
  • corectați subiectul mesajului (variabilă $subiect);
  • acordați atenție codificării set de caractere=windows-1251). Scrieți codificarea care este utilizată pe site-ul dvs. Pe internetul vorbitor de limbă rusă, codificarea poate fi: "utf-8" sau „Windows-1251”. Dacă faceți o greșeală cu codificarea, textul din scrisoare va fi afișat incorect (krakozyabry).

Asta este de fapt tot, acum rămâne să încărcați fișierele: mail.phpȘi mail2.php iar pe site-ul dvs. va apărea un formular convenabil pentru trimiterea mesajelor.



Comentarii la acest articol (lecție):

Mulțumesc pentru lecție. E adevărat ce se spune că totul vine la timp. Astăzi aveam să caut pe internet cum să fac un formular de contact pentru site și unul independent. Înțeleg că asta se va potrivi.

Buna lectie! Mulțumiri!

Mulțumesc Andrey, bună lecție.

Multumesc, cred ca va ajuta

Savin Dmitry Alexandrovich (SAVIN DMITRY ALEXANDROVICH) vă scrie, vreau să știu totul în detaliu despre formularele în CSS, știu puține despre asta: mai detaliat despre proprietatea acțiunii, deoarece știu că acțiunea este un link către documentul în care cererea de date este trimisă sau datele în sine din formular, sau ceva de genul acesta.method="post" prelucrarea datelor în dimensiunile cele mai mari mai degrabă decât obține, etc. Vă rog, mai multe despre formulare, aproape că am o problemă cu ele.

Salut Andrei! Salutări, Ahmad. Așa că vreau să creez și „Adaugă comentariul tău” pe site, astfel încât vizitatorii să-și poată lăsa Recenziile. Ce cod ar trebui să scriu? Mulțumesc, mi-a plăcut. Ahmad

Frumos! sfat foarte util!

Este util, este util, dar nu pornește. După completarea formularului, este afișată lista mail2.php

Util, apoi util, dar nu rulează. După completarea formularului, este afișată lista mail2.php

Totul merge bine, doar butoanele nu se dovedesc a fi voluminoase ca ale autorului. Imi poate spune cineva cum se fac butoanele volumetrice? Mulțumesc autorului!

dar la mine nu merge. Mai exact, funcționează la jumătate. scrisoarea trimite, dar goală. datele de la mail1 nu merg la mail2

Nu vine la poștă. Care este captura? Nu înțeleg cum va trimite ceva fără autentificare și parolă. Ce este un server de mail? Formă simplă și tot

Multumesc pentru formular! Lucru! Cine nu lucrează - urmați cu atenție fiecare pas. Nici eu nu am inteles bine. Andrei, multumesc din nou!

Va rog ajutati, formularul a introdus totul pare a fi Ok, dar mesajul nu ajunge la mail-ul pe care l-am indicat, desi mesajul este scris trimis...

Spune-mi, cum pot să mă asigur că, după trimiterea/trimiterea fără succes a unei scrisori, nu se deschide o fereastră nouă, dar scrierea este în cea veche?

Andrei. Am înțeles că este chemat handlerul. Nu știu încă multe despre php. Dar iată ce aș dori să obțin: există o singură pagină cu formularul de e-mail, adică. după ce faceți clic pe „Trimite mesaj” nu se deschide o nouă fereastră, dar pagina curentă se schimbă. Adică, după cum am înțeles, este dinamic. Nu mi-am dat seama cum să fac asta, așa că cer un sfat.

Andrey, spune-mi te rog, forma funcționează grozav în chrome, dar există o problemă cu exploratorul. E-mailurile nu sunt livrate și nu sunt afișate mesaje de eroare sau de trimitere. Ce se întâmplă aici? Multumesc anticipat

Frumoasa lectie! Mulțumiri!

Mulțumiri. Totul merge grozav)

nu există etichete de închidere /p în cod. De ce?

Avertisment: mail(): „sendmail_from” nu este setat în php.ini sau antetul personalizat „From:” lipsește în E:Roomsu362571transport-online.netwwwmail.php pe linia 66 Nu se poate trimite e-mail!!! În - cum se dovedește Cum să fie ??

Nu îmi pot da seama de codificare. Dacă prescrieți Windows-1251 - textul scriptului din mesaj este normal, textul mesajului în sine vine la e-mail cu un crocodil. iar dacă puneți utf-8 - textul scriptului în mesajul din mail - semne de întrebare, iar textul mesajului din formular - normal. Cum pot face asta și asta normal?

nu funcționează pentru mine, dar site-ul nu este încă găzduit, când îl voi pune?

Totul funcționează, mulțumesc pentru scenariu! Vă rog să-mi spuneți cum să o fac astfel încât atunci când faceți clic pe butonul de trimitere să nu se deschidă pagina noua cu un manipulator. Ce ar rămâne site-ul pe pagina unde se afla înainte de a face clic pe butonul de trimitere?

cum să faci câmpul de introducere a e-mailului mai înalt?

Dacă trebuie să trimiteți scrisori la mai multe adrese, trebuie doar să adăugați adresele necesare separate prin virgule, astfel: $to = " [email protected] site-ul web, [email protected], [email protected]";

Cum îl pot redirecționa către o altă pagină după ce trimit un mesaj?

este $to = " [email protected] site"; întrebare: dacă este necesar să trimiți la 2 adrese! una dintre adresele din forma $to = "$email"; cu alte cuvinte, funcționalitatea „sfătuiește un prieten" cu duplicarea mesajului către e-mailul specificat . Mulțumesc.

Din anumite motive, formularul de feedback nu funcționează pentru mine și niciunul dintre ele nu funcționează. Se preface că mesajul a fost trimis, dar nu ajunge la e-mail.

Salut! Vă rugăm să explicați de ce nu funcționează pe hosting, scrie: „Nu pot trimite un e-mail”. Și pe Lockalhost pe Denver funcționează bine. Care este problema?...

de ce am mai multe forme, dar nu ara scrie

Mulțumesc mult. Totul este foarte simplu și accesibil. Am folosit exemplul tău pe gosdogovor.ru. Tocmai am ajustat puțin designul pentru mine și compoziția câmpurilor: http://www.gosdogovor.ru/easuzcon.html. Mulțumesc din nou.

Băieți, dacă încercați să trimiteți un mesaj de la dvs server local, tobish de pe un site încă nepublicat pe internet - nu vei reuși. Pune pe o găzduire și vei fi fericit)

Andrey, cum să faci astfel încât, atunci când faci clic pe buton, să fie trimis un mesaj cu un anumit text la o anumită adresă? Ajuta-ma te rog: [email protected]

Formularul în sine este de obicei conceput pentru a primi informații de la utilizator pentru a fi transferate în continuare pe server, unde datele formularului sunt primite de programul de gestionare. Un astfel de program poate fi scris în orice limbaj de programare la nivelul serverului, cum ar fi PHP, Perl etc. Adresa programului este indicată în atributul de acțiune al etichetei

așa cum se arată în exemplul 1.

Exemplul 1: Trimiterea datelor din formular

HTML5 IE Cr Op Sa Fx

Date de formular

În acest exemplu, datele din formular indicate de atributul nume (login și parolă) vor fi transmise într-un fișier la /example/handler.php. Dacă nu este specificat atributul de acțiune, atunci transferul are loc la adresa paginii curente.

Transferul pe server are loc în două metode diferite: GET și POST, pentru a seta metoda în etichetă

este utilizat atributul metodei, iar valorile sale sunt cuvintele cheie get și post. Dacă atributul metodei nu este setat, atunci în mod implicit datele sunt trimise către server folosind metoda GET. În tabel. 1 arată diferențele dintre aceste metode.

Ce metodă este utilizată este ușor de determinat de bara de adrese a browserului. Dacă a apărut un semn de întrebare în el și adresa arăta astfel, atunci acesta este cu siguranță un GET.

http://www.google.ru/search?q=%D1%81%D0%B8%D1%81%D1%8C%D0%BA%D0%B8&ie=utf-8

Combinația unică de opțiuni din bara de adrese identifică în mod unic pagina, astfel încât paginile cu adrese ?q=node/add și ?q=node sunt considerate diferite. Această caracteristică este utilizată de sistemele de management al conținutului (CMS, Sistem de management al conținutului) pentru a crea multe pagini ale site-ului. În realitate, se folosește un singur fișier, care primește o cerere GET și, conform acesteia, formează conținutul documentului.

Următoarele sunt utilizări tipice pentru aceste metode pe site-uri web.

OBȚINE

Transferarea datelor text mici către server; Cautare site.

Motoarele de căutare, formularele de căutare de pe site sunt trimise întotdeauna folosind metoda GET, aceasta vă permite să partajați rezultatele căutării cu prietenii, să trimiteți un link prin poștă sau să-l postați pe forum.

POST

Trimiterea de fișiere (fotografii, arhive, programe etc.); trimiterea de comentarii; adăugarea și editarea mesajelor pe forum, blog.

Lucrul cu formularul în mod implicit are loc în fila curentă a browserului, în timp ce este permisă modificarea acestei setări atunci când trimiteți formularul și deschiderea handler-ului de formular într-o filă sau cadru nou. Acest comportament este specificat prin „numele contextului”, care este valoarea atributului țintă al etichetei . Valorile populare sunt _blank pentru a deschide formularul într-o fereastră sau filă nouă și numele cadrului, care este dat de atributul nume al etichetei

În acest exemplu, când se face clic pe butonul Trimitere, rezultatul trimiterii formularului se deschide într-un cadru numit zonă .

Elementele de formular sunt în mod tradițional plasate în interiorul unei etichete

, definind astfel datele care vor fi transmise serverului. În același timp, HTML5 are capacitatea de a separa formularul de elementele sale. Acest lucru se face pentru comoditate și versatilitate, astfel încât un aspect complex poate conține mai multe forme care nu ar trebui să se intersecteze între ele sau, de exemplu, unele elemente sunt afișate folosind scripturi într-un loc pe pagină, iar formularul în sine este situat în altul. Legătura dintre formular și elementele sale are loc în acest caz prin identificatorul de formular, iar la elemente ar trebui adăugat atributul formular cu o valoare egală cu acest identificator (exemplul 3).

Exemplul 3: Asocierea unui formular cu câmpuri

HTML5 IE Cr Op Sa Fx

Forma

În acest exemplu, eticheta

este identificat în mod unic prin identificatorul de autentificare și form="auth" este atașat câmpurilor care urmează să fie trimise prin intermediul formularului. Totodată, comportamentul elementelor nu se modifică, la apăsarea butonului, login-ul și parola sunt trimise la handler-ul handler.php.

Deși parametrii de trimitere a formularului sunt în mod tradițional specificați în etichetă , acestea pot fi mutate și în butoanele de trimitere din formulare (