แบบฟอร์มที่สวยงามสำหรับการส่งข้อความ รูปแบบการส่งข้อมูลที่ง่ายที่สุดทางอีเมลโดยใช้ HTML และ PHP

หนึ่งในฟังก์ชันที่ได้รับความนิยมมากที่สุดบนไซต์คือแบบฟอร์มใบสมัครหรือคำสั่งซื้อ ซึ่งข้อมูลจะถูกส่งทางอีเมลไปยังเจ้าของไซต์ ตามกฎแล้วแบบฟอร์มดังกล่าวนั้นเรียบง่ายและประกอบด้วยสองหรือสามฟิลด์สำหรับการป้อนข้อมูล จะสร้างแบบฟอร์มคำสั่งซื้อได้อย่างไร? สิ่งนี้ต้องใช้ภาษามาร์กอัป HTML และภาษาการเขียนโปรแกรม PHP

ภาษามาร์กอัป HTML นั้นเรียบง่าย คุณเพียงแค่ต้องหาวิธีและตำแหน่งที่จะวางแท็ก ด้วยภาษาการเขียนโปรแกรม PHP สิ่งต่างๆ จะซับซ้อนขึ้นเล็กน้อย

สำหรับโปรแกรมเมอร์ การสร้างแบบฟอร์มดังกล่าวไม่ใช่เรื่องยาก แต่สำหรับนักออกแบบเลย์เอาต์ HTML การกระทำบางอย่างอาจดูยาก

สร้างแบบฟอร์มการส่งข้อมูลในรูปแบบ html

บรรทัดแรกจะเป็นดังนี้

นี่เป็นองค์ประกอบที่สำคัญมากของแบบฟอร์ม ในนั้นเราจะระบุว่าข้อมูลจะถูกถ่ายโอนอย่างไรและไฟล์ใด ในกรณีนี้ ทุกอย่างจะถูกถ่ายโอนโดยใช้วิธี POST ไปยังไฟล์ send.php โปรแกรมในไฟล์นี้จะต้องได้รับข้อมูลตามนั้น โดยจะอยู่ในอาร์เรย์โพสต์ และส่งไปยังที่อยู่อีเมลที่ระบุ

กลับมาคืนฟอร์มกันเถอะ บรรทัดที่สองจะมีช่องสำหรับป้อนชื่อเต็มของคุณ มีรหัสดังต่อไปนี้:

ประเภทของแบบฟอร์มคือข้อความ กล่าวคือ ผู้ใช้จะสามารถป้อนหรือคัดลอกข้อความได้ที่นี่จากแป้นพิมพ์ พารามิเตอร์ชื่อประกอบด้วยชื่อของแบบฟอร์ม ในกรณีนี้คือ fio ซึ่งทุกอย่างที่ผู้ใช้ป้อนในฟิลด์นี้จะถูกส่งภายใต้ชื่อนี้ พารามิเตอร์ตัวยึดตำแหน่งระบุสิ่งที่จะเขียนในช่องนี้เพื่อเป็นคำอธิบาย

บรรทัดถัดไป:

ที่นี่เกือบทุกอย่างเหมือนกัน แต่ชื่อของฟิลด์คืออีเมล และคำอธิบายก็คือผู้ใช้ป้อนที่อยู่อีเมลของเขาในแบบฟอร์มนี้

บรรทัดถัดไปจะเป็นปุ่ม "ส่ง":

และบรรทัดสุดท้ายในแบบฟอร์มจะเป็นแท็ก

ตอนนี้เรามารวบรวมทุกอย่างเข้าด้วยกัน





ตอนนี้เรามาทำให้ฟิลด์ในแบบฟอร์มบังคับ เรามีรหัสดังต่อไปนี้:





สร้างไฟล์ที่รับข้อมูลจากแบบฟอร์ม 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;
เสียงสะท้อน "
";
เสียงสะท้อน $ 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 ได้ หากคุณเปลี่ยนชื่อไฟล์อย่าลืมเปลี่ยนชื่อไฟล์ในบรรทัด

- แบบฟอร์มควรลิงก์ไปยังหน้าเดียวกัน เช่น index.php ฉันเพิ่มชื่อหน้าลงในโค้ด

ข้อผิดพลาดทั่วไปที่เกิดขึ้นเมื่อส่งแบบฟอร์ม PHP จากเว็บไซต์

ข้อผิดพลาดประการแรกที่อาจเป็นปัญหาที่พบบ่อยที่สุดคือเมื่อคุณเห็นหน้าว่างสีขาวที่ไม่มีข้อความ ซึ่งหมายความว่าคุณทำข้อผิดพลาดในโค้ดของเพจ คุณต้องเปิดใช้งานการแสดงข้อผิดพลาดทั้งหมดใน PHP จากนั้นคุณจะเห็นว่าข้อผิดพลาดเกิดขึ้นที่ใด เพิ่มลงในรหัส:

ini_set("display_errors", "เปิด");
error_reporting("E_ALL");

ไฟล์ send.php จะต้องทำงานบนเซิร์ฟเวอร์เท่านั้น ไม่เช่นนั้นโค้ดจะไม่ทำงาน ขอแนะนำว่านี่ไม่ใช่เซิร์ฟเวอร์ภายในเครื่อง เนื่องจากไม่ได้กำหนดค่าให้ส่งข้อมูลไปยังเซิร์ฟเวอร์อีเมลภายนอกเสมอไป หากคุณเรียกใช้โค้ดนอกเซิร์ฟเวอร์ คุณจะเห็นโค้ด PHP บนหน้าเว็บโดยตรง

ดังนั้น เพื่อการทำงานที่ถูกต้อง ฉันแนะนำให้วางไฟล์ send.php บนไซต์โฮสติ้ง ตามกฎแล้วทุกอย่างได้รับการกำหนดค่าไว้แล้ว

ข้อผิดพลาดทั่วไปอีกประการหนึ่งคือเมื่อการแจ้งเตือน "ส่งข้อความสำเร็จ" ปรากฏขึ้น แต่จดหมายไม่ส่งทางไปรษณีย์ ในกรณีนี้ คุณต้องตรวจสอบบรรทัดอย่างระมัดระวัง:

ถ้า (เมล (" [ป้องกันอีเมล]", "สั่งซื้อจากเว็บไซต์", "ชื่อเต็ม:".$fio". อีเมล์: ".$อีเมล์"จาก: [ป้องกันอีเมล]\r\n"))

แทน [ป้องกันอีเมล] จะต้องมีที่อยู่อีเมลที่จะส่งจดหมายไปแทน[ป้องกันอีเมล] ต้องเป็นอีเมลที่มีอยู่สำหรับไซต์นี้ ตัวอย่างเช่น สำหรับเว็บไซต์ นี่จะเป็น - ในกรณีนี้เท่านั้นที่จะถูกส่งจดหมายพร้อมข้อมูลจากแบบฟอร์ม

ในบทนี้เราจะเรียนรู้เกี่ยวกับฟังก์ชัน เมล()โดยใช้ตัวอย่างการสร้าง แบบฟอร์มคำติชมใน PHPตามด้วยการส่งข้อมูลที่ได้รับทางอีเมล์

ในการดำเนินการนี้ เราจะสร้างไฟล์สองไฟล์ - format.phpและ เมล.php- ไฟล์แรกจะมีเฉพาะแบบฟอร์มที่มีช่องให้ผู้ใช้ป้อนข้อมูล ภายในแท็ก รูปร่าง- ปุ่ม "ส่ง"และคุณลักษณะ การกระทำซึ่งหมายถึงผู้ดำเนินการ - เมล.phpนี่คือข้อมูลที่เข้าถึงได้จากแบบฟอร์มเมื่อกดปุ่ม "ส่ง"- ในตัวอย่างของเรา ข้อมูลแบบฟอร์มจะถูกส่งไปยังหน้าเว็บที่เรียกว่า "/mail.php"- หน้านี้ประกอบด้วยสคริปต์สำหรับ PHPซึ่งประมวลผลข้อมูลแบบฟอร์ม:


ข้อมูลแบบฟอร์มถูกส่งโดยใช้ โพสต์(ประมวลผลเป็น $_โพสต์). $_โพสต์คืออาร์เรย์ของตัวแปรที่ส่งผ่านไปยังสคริปต์ปัจจุบันผ่านเมธอด โพสต์.

ด้านล่างนี้คุณสามารถดูเนื้อหาของไฟล์ได้ format.phpฟิลด์ที่ผู้ใช้กรอกเองในบางเว็บไซต์ ช่องป้อนข้อมูลทั้งหมดต้องมีแอตทริบิวต์ ชื่อเรากำหนดค่าเองตามตรรกะ




แบบฟอร์มคำติชมใน PHP ส่งทางอีเมล


แบบฟอร์มคำติชมใน PHP







ฝากข้อความ:
ชื่อของคุณ:



อีเมล:

หมายเลขโทรศัพท์:

ข้อความ:

พื้นที่ข้อความสามารถมีอักขระได้ไม่จำกัดจำนวน-->









นี่คือลักษณะของแบบฟอร์มที่มองเห็นได้ในเบราว์เซอร์

ต่อไปเราจะเขียนโค้ดสำหรับไฟล์ เมล.php- เราตั้งชื่อตัวแปรขึ้นมาเอง ใน PHPตัวแปรเริ่มต้นด้วยเครื่องหมาย $ ตามด้วยชื่อตัวแปร ค่าข้อความของตัวแปรอยู่ในเครื่องหมายคำพูด เมื่อใช้ตัวแปร เนื้อหาของแบบฟอร์มจะถูกส่งไปยังอีเมลของผู้ดูแลระบบโดยเพียงแค่ใส่ชื่อขององค์ประกอบแบบฟอร์มในวงเล็บเหลี่ยม - ค่า ชื่อ.

$ถึง = " [ป้องกันอีเมล]"; // อีเมลของผู้รับข้อมูลจากแบบฟอร์ม
$tema = "แบบฟอร์มตอบรับใน PHP"; // เรื่องของอีเมลที่ได้รับ
$message = "ชื่อของคุณ: ".$_POST["ชื่อ"]"
";//กำหนดค่าที่ได้รับจากฟอร์ม name=name ให้กับตัวแปร
$message .= "อีเมล: ".$_POST["อีเมล"]"
"; //ได้มาจากฟอร์ม name=email
$message .= "หมายเลขโทรศัพท์: ".$_POST["โทรศัพท์"]"
"; //ได้มาจากฟอร์ม name=phone
$message .= "ข้อความ: ".$_POST["ข้อความ"]"
"; //ได้มาจากฟอร์ม name=message
$headers = "เวอร์ชัน MIME: 1.0" "\r\n"; // ส่วนหัวตรงกับรูปแบบบวกอักขระขึ้นบรรทัดใหม่
$headers .= "Content-type: text/html; charset=utf-8" . "\r\n"; // ระบุประเภทของเนื้อหาที่ถูกส่ง
mail($to, $tema, $message, $headers); //ส่งค่าตัวแปรไปยังผู้รับทางอีเมล
?>

ดังนั้นข้อมูลจากอาเรย์ $_โพสต์จะถูกส่งผ่านไปยังตัวแปรที่เกี่ยวข้องและส่งทางอีเมลโดยใช้ฟังก์ชัน จดหมาย- มากรอกแบบฟอร์มของเราแล้วกดปุ่มส่ง อย่าลืมใส่อีเมลของคุณ จดหมายมาถึงทันที

วันที่เพิ่ม: 2011-12-01



มาดูตัวอย่างการส่งข้อความจากเว็บไซต์ไปยังที่อยู่อีเมลของคุณกัน เหตุใดจึงจำเป็น? สมมติว่าคุณมีช่องแสดงความคิดเห็นบนเพจของคุณ และคุณจำเป็นต้องทราบอย่างรวดเร็วเมื่อมีคนแสดงความคิดเห็น คุณจะไม่ไปที่เว็บไซต์ของคุณทุกนาทีและตรวจสอบความคิดเห็นใหม่

ขั้นตอนการสร้างแบบฟอร์มและส่งจดหมายนั้นง่ายดาย แต่มีบางช่วงเวลาที่อาจทำให้อารมณ์ของคุณเสียไปตลอดทั้งวัน

ปัญหาแรกคือมาตรฐานที่โง่และล้าสมัยสำหรับตัวอักษรในภาษารัสเซีย ด้วยเหตุนี้ คุณอาจได้รับจดหมายที่มีข้อความ "บ้าๆบอๆ" ในกล่องจดหมายของคุณ ปัญหานี้สังเกตได้ชัดเจนเป็นพิเศษในไคลเอนต์อีเมล เช่น Windows Mail, Outlook Express เป็นต้น หากคุณอ่านตัวอักษรผ่านเว็บอินเตอร์เฟสแสดงว่าปัญหาไม่ได้กดดันมากนัก เมลเซิร์ฟเวอร์จำนวนมากฉลาดพอที่จะแสดงอีเมลได้อย่างถูกต้อง

ปัญหาที่สองคืออีเมลที่ไม่ต้องการ บุคคลที่มีพรสวรรค์ "ทางเลือก" บางคนสามารถกดปุ่มส่งได้ไม่รู้จบ (น้ำท่วม) สิ่งเหล่านี้อาจรวมถึงบอทด้วย - โปรแกรมที่เขียนขึ้นเป็นพิเศษซึ่งกดปุ่มเอง

ปัญหาที่สามคือการป้องกันช่องโหว่ หากคุณสามารถป้อนบางสิ่งบนไซต์ได้ ก็มีความเป็นไปได้ที่จะถูกแฮ็ก ตัวอย่างเช่น คุณขอให้ป้อนที่อยู่อีเมลสำหรับการลงทะเบียนในฟิลด์ และแฮ็กเกอร์ป้อนสคริปต์ที่เป็นอันตรายที่เตรียมไว้เป็นพิเศษซึ่งสามารถทำลายไซต์ของคุณได้

หากปัญหาที่อธิบายไว้ไม่ทำให้คุณกลัวและคุณต้องการรับข้อความจากเว็บไซต์ให้ดำเนินการต่อ...

เรามาเริ่มด้วยตัวอย่างง่ายๆ โดยไม่มีกระดิ่งและนกหวีด

มาสร้างไฟล์ forms.php ซึ่งจะมีแบบฟอร์มสำหรับส่งข้อความกัน

ชื่อของคุณ:

ข้อความ:


"; ?>

เราเพิ่งสร้างแบบฟอร์มที่มีช่องข้อความสองช่องและปุ่มหนึ่งปุ่ม โปรดทราบว่าเราได้กำหนดวิธีการโพสต์สำหรับแบบฟอร์มและระบุไว้ในพารามิเตอร์ การกระทำเส้นทางไปยังตัวจัดการแบบฟอร์มคือ mail.php โดยปกติแล้ว คุณสามารถระบุที่อยู่และชื่ออื่นของไฟล์ได้

ตอนนี้เรามาสร้างไฟล์ mail.php (ในตัวอย่างของเราควรอยู่ในโฟลเดอร์เดียวกัน)

$len) ( exit("Error. The message must not over ".$len." character."); ) // ที่นี่คุณต้องระบุที่อยู่อีเมลของคุณเพื่อรับตัวอักษร $to = " [ป้องกันอีเมล]"; $subject="Letter from ".$name; // แปลงจาก windows-1251 เป็น koi8-r $subject = Convert_cyr_string($subject,"w","k"); // นี่คือตัวอักษร $message = "

ความคิดเห็นใหม่:

".$message_text"

"; // แปลงจาก windows-1251 เป็น koi8-r $message = Convert_cyr_string($message,"w","k"); // ส่วนหัวของข้อความ $headers = "Content-Type: text/html; charset=KOI8-R\r\n"; // ซึ่งตัวอักษรคือ $headers .= "From: server\r\n\r\n"; if(mail($to,$subject,$message,$ ส่วนหัว) ) ( echo "จดหมายถูกส่งเรียบร้อยแล้ว"; ) else ( echo "ข้อผิดพลาด ไม่ได้ส่งจดหมาย"; ) ?>

โดยหลักการแล้ว แค่ส่งจดหมายก็เพียงพอแล้ว สิ่งสำคัญคือต้องตรวจสอบให้แน่ใจว่าคุณได้รับอนุญาตให้ใช้ฟังก์ชัน mail() บนไซต์ของคุณ เนื่องจากผู้ให้บริการโฮสต์บางรายปิดใช้งานหรือแนะนำข้อจำกัดต่างๆ เกี่ยวกับจำนวนอีเมลที่ส่ง

เสริมสร้างการป้องกัน

ในตัวอย่างที่อธิบายไว้ มีการป้องกันในรูปแบบของฟังก์ชันน้อยที่สุด htmlอักขระพิเศษ- การป้องกันอีกรูปแบบหนึ่งคือการใช้เซสชัน

ที่จุดเริ่มต้นของไฟล์แรก ให้ป้อนข้อมูลต่อไปนี้

// เริ่มต้นเซสชัน session_start();// พิมพ์ข้อความ echo $er; // แบบฟอร์มเสียงสะท้อน "

ชื่อของคุณ:
... และอื่น ๆ

โค้ดบรรทัดแรกจะเริ่มต้นเซสชัน ดังนั้นจึงป้องกันฟอร์มของเราจากการฟลัด จะไม่สามารถส่งข้อความจากแบบฟอร์มโดยการคัดลอกไปยังโฮสต์ในพื้นที่ของคุณ (หรือแม่นยำยิ่งขึ้นคุณสามารถทำได้ แต่คุณจะต้องคนจรจัด) ตรวจสอบให้แน่ใจว่าบรรทัด?php เริ่มต้นในเอกสารของคุณทันทีโดยไม่มีการเว้นวรรคหรือการเยื้อง และตามด้วยฟังก์ชัน session_start() (ไม่นับความคิดเห็น) มิฉะนั้นจะเกิดข้อผิดพลาด

สังเกตแท็กอินพุตที่มีประเภท ที่ซ่อนอยู่ภายใต้ชื่อ session_id- แบบฟอร์มที่ซ่อนอยู่นี้จะส่ง ID เซสชันปัจจุบันโดยใช้วิธี POST ไปยังตัวจัดการ (mail.php) เพื่อเปรียบเทียบกับเซสชันปัจจุบันบนหน้าตัวจัดการ เป็นโค้ดชิ้นนี้ที่ปกป้องฟอร์มโดยใช้เซสชันจากสแปมหรือฟลัด

ตอนนี้คุณต้องเพิ่มเช็คไปที่ mail.php:

เราเริ่มต้นโค้ดของเราโดยการเริ่มต้นเซสชันสำหรับสคริปต์การส่งข้อความ บรรทัดที่สองของโค้ดเพียงตรวจสอบ ID ที่ส่งโดยวิธี POST จากหน้าแบบฟอร์มด้วย ID ที่เริ่มต้นโดยหน้านี้ และหากเท่ากัน รหัสต่อไปจะถูกดำเนินการ มิฉะนั้นฟังก์ชัน exit() จะหยุดการทำงานของสคริปต์สำหรับการส่ง ข้อความจากเว็บไซต์และแสดงข้อความ: การส่งข้อความสามารถใช้ได้บนเว็บไซต์เท่านั้น

คุณยังสามารถติดตั้ง captcha และวิธีการรักษาความปลอดภัยอื่นๆ ได้ แต่เพิ่มเติมเกี่ยวกับครั้งต่อไป

สร้างแบบฟอร์มคำติชม

การส่งไฟล์ผ่านแบบฟอร์มคำติชม

ในบทความก่อนหน้านี้ มีการพูดคุยถึงตัวเลือกต่างๆ สำหรับแบบฟอร์มคำติชมและการตรวจสอบว่าผู้เยี่ยมชมไซต์กรอกไว้แล้ว บ่อยครั้ง นอกเหนือจากข้อความธรรมดาจากผู้เยี่ยมชมไซต์แล้ว คุณต้องส่งรูปถ่าย เอกสาร ประวัติย่อ ฯลฯ ให้กับผู้เขียนด้วย แบบฟอร์มคำติชมช่วยให้ส่งไฟล์จากคอมพิวเตอร์ของผู้ใช้ไปยังไฟล์ของคุณได้อย่างง่ายดาย อีเมล- บางครั้งคุณจะพบคำว่า "การส่งไฟล์แนบจากไซต์" จากภาษาอังกฤษ แนบ(แนบ).

แม้จะมีความสะดวกสบายของฟังก์ชั่นนี้ แต่ก็ควรจำไว้ว่าผู้เยี่ยมชมไซต์กตัญญูสามารถส่งไฟล์ที่แนบมาไม่เพียงแต่รูปถ่ายของสุนัข แมว หรือรถที่เพิ่งซื้อใหม่เท่านั้น แต่ยังรวมถึงอึหรือวิดีโอไวรัสทุกประเภท ขนาดที่กล่องจดหมายของคุณจะล้นและ “ปิดบัญชี” พูดง่ายๆ ก็คือ "เอาระเบิดมา ฟาสซิสต์!"

มีสคริปต์มากมายสำหรับการส่งไฟล์จากไซต์ รวมถึงสคริปต์ที่ตรวจสอบเนื้อหาที่ส่งด้วย การค้นหาสิ่งที่ถูกต้องนั้นไม่ใช่เรื่องยาก ทุกอย่างขึ้นอยู่กับงานและความอดทนของคุณในการค้นหาทางอินเทอร์เน็ต

ไม่ว่าในกรณีใด เราเริ่มต้นด้วยการเพิ่มบรรทัดโค้ดลงในแบบฟอร์มคำติชมที่เราสร้างขึ้น (ดูบทความ “การสร้างแบบฟอร์มคำติชมบนไซต์”) ซึ่งมีหน้าที่รับผิดชอบในการสร้างเส้นด้วยปุ่มอย่างแม่นยำ ทบทวน- เมื่อคุณคลิก หน้าต่าง Windows มาตรฐานจะเปิดขึ้นเพื่อเลือกไฟล์ นอกจาก, จำเป็นคุณต้องเพิ่มแอตทริบิวต์แท็ก enctype="multipart/form-data" ที่จุดเริ่มต้นของแบบฟอร์ม :
.

นอกจากนี้ เราจะกรอกช่องที่มีประโยชน์อีกช่องหนึ่ง “หัวข้อข้อความ” ลงในแบบฟอร์ม เพื่อให้เราสามารถเห็นสิ่งที่ผู้เยี่ยมชมเว็บไซต์ต้องการบอกเราได้ทันที ดังนั้นแบบฟอร์มคำติชมพร้อมส่วนเสริมจะมีลักษณะดังนี้:

ชื่อของคุณ:

เรื่อง:

อีเมลของคุณ:

การเลือกไฟล์ที่จะส่ง:

ข้อความของคุณ:

เช่นเคย รหัสสำหรับแบบฟอร์มนี้ทำงานได้อย่างสมบูรณ์ และ (ควร) ดูและคัดลอกได้ในเบราว์เซอร์

ถัดไป คุณต้องปรับหน้า PHP เพื่อส่งข้อความจากแบบฟอร์มคำติชมพร้อมไฟล์แนบไปยังที่อยู่อีเมลของคุณ ตามที่กล่าวไว้ข้างต้น มีตัวเลือกมากมายสำหรับการประมวลผลแบบฟอร์ม และไม่จำเป็นต้องสร้างวงล้อใหม่

ตอนนี้สิ่งที่เราต้องทำคือเปลี่ยนหน้า PHP ที่รับผิดชอบในการส่งอีเมลพร้อมไฟล์แนบเล็กน้อยและเพิ่มเข้าไป class.phpmailer.phpคำสั่งรวมถึง "class.phpmailer.php"; และสองสามบรรทัดในการประมวลผลไฟล์ที่ถ่ายโอน

รหัสหน้าการทำงานเต็มรูปแบบ เมล.phpในการส่งข้อความจากเว็บไซต์พร้อมไฟล์แนบมีดังนี้:





ข้อเสนอแนะ


ฟังก์ชั่น send_mail()
{
$name = htmlspecialchars($_REQUEST["ชื่อ"]);
}
{
$email = htmlspecialchars($_REQUEST["อีเมล"]);
}
$ข้อความ = " ชื่อผู้ส่ง:".$_REQUEST["ชื่อ"]"
ที่อยู่อีเมล:".$_REQUEST["อีเมล"]"
ข้อความ:".$_REQUEST["ระเบียบ"];

รวม "class.phpmailer.php"; // เชื่อมต่อคลาส

$mail = PHPMailer ใหม่();
$เมล->จาก = $_REQUEST["อีเมล"];
$เมล->FromName = $_REQUEST["ชื่อ"];
$เมล->แอดเดรส(" [ป้องกันอีเมล] ");
$เมล->IsHTML(true);
$เมล->เรื่อง = $_POST["ชื่อ"];

ถ้า(isset($_FILES["ไฟล์"]))
{
if($_FILES["files"]["error"] == 0)
{
$mail->AddAttachment($_FILES["files"]["tmp_name"],$_FILES["files"]["name"]);
}
}
$เมล->เนื้อหา = $ข้อความ;
if (!$mail->Send()) die ("ข้อผิดพลาดของเมล: ".$mail->ErrorInfo);
{
เสียงสะท้อน "

ขอบคุณสำหรับการส่งข้อความของคุณ
คลิกเพื่อกลับสู่หน้าหลัก";
}
if (!empty($_POST["submit"])) send_mail();
?>



ก่อนอัพโหลดไฟล์ mail.php ลงเว็บไซต์ อย่าลืมเปลี่ยนแปลงก่อน [ป้องกันอีเมล]ไปยังอีเมลของคุณ

แตกต่างจากที่กล่าวถึงในส่วนแรกของบทความ สคริปต์ PHP นี้สำหรับการประมวลผลแบบฟอร์มคำติชมนั้นซับซ้อนกว่าเล็กน้อย แต่จะสร้างอีเมลที่ถูกต้องมากขึ้นโดยระบุที่อยู่ของผู้ส่งและหัวข้อของข้อความของเขาซึ่งคุณสามารถตอบกลับได้ วิธีปกติ

» สคริปต์ PHP Sendmail

PHPSendMail

หากต้องการใช้แบบฟอร์ม คุณเพียงแค่ต้องป้อนการตั้งค่าอีเมล เท่านี้ก็เรียบร้อย โดยทั่วไป สคริปต์พร้อมใช้งานแล้ว และแบบฟอร์มคำติชมสำหรับไซต์ในรูปแบบ HTML พร้อมตัวประมวลผล PHP นี้เหมาะสำหรับไซต์ขนาดเล็ก ไซต์นามบัตร

- ดาวน์โหลดแล้ว: ครั้ง

PHP ส่งอีเมลอย่างง่าย

ด้วยสคริปต์ PHP แสนง่ายนี้ ผู้เยี่ยมชมเว็บไซต์ของคุณจะสามารถส่งอีเมลถึงคุณโดยตรงผ่านแบบฟอร์มคำติชม

- ดาวน์โหลดแล้ว: ครั้ง

สคริปต์ PHP + AJAX สำหรับส่งแบบฟอร์มไปยัง E-mail

สคริปต์สากลสำหรับการส่งข้อมูลจากแบบฟอร์มไปยังอีเมล สคริปต์นี้เหมาะสำหรับไซต์ต่างๆ เช่น Landing Page ไซต์นามบัตร ฯลฯ

- ดาวน์โหลดแล้ว: ครั้ง

PHP Mailer Final พร้อม captcha

สคริปต์จะแสดงแบบฟอร์ม และเมื่อคุณกรอกฟิลด์ที่จำเป็น จะส่งข้อความไปยังอีเมลของคุณ สคริปต์มีการป้องกันโรบ็อตในตัว: ก่อนส่งจดหมายคุณต้องป้อนแคปช่า

- ดาวน์โหลดแล้ว: ครั้ง

จดหมายแบบฟอร์ม GentleSource

คุณมีสองตัวเลือกให้เลือก: ผู้ใช้โดยใช้การเปลี่ยนเส้นทางไปที่หน้าขอบคุณพร้อมข้อความของคุณหรือผู้ใช้เห็นข้อมูลว่าส่งข้อความสำเร็จแล้ว

- ดาวน์โหลดแล้ว: ครั้ง

ไมโครเมล์

Micro Mailer เป็นสคริปต์ PHP ขนาดเล็กที่ช่วยให้คุณและผู้เยี่ยมชมเว็บไซต์ของคุณสามารถส่งจดหมายถึงผู้รับได้

- ดาวน์โหลดแล้ว: ครั้ง

Web4you-เอฟเอ็ม

Web4you-FM การส่งจดหมายจากเว็บไซต์ของคุณ คุณสมบัติ: 1 - เลือกผู้รับและจำนวนผู้รับ (ตั้งแต่ 1 ถึง 4) 2 - ตรวจสอบว่ากรอกแบบฟอร์มถูกต้อง ถึงใคร. ชื่อ แค่ตัวอักษร...

- เวอร์ชัน 1.0 | ดาวน์โหลดแล้ว: ครั้ง

แบบฟอร์มติดต่อ Light PHP

สคริปต์สำหรับส่งอีเมลผ่านแบบฟอร์มตอบรับนั้นเรียบง่ายมาก แม้แต่ผู้ที่ไม่รู้ PHP/HTML ก็สามารถใช้โปรแกรมได้โดยไม่ยาก...

- ดาวน์โหลดแล้ว: ครั้ง

โดโดสเมล

DodosMail เป็นสคริปต์ PHP ที่ติดตั้งง่ายซึ่งช่วยให้คุณสามารถส่งอีเมลผ่านแบบฟอร์มคำติชมบนเว็บไซต์ของคุณได้ คุณเพียงแค่ต้องอัปโหลดไฟล์ php

- v.2.5 | ดาวน์โหลดแล้ว: ครั้ง

แบบฟอร์มติดต่อ PHP

สคริปต์แบบฟอร์มการติดต่อ PHP มีฟังก์ชันดังต่อไปนี้ 1) ฟังก์ชั่นป้องกันสแปม ผู้ใช้จะต้องป้อนรหัสความปลอดภัยหรือที่เรียกว่า captcha

- ดาวน์โหลดแล้ว: ครั้ง

ติดต่อ TPCS (แบบฟอร์มอีเมล)

สคริปต์การติดต่อ TPCS นี้จะช่วยให้ผู้เยี่ยมชมสามารถติดต่อคุณผ่านแบบฟอร์มคำติชม ข้อมูลทั้งหมดจะถูกส่งถึงคุณทางอีเมล

- ดาวน์โหลดแล้ว: ครั้ง

จดหมายตอบรับ

จดหมายตอบรับจะเปลี่ยนเส้นทางข้อมูลทั้งหมดจากแบบฟอร์มข้อเสนอแนะบนเว็บไซต์ของคุณไปยังอีเมลของคุณโดยตรง สคริปต์เล็กๆ นี้ประมวลผลคำขอทั้งหมดอย่างรวดเร็ว

- v.1.2 | ดาวน์โหลดแล้ว: ครั้ง

แบบฟอร์มติดต่อ PHP อย่างง่าย

สคริปต์ PHP ที่เรียบง่ายแต่ปลอดภัยสำหรับติดต่อผู้ดูแลเว็บโดยใช้แบบฟอร์มตอบรับพร้อมการตรวจสอบรหัส (CAPTCHA) เพื่อป้องกันสแปม

- เวอร์ชัน 2.1 | ดาวน์โหลดแล้ว: ครั้ง

แบบฟอร์มติดต่อ PHP (พร้อมการยืนยันรูปภาพ)

แบบฟอร์มติดต่อที่ป้องกันสแปมโดยขอให้ผู้ใช้ป้อนรหัสความปลอดภัยจากรูปภาพ หากคุณใช้แบบฟอร์มตอบรับที่เรียบง่าย ไม่ช้าก็เร็ว ผู้ส่งอีเมลขยะจะพบวิธีส่งโฆษณาถึงคุณโดยอัตโนมัติไม่ช้าก็เร็ว

- ดาวน์โหลดแล้ว: ครั้ง

จดหมายแบบฟอร์ม CW3

สคริปต์นี้ติดตั้งและปรับแต่งได้ง่ายมากเพื่อให้เข้ากับรูปลักษณ์ของไซต์ของคุณ คุณสามารถเปลี่ยนขนาดของแบบฟอร์มคำติชมและข้อความที่แสดงเมื่อส่งจดหมายสำเร็จ

- v.3.30 | ดาวน์โหลดแล้ว: ครั้ง

แบบฟอร์มติดต่อ reCAPTCHA

สคริปต์คำติชม PHP ฟรีนี้ทำให้การรับอีเมลหรือคำติชมจากผู้เยี่ยมชมของคุณง่ายขึ้นมาก ผู้เยี่ยมชมของคุณจะต้องกรอกข้อมูลในช่องติดต่อที่จำเป็นทั้งหมดเท่านั้น...

- v.1.4 | ดาวน์โหลดแล้ว: ครั้ง

phMailer

phMailer เป็นสคริปต์ตอบรับ PHP ที่เรียบง่ายมาก ซึ่งรองรับไฟล์แนบด้วยฟังก์ชัน mail() ในตัวของภาษา PHP