Një nga funksionet më të kërkuara në faqe është formulari i aplikimit ose porosisë, të dhënat nga i cili dërgohen me postë te pronari i faqes. Si rregull, forma të tilla janë të thjeshta dhe përbëhen nga dy ose tre fusha për futjen e të dhënave. Si e krijoni një formular të tillë porosie? Kjo kërkon përdorimin e gjuhës së shënjimit HTML dhe gjuhës së programimit PHP.
Gjuha e shënjimit HTML në vetvete është e thjeshtë, ju vetëm duhet të kuptoni se si dhe ku të vendosni etiketa të caktuara. Me gjuhën e programimit PHP, gjërat janë pak më të komplikuara.
Nuk do të jetë e vështirë për një programues të krijojë një formë të tillë, por një kodues HTML mund ta ketë të vështirë të bëjë disa nga veprimet.
Krijoni një formular për dërgimin e të dhënave në html
Rreshti i parë do të jetë i radhës
Tani le t'i bashkojmë të gjitha.
Tani do t'i bëjmë të detyrueshme fushat në formë. Ne kemi kodin e mëposhtëm:
Krijoni një skedar që pranon të dhëna nga një formë HTML
Ky do të jetë një skedar me emrin send.php
Në skedar, në fazën e parë, duhet të pranoni të dhëna nga grupi i postimeve. Për ta bërë këtë, ne krijojmë dy variabla:
$ fio = $ _POST ["fio"];
$ email = $ _POST ["email"];
Para emrave të variablave në php, vendosni një shenjë $, në fund të çdo rreshti, vendosni një pikëpresje. $ _POST është një grup në të cilin kalohen të dhënat nga formulari. Në formën html, metoda e paraqitjes specifikohet si metodë = "post". Pra, dy variabla janë marrë nga forma html. Për të mbrojtur faqen tuaj, ju duhet t'i kaloni këto variabla nëpër disa filtra - funksionet php.
Funksioni i parë konverton të gjithë karakteret që përdoruesi përpiqet të shtojë në formular:
Në këtë rast, variabla të rinj në php nuk krijohen, por përdoren ato ekzistuese. Ajo që filtri do të bëjë është të konvertojë karakterin "<" в "<". Также он поступить с другими символами, встречающимися в html коде.
Funksioni i dytë do të deshifrojë url-në nëse përdoruesi përpiqet ta shtojë atë në formular.
$ fio = urldcode ($ fio);
$ email = urldcode ($ email);
Në funksionin e tretë, ne do të heqim hapësirat nga fillimi dhe fundi i vargut, nëse ka:
$ fio = trim ($ fio);
$ email = shkurtoj ($ email);
Ka edhe funksione të tjera për të filtruar variablat php. Përdorimi i tyre varet nga sa keni frikë se një sulmues do të përpiqet të shtojë kod në këtë formë të dërgimit të të dhënave në postën html.
Verifikimi i të dhënave të kaluar nga forma HTML në skedarin PHP
Për të kontrolluar nëse ky kod funksionon, nëse të dhënat po transmetohen, thjesht mund ta shfaqni atë në ekran duke përdorur funksionin echo:
jehonë $ fio;
jehonë"
";
jehonë $ fio;
Rreshti i dytë është këtu për të ndarë prodhimin e variablave php në linja të ndryshme.
Dërgimi i të dhënave të marra nga formulari HTML në postë duke përdorur PHP
Për të dërguar të dhëna në postë, duhet të përdorni funksionin e postës në PHP.
postë ("në cilën adresë të dërgohet", "subjekti i letrës", "Mesazhi (trupi i mesazhit)", "Nga: nga cila adresë e-mail dërgohet letra \ r \ n");
Për shembull, ju duhet të dërgoni të dhëna në adresën e emailit të pronarit ose menaxherit të faqes [email i mbrojtur]
Subjekti i emailit duhet të jetë i qartë dhe mesazhi i emailit duhet të përmbajë atë që përdoruesi ka specifikuar në formularin HTML.
postë (" [email i mbrojtur]"," Aplikim nga faqja "," Emri i plotë: ". $ Fio.". E-mail: ". $ Email," Nga: [email i mbrojtur]\ r \ n ");
Duhet të shtoni një kusht që do të kontrollojë nëse formulari është dorëzuar duke përdorur PHP në adresën e specifikuar të emailit.
nëse (mail (" [email i mbrojtur]"," Porosit nga faqja "," Emri i plotë: ". $ Fio.". E-mail: ". $ Email," Nga: [email i mbrojtur]\ r \ n "))
{
echo "mesazhi u dërgua me sukses";
) tjeter (
}
Kështu, kodi i programit të skedarit send.php që do të dërgojë të dhënat e formularit HTML në postë do të duket kështu:
$ fio = $ _POST ["fio"];
$ email = $ _POST ["email"];
$ fio = htmlspecialchars ($ fio);
$ email = htmlspecialchars ($ email);
$ fio = urldcode ($ fio);
$ email = urldcode ($ email);
$ fio = trim ($ fio);
$ email = shkurtoj ($ email);
// jehonë $ fio;
// jehonë "
";
// echo $ email;
nëse (mail (" [email i mbrojtur]"," Aplikim nga faqja "," Emri i plotë: ". $ Fio.". E-mail: ". $ Email," Nga: [email i mbrojtur]\ r \ n "))
(jehonë "mesazhi u dërgua me sukses";
) tjeter (
jehonë "gabimet ndodhën gjatë dërgimit të mesazhit";
}?>
Tre rreshta për të kontrolluar nëse të dhënat e kaluara në skedar janë komentuar. Nëse është e nevojshme, mund t'i hiqni ato, pasi ato nevojiteshin vetëm për korrigjimin e gabimeve.
Vendosja e kodit HTML dhe PHP për dërgimin e formularit në një skedar
Në komentet e këtij artikulli, shumë njerëz shtrojnë pyetjen se si të krijojnë formën HTML dhe kodin PHP për dërgimin e të dhënave në postë në një skedar, jo në dy.
Për të zbatuar një punë të tillë, duhet të vendosni kodin HTML të formularit në skedarin send.php dhe të shtoni një kusht që do të kontrollojë praninë e variablave në grupin POST (ky grup kalohet nga formulari). Kjo do të thotë, nëse variablat në grup nuk ekzistojnë, atëherë duhet t'i tregoni formularin përdoruesit. Përndryshe, ju duhet të pranoni të dhëna nga grupi dhe t'i dërgoni ato te adresuesi.
Le të shohim se si të ndryshojmë kodin PHP në skedarin send.php:
// kontrolloni nëse variablat ekzistojnë në grupin POST
nëse (! isset ($ _ POST ["fio"]) dhe! isset ($ _ POST ["email"])) (
?> ) tjeter (
// tregoni formën
$ fio = $ _POST ["fio"];
$ email = $ _POST ["email"];
$ fio = htmlspecialchars ($ fio);
$ email = htmlspecialchars ($ email);
$ fio = urldcode ($ fio);
$ email = urldcode ($ email);
$ fio = trim ($ fio);
$ email = shkurtoj ($ email);
nëse (mail (" [email i mbrojtur]"," Aplikim nga faqja "," Emri i plotë: ". $ Fio.". E-mail: ". $ Email," Nga: [email i mbrojtur]\ r \ n ")) (
echo "Mesazhi u dërgua me sukses";
) tjeter (
echo "Ka pasur gabime në dërgimin e mesazhit";
}
}
?>
Ne kontrollojmë ekzistencën e një variabli në grupin POST duke përdorur funksionin PHP isset (). Një pikëçuditëse përpara këtij funksioni në një kusht do të thotë mohim. Kjo do të thotë, nëse ndryshorja nuk ekziston, atëherë duhet të tregojmë formën tonë. Nëse nuk do të kisha vendosur një pikëçuditëse, atëherë kushti do të thoshte fjalë për fjalë - "nëse ekziston, atëherë trego formën". Dhe kjo është e gabuar në rastin tonë. Natyrisht, ju mund ta riemërtoni atë në index.php. Nëse e riemërtoni skedarin, atëherë mos harroni të riemërtoni emrin e skedarit dhe në rresht