& lt; br & gt;, care este procesată de PHP. // exemplu de procesare a câmpului de e-mail. alte domenii" />

Cum să faceți php pentru a face validarea câmpului de e-mail în formular

  • PHP
  • validare

Buna ziua tuturor!
Ajutați, vă rog, să înțelegeți validarea corectă a e-mailului.
Există un formular HTML (în exemplar se prezintă partea din formular pentru e-mail):







Înțeleg că trebuie să utilizați FILTER_VALIDATE_EMAIL. dar exact unde trebuie să introduceți "eșantionul", care va compara în continuare datele introduse în formular?
Există o idee de a formaliza abordarea generală a validării prin e-mail:
Opțiunea 1:
Dacă în câmpul formularului a fost introdus ceva (isset ($ _ POST ["email"])), atunci începem să verificăm corectitudinea datelor, și anume:
utilizați dacă (! filter_var ($ _ POST ['email'], FILTER_VALIDATE_EMAIL)).
Dacă datele introduse sunt corecte (adică corespund șablonului original, de exemplu $ var = "[email protected]";), atunci vom continua să lucrăm și la alte câmpuri ale formularului.
Și dacă datele introduse sunt incorecte, trimiteți valoarea la matricea de erori ($ errors) și tipăriți un avertisment despre aceasta ($ errors ['email'] = "Email nevalid";). Și dacă nu s-au introdus date, valoarea "goală" este trimisă la aceeași serie de erori (erori $). are deja un mesaj propriu ($ errors ['email'] = "Câmpul obligatoriu nu este completat";).

Opțiunea 2:
Dacă ați trimis un câmp de e-mail gol, apoi atribuie valoarea rezultată la o mulțime de erori și afișează mesajul „Lipsește câmpul obligatoriu“ (așa cum este în parte reprezentată printr-un cod), sau în cazul în care câmpul de e-mail nu este gol (orice date a fost încă introdusă) vom începe să verifice: în cazul în care datele introduse sunt incorecte (de exemplu, care corespunde modelului specificat inițial, de exemplu, $ var = „[email protected]“), apoi trimite rezultatul la o serie de eroare cu mesajul „nu este un e-mail validă“. În caz contrar (dacă rezultatul este corect), vom continua să trecem la verificarea altor formulare.







Cea mai importantă întrebare:
în cazul în care în codul este necesar să se stabilească acest șablon / probă ($ var = „[email protected]), potrivit căruia a impus o comparație va avea loc adresa corectă, astfel încât totul funcționează așa cum este necesar, și că acest model nu pop-up în browser?

Vă mulțumim în avans pentru ajutor!

Cui este interesant - iată soluția:

A fost necesar să eliminați negația înainte de filter_var ($ _ POST ["email"] etc.
Și pentru a specifica un șablon / eșantion, cum a fost cazul în exemplul w3school, nu.
Totul funcționează așa cum ar trebui.

Oh, și încerc, am adăugat răspunsul) Și m-am gândit că, în general, aveți nevoie de toate validarea de la și pentru, uita-te bine la răspunsuri.

Mi-a umplut profilul

Și asta e pentru tine, iartă-mă, ce fel de model este asta? De unde vine și cum intenționați să faceți ceva despre asta? Trebuie să verificați în mod regulat deja la trimiterea formularului. Adică atunci când utilizatorul a apăsat butonul "Trimitere" din formular.

Multe mulțumiri pentru răspuns, dar el, din nefericire, nu mă convine.
Un exemplu de utilizare a funcției FILTER_VALIDATE_EMAIL este de asemenea enumerat aici: www.w3schools.com/php/filter_validate_email.asp
Dar problema este că nu știu unde - în ce loc în codul meu - să definească $ var = "[email protected]" pentru a utiliza acest formular pentru a determina e-mailul, indiferent de ce simboluri vor fi folosite . Am fiecare câmp de eroare pentru fiecare câmp al formularului de eroare. De fapt, o parte din formularul HTML a fost scrisă la începutul întrebării. Nu-mi place foarte mult când un mesaj afișează informații despre toate greșelile făcute imediat. Este mai bine pentru fiecare câmp - în locul atribuit: în cazul meu: este în fața fiecărui câmp unde a fost comis eroarea. Cumva.

Natalia. preferă să utilizeze regulat, pentru că este capriciu meu, dar puteți lua exemplul oferit de W3C, esența nu se va schimba: Pentru a verifica „Salvați“ conținut în orice formă de domeniu ar trebui să otsabmitit (apăsați un buton, sau chiar o dată, dar în orice caz, toate acțiunile pe care le face numai după ceea ce privește sabmita la exemplul dvs. - .. ai nevoie de transfer de date asincron am să completeze răspunsul său prin a spune pe scurt ceea ce este necesar, deoarece nu poate fi formatat cod.







Articole similare

Trimiteți-le prietenilor: