Kako poslati web stranicu e-poštom? Najjednostavniji oblik slanja podataka e-poštom koristeći HTML i PHP Kako poslati oznaku e-poštom
Jedna od najpopularnijih funkcija na web mjestu je obrazac za prijavu ili narudžbu, čiji se podaci šalju e-poštom vlasniku web mjesta. Takvi obrasci u pravilu su jednostavni i sastoje se od dva ili tri polja za unos podataka. Kako izraditi takvu narudžbenicu? To zahtijeva korištenje jezika HTML označavanje i programski jezik PHP.
Sam HTML jezik za označavanje je jednostavan; samo trebate smisliti kako i gdje staviti određene oznake. S programskim jezikom PHP stvari su malo kompliciranije.
Za programera stvaranje takvog obrasca nije teško, ali za dizajnera HTML izgleda neke radnje mogu se činiti teškima.
Napravite obrazac za slanje podataka u html-u
Prvi redak bit će sljedeći
Sada spojimo sve zajedno.
Učinimo sada polja u obrascu obaveznima. Imamo sljedeći kod:
Napravite datoteku koja prihvaća podatke iz HTML obrasca
Ovo će biti datoteka pod nazivom send.php
U datoteci, u prvoj fazi, trebate prihvatiti podatke iz niza pošte. Da bismo to učinili, kreiramo dvije varijable:
$fio = $_POST["fio"];
$e-pošta = $_POST["e-pošta"];
Nazivima varijabli u PHP-u prethodi znak $, a točka-zarez se stavlja na kraju svakog retka. $_POST je niz u koji se šalju podaci iz forme. U html obrascu način slanja naveden je kao method="post". Dakle, dvije varijable su preuzete iz html forme. Kako biste zaštitili svoju stranicu, ove varijable morate propustiti kroz nekoliko filtera - php funkcija.
Prva funkcija će pretvoriti sve znakove koje će korisnik pokušati dodati u obrazac:
U ovom slučaju, nove varijable se ne kreiraju u php-u, već se koriste postojeće. Filtar će transformirati lik "<" в "<". Также он поступить с другими символами, встречающимися в html коде.
Druga funkcija dekodira URL ako ga korisnik pokuša dodati u obrazac.
$fio = urldecode($fio);
$e-pošta = urldecode($e-pošta);
Trećom funkcijom ćemo ukloniti razmake s početka i kraja retka, ako ih ima:
$fio = trim($fio);
$e-pošta = trim($e-pošta);
Postoje i druge funkcije koje vam omogućuju filtriranje php varijabli. Njihova upotreba ovisi o tome koliko ste zabrinuti da će napadač pokušati dodati programski kod u ovaj html obrazac za slanje e-pošte.
Validacija podataka prenesenih iz HTML obrasca u PHP datoteku
Kako biste provjerili radi li ovaj kod i prenose li se podaci, možete ga jednostavno prikazati na ekranu pomoću funkcije echo:
odjek $fio;
jeka "
";
echo $e-pošta;
Drugi red ovdje je potreban za odvajanje izlaza php varijabli u različite retke.
Slanje primljenih podataka iz HTML obrasca na e-poštu pomoću PHP-a
Za slanje podataka e-poštom morate koristiti funkciju pošte u PHP-u.
mail("na koju adresu poslati", "predmet pisma", "Poruka (tijelo pisma)","Od: s koje e-pošte je pismo poslano \r\n");
Na primjer, trebate poslati podatke na e-mail vlasnika ili upravitelja stranice [e-mail zaštićen].
Predmet pisma treba biti jasan, a poruka pisma treba sadržavati ono što je korisnik naveo u HTML obrascu.
pošta(" [e-mail zaštićen]", "Prijava sa stranice", "Puno ime:".$fio.". E-pošta: ".$email ,"Od: [e-mail zaštićen]\r\n");
Potrebno je dodati uvjet koji će provjeravati da li je formular poslan PHP-om na navedenu email adresu.
ako (mail(" [e-mail zaštićen]", "Naručite sa stranice", "Puno ime:".$fio.". E-pošta: ".$email ,"Od: [e-mail zaštićen]\r\n"))
{
echo "poruka uspješno poslana";
) inače (
}
Dakle, programski kod send.php datoteke, koja će poslati podatke HTML obrasca na e-mail, izgledat će ovako:
$fio = $_POST["fio"];
$e-pošta = $_POST["e-pošta"];
$fio = htmlposebni znakovi($fio);
$e-pošta = htmlspecialchars($e-pošta);
$fio = urldecode($fio);
$e-pošta = urldecode($e-pošta);
$fio = trim($fio);
$e-pošta = trim($e-pošta);
//echo $fio;
//jeka "
";
//echo $e-pošta;
ako (mail(" [e-mail zaštićen]", "Prijava sa stranice", "Puno ime:".$fio.". E-pošta: ".$email ,"Od: [e-mail zaštićen]\r\n"))
( echo "poruka uspješno poslana";
) inače (
echo "došlo je do pogreške prilikom slanja poruke";
}?>
Tri retka za provjeru prenosa podataka u datoteku su komentirana. Ako je potrebno, mogu se ukloniti jer su bili potrebni samo za otklanjanje pogrešaka.
HTML i PHP kod za slanje obrasca stavljamo u jednu datoteku
U komentarima na ovaj članak mnogi postavljaju pitanje kako osigurati da i HTML obrazac i PHP kod za slanje podataka na e-mail budu u jednoj datoteci, a ne u dvije.
Da biste implementirali ovaj posao, trebate postaviti HTML kod obrasca u datoteku send.php i dodati uvjet koji će provjeravati prisutnost varijabli u POST nizu (ovaj niz se šalje iz obrasca). Odnosno, ako varijable u nizu ne postoje, korisniku trebate pokazati obrazac. U suprotnom, trebate primiti podatke iz polja i poslati ih primatelju.
Pogledajmo kako promijeniti PHP kod u datoteci send.php:
//provjeri postoje li varijable u POST nizu
if(!isset($_POST["fio"]) i !isset($_POST["email"]))(
?> ) inače (
//pokaži obrazac
$fio = $_POST["fio"];
$e-pošta = $_POST["e-pošta"];
$fio = htmlposebni znakovi($fio);
$e-pošta = htmlspecialchars($e-pošta);
$fio = urldecode($fio);
$e-pošta = urldecode($e-pošta);
$fio = trim($fio);
$e-pošta = trim($e-pošta);
ako (mail(" [e-mail zaštićen]", "Prijava sa stranice", "Puno ime:".$fio.". E-pošta: ".$email ,"Od: [e-mail zaštićen]\r\n"))(
echo "Poruka je uspješno poslana";
) inače (
echo "Došlo je do pogreške prilikom slanja poruke";
}
}
?>
Postojanje varijable u POST nizu provjeravamo PHP funkcijom isset(). Uskličnik ispred ove funkcije u uvjetu znači negaciju. Odnosno, ako varijabla ne postoji, tada trebamo prikazati naš oblik. Da nisam stavio uskličnik, uvjet bi doslovno značio "ako postoji, onda pokaži obrazac." A to je u našem slučaju pogrešno. Naravno, možete ga preimenovati u index.php. Ako preimenujete datoteku, ne zaboravite promijeniti naziv datoteke u retku