Kā nosūtīt tīmekļa lapu pa e-pastu? Vienkāršākais veids, kā nosūtīt datus pa e-pastu, izmantojot HTML un PHP Kā nosūtīt grāmatzīmi pa e-pastu
Viena no populārākajām funkcijām vietnē ir pieteikuma vai pasūtījuma veidlapa, no kuras dati tiek nosūtīti pa e-pastu vietnes īpašniekam. Parasti šādas veidlapas ir vienkāršas un sastāv no diviem vai trim laukiem datu ievadīšanai. Kā izveidot šādu pasūtījuma veidlapu? Tas prasa valodas lietošanu HTML marķējums un PHP programmēšanas valoda.
Pati HTML iezīmēšanas valoda ir vienkārša; jums vienkārši jāizdomā, kā un kur ievietot noteiktus tagus. Ar PHP programmēšanas valodu lietas ir nedaudz sarežģītākas.
Programmētājam šādas formas izveide nav grūta, bet HTML maketētājam dažas darbības var šķist sarežģītas.
Izveidojiet datu iesniegšanas veidlapu html
Pirmā rinda būs šāda
Tagad saliksim visu kopā.
Tagad padarīsim veidlapas laukus obligātus. Mums ir šāds kods:
Izveidojiet failu, kas pieņem datus no HTML veidlapas
Tas būs fails ar nosaukumu send.php
Failā pirmajā posmā jums ir jāpieņem dati no ziņu masīva. Lai to izdarītu, mēs izveidojam divus mainīgos:
$fio = $_POST["fio"];
$e-pasts = $_POST["e-pasts"];
PHP mainīgo nosaukumu priekšā ir $ zīme, un katras rindas beigās tiek ievietots semikolu. $_POST ir masīvs, kurā tiek nosūtīti dati no veidlapas. HTML formā nosūtīšanas metode ir norādīta kā metode = "post". Tādējādi divi mainīgie tiek ņemti no html veidlapas. Lai aizsargātu savu vietni, šie mainīgie ir jāizlaiž cauri vairākiem filtriem - php funkcijām.
Pirmā funkcija pārveidos visas rakstzīmes, kuras lietotājs mēģinās pievienot veidlapai:
Šajā gadījumā php netiek veidoti jauni mainīgie, bet tiek izmantoti esošie. Filtrs pārveidos rakstzīmi "<" в "<". Также он поступить с другими символами, встречающимися в html коде.
Otrā funkcija atšifrē URL, ja lietotājs mēģina to pievienot formai.
$fio = urldecode($fio);
$email = urldecode($email);
Ar trešo funkciju mēs noņemsim atstarpes no rindas sākuma un beigām, ja tādas ir:
$fio = trim($fio);
$email = trim($email);
Ir arī citas funkcijas, kas ļauj filtrēt php mainīgos. To izmantošana ir atkarīga no tā, cik jūs uztraucaties, ka uzbrucējs mēģinās pievienot programmas kodu šai html e-pasta iesniegšanas veidlapai.
No HTML formas uz PHP failu pārsūtīto datu validācija
Lai pārbaudītu, vai šis kods darbojas un vai dati tiek pārsūtīti, varat to vienkārši parādīt ekrānā, izmantojot atbalss funkciju:
atbalss $fio;
atbalss"
";
echo $email;
Otrā rinda šeit ir nepieciešama, lai atdalītu php mainīgo izvadi dažādās rindās.
Saņemto datu nosūtīšana no HTML veidlapas uz e-pastu, izmantojot PHP
Lai nosūtītu datus pa e-pastu, PHP ir jāizmanto pasta funkcija.
pasts("uz kuru adresi sūtīt", "vēstules priekšmets", "Ziņojums (vēstules pamatteksts)","No: no kura e-pasta vēstule nosūtīta \r\n");
Piemēram, jums ir jānosūta dati uz vietnes īpašnieka vai pārvaldnieka e-pastu [aizsargāts ar e-pastu].
Vēstules tēmai jābūt skaidrai, un vēstules ziņojumā ir jābūt lietotāja norādītajam HTML formā.
pasts (" [aizsargāts ar e-pastu]", "Pieteikums no vietnes", "Pilns vārds:".$fio.". E-pasts: ".$email ,"No: [aizsargāts ar e-pastu]\r\n");
Nepieciešams pievienot nosacījumu, kas pārbaudīs, vai veidlapa ir nosūtīta, izmantojot PHP uz norādīto e-pasta adresi.
if (mail(" [aizsargāts ar e-pastu]", "Pasūtīt no vietnes", "Pilns vārds:".$fio.". E-pasts: ".$email ,"No: [aizsargāts ar e-pastu]\r\n"))
{
echo "ziņa veiksmīgi nosūtīta";
) cits (
}
Tādējādi faila send.php programmas kods, kas nosūtīs HTML veidlapas datus uz e-pastu, izskatīsies šādi:
$fio = $_POST["fio"];
$e-pasts = $_POST["e-pasts"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = trim($fio);
$email = trim($email);
//atbalss $fio;
//atbalss "
";
//echo $email;
if (mail(" [aizsargāts ar e-pastu]", "Pieteikums no vietnes", "Pilns vārds:".$fio.". E-pasts: ".$email ,"No: [aizsargāts ar e-pastu]\r\n"))
( atbalss "ziņojums veiksmīgi nosūtīts";
) cits (
echo "ziņojuma nosūtīšanas laikā radās kļūdas";
}?>
Trīs rindiņas, lai pārbaudītu, vai dati tiek pārsūtīti uz failu, tiek komentēti. Ja nepieciešams, tos var noņemt, jo tie bija nepieciešami tikai atkļūdošanai.
Veidlapas iesniegšanas HTML un PHP kodu ievietojam vienā failā
Šī raksta komentāros daudzi cilvēki uzdod jautājumu, kā pārliecināties, ka gan HTML forma, gan PHP kods datu nosūtīšanai uz e-pastu ir vienā failā, nevis divos.
Lai īstenotu šo darbu, failā send.php jāievieto formas HTML kods un jāpievieno nosacījums, kas pārbaudīs mainīgo lielumu klātbūtni POST masīvā (šis masīvs tiek nosūtīts no formas). Tas ir, ja mainīgie masīvā neeksistē, jums ir jāparāda lietotājam forma. Pretējā gadījumā jums ir jāsaņem dati no masīva un jānosūta adresātam.
Apskatīsim, kā nomainīt PHP kodu send.php failā:
//pārbaudiet, vai POST masīvā pastāv mainīgie
if(!isset($_POST["fio"]) un !isset($_POST["e-pasts"]))(
?> ) cits (
//parādīt formu
$fio = $_POST["fio"];
$e-pasts = $_POST["e-pasts"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = apgriezt($fio);
$email = trim($email);
if (mail(" [aizsargāts ar e-pastu]", "Pieteikums no vietnes", "Pilns vārds:".$fio.". E-pasts: ".$email ,"No: [aizsargāts ar e-pastu]\r\n"))(
echo "Ziņojums veiksmīgi nosūtīts";
) cits (
echo "Nosūtot ziņojumu, radās kļūdas";
}
}
?>
Mēs pārbaudām mainīgā esamību POST masīvā ar PHP funkciju isset(). Izsaukuma zīme pirms šīs funkcijas nosacījumā nozīmē noliegumu. Tas ir, ja mainīgais neeksistē, mums ir jāparāda sava forma. Ja es nebūtu ievietojis izsaukuma zīmi, nosacījums burtiski nozīmētu "ja pastāv, tad parādiet veidlapu". Un tas mūsu gadījumā ir nepareizi. Protams, jūs varat to pārdēvēt par index.php. Ja pārdēvējat failu, neaizmirstiet pārdēvēt faila nosaukumu rindā