Jedna od najtraženijih funkcija na stranici je obrazac za prijavu ili narudžbu čiji se podaci šalju poštom vlasniku stranice. U pravilu su takvi obrasci jednostavni i sastoje se od dva ili tri polja za unos podataka. Kako kreirate takav obrazac za narudžbu? To zahtijeva korištenje HTML označnog jezika i PHP programskog jezika.
Sam HTML jezik za označavanje je jednostavan, samo trebate shvatiti kako i gdje staviti određene oznake. S programskim jezikom PHP stvari su malo kompliciranije.
Programeru neće biti teško izraditi takav obrazac, ali HTML koderu može biti teško izvršiti neke od radnji.
Napravite obrazac za slanje podataka u html-u
Prvi red će biti sljedeći
Ajmo sad sve zajedno.
Sada ćemo polja u obrascu učiniti obaveznim. Imamo sljedeći kod:
Izradite datoteku koja prihvaća podatke iz HTML obrasca
Ovo će biti datoteka pod nazivom send.php
U datoteci, u prvoj fazi, morate prihvatiti podatke iz polja posta. Da bismo to učinili, kreiramo dvije varijable:
$ fio = $ _POST ["fio"];
$ email = $ _POST ["e-pošta"];
Imenima PHP varijabli prethodi znak $ i točka-zarez na kraju svakog retka. $ _POST je niz u koji se prosljeđuju podaci iz obrasca. U html obrascu, submit metoda je navedena kao method = "post". Dakle, dvije varijable su preuzete iz html obrasca. U svrhu zaštite vaše stranice, ove varijable trebate proći kroz nekoliko filtara – php funkcija.
Prva funkcija pretvara sve znakove koje korisnik pokuša dodati u obrazac:
U ovom slučaju se nove varijable u php-u ne kreiraju, već se koriste postojeće. Filtar će pretvoriti znak "<" в "<". Также он поступить с другими символами, встречающимися в html коде.
Druga funkcija će dekodirati url ako ga korisnik pokuša dodati u obrazac.
$ fio = urldecode ($ fio);
$ email = urldecode ($ email);
U trećoj funkciji ćemo ukloniti razmake s početka i kraja niza, ako ih ima:
$ fio = trim ($ fio);
$ email = trim ($ email);
Postoje i druge funkcije za filtriranje php varijabli. Njihova upotreba ovisi o tome koliko se bojite da će napadač pokušati dodati kod ovom obliku slanja podataka na html poštu.
Provjera valjanosti podataka proslijeđenih iz HTML obrasca u PHP datoteku
Kako biste provjerili radi li ovaj kod, jesu li podaci preneseni, jednostavno ga možete prikazati na ekranu pomoću funkcije echo:
odjek $ fio;
jeka "
";
echo $ email;
Drugi red je ovdje da podijeli izlaz php varijabli u različite retke.
Slanje primljenih podataka iz HTML obrasca na poštu pomoću PHP-a
Za slanje podataka na poštu, trebate koristiti funkciju pošte u PHP-u.
mail ("na koju adresu poslati", "predmet pisma", "Poruka (tijelo poruke)", "Od: s koje adrese e-pošte se pismo šalje \ r \ n");
Na primjer, trebate poslati podatke na adresu e-pošte vlasnika ili upravitelja stranice [e-mail zaštićen]
Predmet e-pošte trebao bi biti jasan, a poruka e-pošte trebala bi sadržavati ono što je korisnik naveo u HTML obrascu.
pošta (" [e-mail zaštićen]"," Aplikacija sa stranice "," Puni naziv: ". $ Fio.". E-pošta: ". $ E-pošta," Od: [e-mail zaštićen]\ r \ n ");
Morate dodati uvjet koji će provjeriti je li obrazac poslan pomoću PHP-a na navedenu adresu e-pošte.
ako (pošta (" [e-mail zaštićen]"," Narudžba sa stranice "," Puni naziv: ". $ Fio.". E-pošta: ". $ E-pošta," Od: [e-mail zaštićen]\ r \ n "))
{
echo "poruka je uspješno poslana";
) drugo (
}
Dakle, programski kod datoteke send.php koja će slati podatke HTML obrasca na poštu izgledat će ovako:
$ fio = $ _POST ["fio"];
$ email = $ _POST ["e-pošta"];
$ fio = htmlspecialchars ($ fio);
$ email = htmlspecialchars ($ email);
$ fio = urldecode ($ fio);
$ email = urldecode ($ email);
$ fio = trim ($ fio);
$ email = trim ($ email);
// echo $ fio;
// jeka "
";
// echo $ email;
ako (pošta (" [e-mail zaštićen]"," Aplikacija sa stranice "," Puni naziv: ". $ Fio.". E-pošta: ". $ E-pošta," Od: [e-mail zaštićen]\ r \ n "))
(echo "poruka je uspješno poslana";
) drugo (
echo "došlo je do pogrešaka tijekom slanja poruke";
}?>
Tri retka za provjeru jesu li podaci proslijeđeni datoteci komentirani. Ako je potrebno, možete ih ukloniti, jer su bili potrebni samo za otklanjanje pogrešaka.
Stavljanje HTML i PHP koda za slanje obrasca u jednu datoteku
U komentarima na ovaj članak mnogi ljudi postavljaju pitanje kako napraviti i HTML obrazac i PHP kod za slanje podataka na poštu u jednoj datoteci, a ne u dvije.
Da biste implementirali takav rad, trebate staviti HTML kod obrasca u datoteku send.php i dodati uvjet koji će provjeravati prisutnost varijabli u POST nizu (ovaj se niz prosljeđuje iz obrasca). Odnosno, ako varijable u nizu ne postoje, tada morate pokazati obrazac korisniku. U suprotnom, trebate prihvatiti podatke iz niza i poslati ih primatelju.
Pogledajmo kako promijeniti PHP kod u datoteci send.php:
// provjeriti postoje li varijable u POST polju
if (! isset ($ _ POST ["fio"]) i! isset ($ _ POST ["email"])) (
?> ) drugo (
// pokazati obrazac
$ fio = $ _POST ["fio"];
$ email = $ _POST ["e-pošta"];
$ fio = htmlspecialchars ($ fio);
$ email = htmlspecialchars ($ email);
$ fio = urldecode ($ fio);
$ email = urldecode ($ email);
$ fio = trim ($ fio);
$ email = trim ($ email);
ako (pošta (" [e-mail zaštićen]"," Aplikacija sa stranice "," Puni naziv: ". $ Fio.". E-pošta: ". $ E-pošta," Od: [e-mail zaštićen]\ r \ n ")) (
echo "Poruka je uspješno poslana";
) drugo (
echo "Bilo je pogrešaka prilikom slanja poruke";
}
}
?>
Provjeravamo postojanje varijable u POST polju pomoću funkcije PHP isset (). Uskličnik ispred ove funkcije u uvjetu znači negaciju. Odnosno, ako varijabla ne postoji, onda trebamo pokazati svoj oblik. Da nisam stavio uskličnik, tada bi uvjet doslovno značio - "ako postoji, onda pokaži oblik." A to je u našem slučaju pogrešno. Naravno, možete ga preimenovati u index.php. Ako preimenujete datoteku, ne zaboravite preimenovati naziv datoteke i u retku