จะส่งหน้าเว็บทางอีเมลได้อย่างไร? รูปแบบการส่งข้อมูลที่ง่ายที่สุดทางอีเมลโดยใช้ HTML และ PHP วิธีส่งบุ๊กมาร์กทางอีเมล
หนึ่งในฟังก์ชันที่ได้รับความนิยมมากที่สุดบนไซต์คือแบบฟอร์มใบสมัครหรือคำสั่งซื้อ ซึ่งข้อมูลจะถูกส่งทางอีเมลไปยังเจ้าของไซต์ ตามกฎแล้วแบบฟอร์มดังกล่าวนั้นเรียบง่ายและประกอบด้วยสองหรือสามฟิลด์สำหรับการป้อนข้อมูล จะสร้างแบบฟอร์มคำสั่งซื้อได้อย่างไร? สิ่งนี้ต้องใช้ภาษา มาร์กอัป HTMLและภาษาโปรแกรม PHP
ภาษามาร์กอัป HTML นั้นเรียบง่าย คุณเพียงแค่ต้องหาวิธีและตำแหน่งที่จะวางแท็กบางแท็ก ด้วยภาษาการเขียนโปรแกรม PHP สิ่งต่างๆ จะซับซ้อนขึ้นเล็กน้อย
สำหรับโปรแกรมเมอร์ การสร้างแบบฟอร์มดังกล่าวไม่ใช่เรื่องยาก แต่สำหรับนักออกแบบเลย์เอาต์ HTML การกระทำบางอย่างอาจดูยาก
สร้างแบบฟอร์มการส่งข้อมูลในรูปแบบ html
บรรทัดแรกจะเป็นดังนี้
ตอนนี้เรามารวบรวมทุกอย่างเข้าด้วยกัน
ตอนนี้เรามาทำให้ฟิลด์ในแบบฟอร์มบังคับ เรามีรหัสดังต่อไปนี้:
สร้างไฟล์ที่รับข้อมูลจากแบบฟอร์ม HTML
นี่จะเป็นไฟล์ชื่อ send.php
ในไฟล์ในขั้นตอนแรก คุณต้องยอมรับข้อมูลจากอาร์เรย์โพสต์ เมื่อต้องการทำเช่นนี้ เราสร้างตัวแปรสองตัว:
$fio = $_POST["fio"];
$อีเมล์ = $_POST["อีเมล์"];
ชื่อตัวแปรใน PHP นำหน้าด้วยเครื่องหมาย $ และมีอัฒภาควางไว้ที่ท้ายแต่ละบรรทัด $_POST คืออาร์เรย์ที่ใช้ส่งข้อมูลจากแบบฟอร์มไป ในรูปแบบ html วิธีการส่งจะถูกระบุเป็น method="post" ดังนั้นจึงดึงตัวแปรสองตัวมาจาก แบบฟอร์ม HTML. เพื่อปกป้องไซต์ของคุณ คุณต้องส่งตัวแปรเหล่านี้ผ่านตัวกรองหลายตัว - ฟังก์ชัน php
ฟังก์ชันแรกจะแปลงอักขระทั้งหมดที่ผู้ใช้จะพยายามเพิ่มลงในแบบฟอร์ม:
ในกรณีนี้ จะไม่สร้างตัวแปรใหม่ใน php แต่จะใช้ตัวแปรที่มีอยู่ สิ่งที่ตัวกรองจะทำคือแปลงร่างตัวละคร”<" в "<". Также он поступить с другими символами, встречающимися в html коде.
ฟังก์ชันที่สองถอดรหัส URL หากผู้ใช้พยายามเพิ่มลงในแบบฟอร์ม
$fio = urldecode($fio);
$email = urldecode($email);
ด้วยฟังก์ชันที่สาม เราจะลบช่องว่างออกจากจุดเริ่มต้นและจุดสิ้นสุดของบรรทัด ถ้ามี:
$fio = ตัดแต่ง($fio);
$email = ตัด($email);
มีฟังก์ชั่นอื่น ๆ ที่ให้คุณกรองตัวแปร php ได้ การใช้งานขึ้นอยู่กับว่าคุณกังวลแค่ไหนว่าผู้โจมตีจะพยายามเพิ่มโค้ดโปรแกรมลงในแบบฟอร์มส่งอีเมล html นี้
การตรวจสอบความถูกต้องของข้อมูลที่ถ่ายโอนจากแบบฟอร์ม HTML ไปยังไฟล์ PHP
เพื่อตรวจสอบว่าโค้ดนี้ใช้งานได้หรือไม่และข้อมูลกำลังถูกถ่ายโอนหรือไม่ คุณสามารถแสดงมันบนหน้าจอโดยใช้ฟังก์ชัน echo:
เสียงสะท้อน $ fio;
เสียงสะท้อน "
";
สะท้อน $ อีเมล์;
จำเป็นต้องใช้บรรทัดที่สองที่นี่เพื่อแยกเอาต์พุตของตัวแปร php ออกเป็นบรรทัดต่างๆ
การส่งข้อมูลที่ได้รับจากแบบฟอร์ม HTML ไปยังอีเมลโดยใช้ PHP
หากต้องการส่งข้อมูลทางอีเมล คุณต้องใช้ฟังก์ชันเมลใน PHP
mail("ที่อยู่ที่จะส่ง", "หัวเรื่องของจดหมาย", "ข้อความ (เนื้อหาของจดหมาย)", "จาก: จดหมายถูกส่งจากอีเมลใด \r\n");
ตัวอย่างเช่น คุณต้องส่งข้อมูลไปยังอีเมลของเจ้าของหรือผู้จัดการไซต์ [ป้องกันอีเมล].
เรื่องของจดหมายควรมีความชัดเจน และข้อความในจดหมายควรมีสิ่งที่ผู้ใช้ระบุไว้ในรูปแบบ HTML
เมล(" [ป้องกันอีเมล]", "ใบสมัครจากเว็บไซต์", "ชื่อเต็ม:".$fio". อีเมล์: ".$อีเมล์"จาก: [ป้องกันอีเมล]\r\n");
จำเป็นต้องเพิ่มเงื่อนไขที่จะตรวจสอบว่าแบบฟอร์มถูกส่งโดยใช้ PHP ไปยังที่อยู่อีเมลที่ระบุหรือไม่
ถ้า (เมล (" [ป้องกันอีเมล]", "สั่งซื้อจากเว็บไซต์", "ชื่อเต็ม:".$fio". อีเมล์: ".$อีเมล์"จาก: [ป้องกันอีเมล]\r\n"))
{
echo "ส่งข้อความเรียบร้อยแล้ว";
) อื่น (
}
ดังนั้นโค้ดโปรแกรมของไฟล์ send.php ซึ่งจะส่งข้อมูลฟอร์ม HTML ไปยังอีเมลจะมีลักษณะดังนี้:
$fio = $_POST["fio"];
$อีเมล์ = $_POST["อีเมล์"];
$fio = htmlอักขระพิเศษ($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = ตัดแต่ง($fio);
$email = ตัด($email);
//สะท้อน $fio;
//เอคโค่"
";
//echo $อีเมล์;
ถ้า (เมล (" [ป้องกันอีเมล]", "ใบสมัครจากเว็บไซต์", "ชื่อเต็ม:".$fio". อีเมล์: ".$อีเมล์"จาก: [ป้องกันอีเมล]\r\n"))
( echo "ส่งข้อความเรียบร้อยแล้ว";
) อื่น (
echo "เกิดข้อผิดพลาดขณะส่งข้อความ";
}?>
สามบรรทัดเพื่อตรวจสอบว่าข้อมูลกำลังถ่ายโอนไปยังไฟล์นั้นถูกใส่เครื่องหมายความคิดเห็นไว้หรือไม่ หากจำเป็น ก็สามารถลบออกได้ เนื่องจากจำเป็นสำหรับการดีบักเท่านั้น
เราวางโค้ด HTML และ PHP สำหรับการส่งแบบฟอร์มไว้ในไฟล์เดียว
ในความคิดเห็นต่อบทความนี้ หลายคนถามคำถามว่าจะแน่ใจได้อย่างไรว่าทั้งแบบฟอร์ม HTML และโค้ด PHP สำหรับการส่งข้อมูลไปยังอีเมลอยู่ในไฟล์เดียว ไม่ใช่สองไฟล์
ในการใช้งานนี้ คุณต้องวางโค้ด HTML ของแบบฟอร์มในไฟล์ send.php และเพิ่มเงื่อนไขที่จะตรวจสอบการมีอยู่ของตัวแปรในอาร์เรย์ POST (อาร์เรย์นี้ถูกส่งจากแบบฟอร์ม) นั่นคือหากไม่มีตัวแปรในอาร์เรย์ คุณจะต้องแสดงแบบฟอร์มให้ผู้ใช้เห็น มิฉะนั้น คุณจะต้องรับข้อมูลจากอาร์เรย์และส่งไปยังผู้รับ
มาดูวิธีการเปลี่ยนโค้ด PHP ในไฟล์ send.php:
//ตรวจสอบว่ามีตัวแปรอยู่ในอาร์เรย์ POST หรือไม่
if(!isset($_POST["fio"]) และ !isset($_POST["email"]))(
?> ) อื่น (
//แสดงแบบฟอร์ม
$fio = $_POST["fio"];
$อีเมล์ = $_POST["อีเมล์"];
$fio = htmlอักขระพิเศษ($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = ตัดแต่ง($fio);
$email = ตัด($email);
ถ้า (เมล (" [ป้องกันอีเมล]", "ใบสมัครจากเว็บไซต์", "ชื่อเต็ม:".$fio". อีเมล์: ".$อีเมล์"จาก: [ป้องกันอีเมล]\r\n"))(
echo "ส่งข้อความเรียบร้อยแล้ว";
) อื่น (
echo "เกิดข้อผิดพลาดขณะส่งข้อความ";
}
}
?>
เราตรวจสอบการมีอยู่ของตัวแปรในอาร์เรย์ POST ด้วยฟังก์ชัน isset() PHP เครื่องหมายอัศเจรีย์หน้าฟังก์ชันนี้ในเงื่อนไขหมายถึงการปฏิเสธ นั่นคือหากไม่มีตัวแปร เราก็ต้องแสดงแบบฟอร์มของเรา ถ้าผมไม่ได้ใส่เครื่องหมายอัศเจรีย์ เงื่อนไขก็จะหมายถึง “ถ้ามีก็แสดงรูป” และนี่เป็นสิ่งที่ผิดในกรณีของเรา โดยปกติแล้ว คุณสามารถเปลี่ยนชื่อเป็น index.php ได้ หากคุณเปลี่ยนชื่อไฟล์อย่าลืมเปลี่ยนชื่อไฟล์ในบรรทัด