Kako poslati spletno stran po e-pošti? Najenostavnejša oblika pošiljanja podatkov po e-pošti z uporabo HTML in PHP Kako poslati zaznamek po e-pošti
Ena izmed najbolj priljubljenih funkcij na spletnem mestu je prijavnica ali naročilnica, katere podatki se po elektronski pošti pošljejo lastniku spletnega mesta. Takšni obrazci so praviloma enostavni in sestavljeni iz dveh ali treh polj za vnos podatkov. Kako ustvariti takšno naročilnico? To zahteva uporabo jezika HTML oznaka in programski jezik PHP.
Sam označevalni jezik HTML je preprost; le ugotoviti morate, kako in kam vstaviti določene oznake. Pri programskem jeziku PHP so stvari nekoliko bolj zapletene.
Za programerja ustvarjanje takšnega obrazca ni težko, za oblikovalca postavitve HTML pa se lahko nekatera dejanja zdijo težka.
Ustvarite obrazec za oddajo podatkov v html
Prva vrstica bo naslednja
Zdaj pa dajmo vse skupaj.
Zdaj pa naredimo polja v obrazcu obvezna. Imamo naslednjo kodo:
Ustvarite datoteko, ki sprejema podatke iz obrazca HTML
To bo datoteka z imenom send.php
V datoteki morate na prvi stopnji sprejeti podatke iz poštnega polja. Da bi to naredili, ustvarimo dve spremenljivki:
$fio = $_POST["fio"];
$email = $_POST["email"];
Pred imeni spremenljivk v PHP je znak $, na koncu vsake vrstice pa je podpičje. $_POST je polje, v katerega se pošiljajo podatki iz obrazca. V obrazcu html je način pošiljanja naveden kot method="post". Tako sta vzeti dve spremenljivki html obrazci. Če želite zaščititi svoje spletno mesto, morate te spremenljivke prenesti skozi več filtrov – php funkcij.
Prva funkcija bo pretvorila vse znake, ki jih bo uporabnik poskušal dodati obrazcu:
V tem primeru se v php ne ustvarijo nove spremenljivke, ampak se uporabijo obstoječe. Filter bo spremenil lik "<" в "<". Также он поступить с другими символами, встречающимися в html коде.
Druga funkcija dekodira URL, če ga uporabnik poskuša dodati v obrazec.
$fio = urldecode($fio);
$email = urldecode($email);
S tretjo funkcijo bomo odstranili presledke z začetka in konca vrstice, če obstajajo:
$fio = trim($fio);
$e-pošta = trim($e-pošta);
Obstajajo še druge funkcije, ki vam omogočajo filtriranje spremenljivk php. Njihova uporaba je odvisna od tega, kako zaskrbljeni ste, da bo napadalec poskusil dodati programsko kodo v ta obrazec za oddajo e-pošte html.
Validacija podatkov, prenesenih iz obrazca HTML v datoteko PHP
Če želite preveriti, ali ta koda deluje in ali se podatki prenašajo, jo lahko preprosto prikažete na zaslonu s funkcijo odmeva:
echo $fio;
odmev "
";
echo $e-pošta;
Druga vrstica tukaj je potrebna za ločevanje izpisa spremenljivk php v različne vrstice.
Pošiljanje prejetih podatkov iz obrazca HTML na e-pošto z uporabo PHP
Za pošiljanje podatkov po e-pošti morate uporabiti funkcijo pošte v PHP.
mail("na kateri naslov poslati", "predmet pisma", "Sporočilo (telo pisma)","Od: iz katere e-pošte je pismo poslano \r\n");
Na primer, podatke morate poslati na e-pošto lastnika ali upravitelja spletnega mesta [e-pošta zaščitena].
Zadeva pisma mora biti jasna, sporočilo pisma pa mora vsebovati tisto, kar je uporabnik navedel v obrazcu HTML.
pošta (" [e-pošta zaščitena]", "Prijava s spletnega mesta", "Polno ime:".$fio.". E-pošta: ".$email ,"Od: [e-pošta zaščitena]\r\n");
Dodati je treba pogoj, ki bo preverjal, ali je bil obrazec poslan s PHP-jem na navedeni elektronski naslov.
če (pošta(" [e-pošta zaščitena]", "Naroči s spletnega mesta", "Polno ime:".$fio.". E-pošta: ".$email ,"Od: [e-pošta zaščitena]\r\n"))
{
echo "sporočilo uspešno poslano";
) drugače (
}
Tako bo programska koda datoteke send.php, ki bo poslala podatke obrazca HTML na e-pošto, videti takole:
$fio = $_POST["fio"];
$email = $_POST["email"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = trim($fio);
$e-pošta = trim($e-pošta);
//odmev $fio;
//odmev "
";
//echo $email;
če (pošta(" [e-pošta zaščitena]", "Prijava s spletnega mesta", "Polno ime:".$fio.". E-pošta: ".$email ,"Od: [e-pošta zaščitena]\r\n"))
( echo "sporočilo uspešno poslano";
) drugače (
echo "med pošiljanjem sporočila je prišlo do napak";
}?>
Tri vrstice za preverjanje, ali se podatki prenašajo v datoteko, so zakomentirane. Po potrebi jih je mogoče odstraniti, saj so bili potrebni le za odpravljanje napak.
HTML in PHP kodo za oddajo obrazca postavimo v eno datoteko
V komentarjih na ta članek se veliko ljudi sprašuje, kako zagotoviti, da bosta obrazec HTML in koda PHP za pošiljanje podatkov na e-pošto v eni datoteki in ne v dveh.
Za izvedbo tega dela morate kodo HTML obrazca postaviti v datoteko send.php in dodati pogoj, ki bo preveril prisotnost spremenljivk v matriki POST (ta matrika je poslana iz obrazca). To pomeni, da če spremenljivke v matriki ne obstajajo, morate uporabniku pokazati obrazec. V nasprotnem primeru morate prejeti podatke iz matrike in jih poslati prejemniku.
Poglejmo, kako spremeniti kodo PHP v datoteki send.php:
//preveri, ali obstajajo spremenljivke v matriki POST
if(!isset($_POST["fio"]) in !isset($_POST["email"]))(
?> ) drugače (
//pokaži obrazec
$fio = $_POST["fio"];
$email = $_POST["email"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = trim($fio);
$e-pošta = trim($e-pošta);
če (pošta(" [e-pošta zaščitena]", "Prijava s spletnega mesta", "Polno ime:".$fio.". E-pošta: ".$email ,"Od: [e-pošta zaščitena]\r\n"))(
echo "Sporočilo uspešno poslano";
) drugače (
echo "Med pošiljanjem sporočila je prišlo do napake";
}
}
?>
Obstoj spremenljivke v matriki POST preverimo s PHP funkcijo isset(). Klicaj pred to funkcijo v pogoju pomeni zanikanje. Se pravi, če spremenljivka ne obstaja, potem moramo pokazati svojo obliko. Če ne bi postavil klicaja, bi pogoj dobesedno pomenil "če obstaja, pokaži obrazec." In to je v našem primeru narobe. Seveda ga lahko preimenujete v index.php. Če preimenujete datoteko, ne pozabite preimenovati imena datoteke v vrstici