Вэб хуудсыг хэрхэн имэйлээр илгээх вэ? HTML болон PHP ашиглан имэйлээр өгөгдөл илгээх хамгийн энгийн хэлбэр Хавчуургыг имэйлээр хэрхэн илгээх вэ
Сайтын хамгийн алдартай функцүүдийн нэг бол програм эсвэл захиалгын маягт бөгөөд өгөгдлийг сайтын эзэмшигч рүү имэйлээр илгээдэг. Дүрмээр бол ийм маягтууд нь энгийн бөгөөд өгөгдөл оруулах хоёр буюу гурван талбараас бүрдэнэ. Ийм захиалгын маягтыг хэрхэн үүсгэх вэ? Энэ нь хэлний хэрэглээг шаарддаг HTML тэмдэглэгээболон PHP програмчлалын хэл.
HTML тэмдэглэгээний хэл нь өөрөө энгийн бөгөөд та тодорхой хаягуудыг хэрхэн, хаана байрлуулахаа л олох хэрэгтэй. PHP програмчлалын хэлээр бүх зүйл арай илүү төвөгтэй байдаг.
Програмистын хувьд ийм маягт үүсгэх нь тийм ч хэцүү биш боловч HTML layout дизайнерын хувьд зарим үйлдэл нь хэцүү мэт санагдаж магадгүй юм.
html дээр өгөгдөл оруулах маягт үүсгэ
Эхний мөр дараах байдалтай байна
Одоо бүгдийг нэгтгэж үзье.
Одоо маягтын талбаруудыг заавал байлгахыг зөвшөөрье. Бидэнд дараах код байна:
HTML маягтаас өгөгдлийг хүлээн авах файл үүсгэ
Энэ нь send.php нэртэй файл байх болно
Файлд, эхний шатанд та шуудангийн массиваас өгөгдлийг хүлээн авах хэрэгтэй. Үүнийг хийхийн тулд бид хоёр хувьсагч үүсгэдэг:
$fio = $_POST["fio"];
$email = $_POST["имэйл"];
PHP хэл дээрх хувьсагчийн нэрсийн өмнө $ тэмдэг байх ба мөр бүрийн төгсгөлд цэг таслал тавьдаг. $_POST нь маягтаас өгөгдөл илгээгдэх массив юм. Html хэлбэрээр илгээх аргыг method="post" гэж зааж өгсөн байдаг. Тиймээс хоёр хувьсагчаас авсан html хэлбэрүүд. Сайтаа хамгаалахын тулд та эдгээр хувьсагчдыг хэд хэдэн шүүлтүүрээр дамжуулах хэрэгтэй - php functions .
Эхний функц нь хэрэглэгчийн маягтанд нэмэхийг оролдох бүх тэмдэгтүүдийг хөрвүүлнэ.
Энэ тохиолдолд php дээр шинэ хувьсагч үүсгэхгүй, харин байгаа хувьсагчдыг ашигладаг. Шүүлтүүрийн хийх зүйл бол дүрийг өөрчлөх явдал юм "<" в "<". Также он поступить с другими символами, встречающимися в html коде.
Хоёрдахь функц нь хэрэглэгч маягтанд нэмэхийг оролдвол URL-г тайлдаг.
$fio = urldecode($fio);
$мэйл = urldecode($имэйл);
Гурав дахь функцийн тусламжтайгаар бид мөрийн эхэн ба төгсгөлд байгаа зайг арилгах болно.
$fio = засах ($fio);
$мэйл = тайрах($имэйл);
Php хувьсагчдыг шүүх боломжтой өөр функцууд байдаг. Тэдгээрийн хэрэглээ нь халдагчид энэ html имэйл илгээх маягт руу програмын код нэмэхийг оролдох вий гэж та хэр санаа зовж байгаагаас хамаарна.
HTML маягтаас PHP файл руу шилжүүлсэн өгөгдлийг баталгаажуулах
Энэ код ажиллаж байгаа эсэх, өгөгдөл дамжуулагдаж байгаа эсэхийг шалгахын тулд та зүгээр л echo функцийг ашиглан дэлгэцэн дээр харуулах боломжтой.
echo $fio;
цуурай "
";
echo $email;
Энд байгаа хоёр дахь мөр нь php хувьсагчийн гаралтыг өөр өөр мөрөнд хуваахад шаардлагатай.
Хүлээн авсан өгөгдлийг HTML маягтаас PHP ашиглан имэйл рүү илгээх
Мэдээллийг цахим шуудангаар илгээхийн тулд та PHP дахь шуудангийн функцийг ашиглах хэрэгтэй.
mail("ямар хаяг руу илгээх вэ", "захидлын сэдэв", "Мессеж (захидлын хэсэг)","Хэнээс: захидал аль имэйлээс илгээгддэг \r\n");
Жишээлбэл, та сайтын эзэмшигч эсвэл менежерийн имэйл рүү өгөгдөл илгээх хэрэгтэй [имэйлээр хамгаалагдсан].
Захидлын сэдэв нь тодорхой байх ёстой бөгөөд захидлын мессеж нь HTML маягт дээр хэрэглэгчийн заасан зүйлийг агуулсан байх ёстой.
шуудан(" [имэйлээр хамгаалагдсан]", "Сайтаас ирсэн өргөдөл", "Бүтэн нэр:".$fio.". Имэйл: ".$email ,"Хэнээс: [имэйлээр хамгаалагдсан]\r\n");
Заасан имэйл хаяг руу PHP ашиглан маягт илгээсэн эсэхийг шалгах нөхцөлийг нэмэх шаардлагатай.
хэрэв (мэйл(" [имэйлээр хамгаалагдсан]", "Сайтаас захиалга өгөх", "Бүтэн нэр:".$fio.". Имэйл: ".$email ,"Хэнээс: [имэйлээр хамгаалагдсан]\r\n"))
{
echo "мессеж амжилттай илгээгдсэн";
) өөр (
}
HTML маягтын өгөгдлийг имэйл рүү илгээх send.php файлын програмын код дараах байдалтай байна.
$fio = $_POST["fio"];
$email = $_POST["имэйл"];
$fio = htmlspecialchars($fio);
$мэйл = htmlspecialchars($имэйл);
$fio = urldecode($fio);
$мэйл = urldecode($имэйл);
$fio = засах ($fio);
$мэйл = тайрах($имэйл);
//echo $fio;
// цуурай "
";
//echo $email;
хэрэв (мэйл(" [имэйлээр хамгаалагдсан]", "Сайтаас ирсэн өргөдөл", "Бүтэн нэр:".$fio.". Имэйл: ".$email ,"Хэнээс: [имэйлээр хамгаалагдсан]\r\n"))
("мессеж амжилттай илгээгдсэн" цуурай;
) өөр (
echo "мессеж илгээх явцад алдаа гарсан";
}?>
Өгөгдлийг файл руу шилжүүлж байгаа эсэхийг шалгах гурван мөрөнд тайлбар өгнө. Шаардлагатай бол тэдгээрийг арилгах боломжтой, учир нь тэдгээр нь зөвхөн дибаг хийхэд шаардлагатай байсан.
Бид маягтыг илгээх HTML болон PHP кодыг нэг файлд байрлуулдаг
Энэ нийтлэлийн сэтгэгдэлд олон хүмүүс HTML маягт болон имэйл рүү өгөгдөл илгээх PHP код хоёулаа хоёр биш харин нэг файлд байгаа эсэхийг хэрхэн шалгах вэ гэсэн асуултыг асуудаг.
Энэ ажлыг хэрэгжүүлэхийн тулд та формын HTML кодыг send.php файлд байрлуулж, POST массив дахь хувьсагч байгаа эсэхийг шалгах нөхцөлийг нэмэх хэрэгтэй (энэ массивыг маягтаас илгээсэн). Өөрөөр хэлбэл, массив дахь хувьсагч байхгүй бол та хэрэглэгчдэд маягтыг харуулах хэрэгтэй. Үгүй бол та массиваас өгөгдлийг хүлээн авч, хүлээн авагч руу илгээх хэрэгтэй.
send.php файл дахь PHP кодыг хэрхэн өөрчлөхийг харцгаая.
//POST массивт хувьсагч байгаа эсэхийг шалгана
if(!isset($_POST["fio"]) ба !isset($_POST["имэйл"]))(
?> ) өөр (
//маягтыг харуулах
$fio = $_POST["fio"];
$email = $_POST["имэйл"];
$fio = htmlspecialchars($fio);
$мэйл = htmlspecialchars($имэйл);
$fio = urldecode($fio);
$мэйл = urldecode($имэйл);
$fio = засах ($fio);
$мэйл = тайрах($имэйл);
хэрэв (мэйл(" [имэйлээр хамгаалагдсан]", "Сайтаас ирсэн өргөдөл", "Бүтэн нэр:".$fio.". Имэйл: ".$email ,"Хэнээс: [имэйлээр хамгаалагдсан]\r\n"))(
echo "Зурвас амжилттай илгээгдсэн";
) өөр (
echo "Зурвас илгээх явцад алдаа гарлаа";
}
}
?>
Бид POST массив дахь хувьсагч байгаа эсэхийг isset() PHP функцээр шалгадаг. Нөхцөл дэх энэ функцийн өмнөх анхаарлын тэмдэг нь үгүйсгэх гэсэн үг юм. Өөрөөр хэлбэл, хэрэв хувьсагч байхгүй бол бид хэлбэрээ харуулах хэрэгтэй. Хэрэв би анхаарлын тэмдэг тавиагүй бол нөхцөл нь шууд утгаараа "хэрэв байгаа бол маягтыг харуул" гэсэн утгатай болно. Мөн энэ нь манай тохиолдолд буруу юм. Мэдээжийн хэрэг, та үүнийг index.php болгон өөрчилж болно. Хэрэв та файлын нэрийг өөрчилбөл мөрөнд байгаа файлын нэрийг өөрчлөхөө бүү мартаарай