เมื่อส่งแบบฟอร์ม จะใช้ประเภทเริ่มต้น แบบฟอร์มในรูปแบบ HTML ชื่อกลุ่มองค์ประกอบแบบฟอร์ม

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

1) สร้างแบบฟอร์มง่ายๆ

แท็ก

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

ความคิดเห็น

ความแตกต่างที่สำคัญระหว่างวิธี POST และ GET คือวิธีการถ่ายโอนข้อมูล ในเมธอด GET พารามิเตอร์จะถูกส่งผ่าน แถบที่อยู่, เช่น. โดยพื้นฐานแล้วอยู่ในส่วนหัวคำขอ HTTP ในขณะที่วิธี POST พารามิเตอร์จะถูกส่งผ่านเนื้อหาของคำขอ HTTP และจะไม่สะท้อนให้เห็นในทางใดทางหนึ่งในแถบที่อยู่

$text = nl2br($_POST["ข้อความของฉัน"]);
?>

งาน:สมมติว่าคุณต้องสร้างรายการแบบเลื่อนลงที่มีปีตั้งแต่ปี 2000 ถึง 2050
สารละลาย:จำเป็นต้องสร้าง แบบฟอร์ม HTMLด้วยองค์ประกอบ SELECT และ PHP – สคริปต์สำหรับการประมวลผลแบบฟอร์ม

การอภิปราย:

ขั้นแรก เรามาสร้างไฟล์สองไฟล์กัน: แบบฟอร์ม.htmlและ การกระทำ.php- ในไฟล์ แบบฟอร์ม.htmlจะมีแบบฟอร์ม html พร้อมรายการแบบเลื่อนลง นอกจากนี้ ยังสามารถระบุค่าในรายการได้ 2 วิธี คือ

I. การป้อนข้อมูลด้วยตนเอง:

ครั้งที่สอง การป้อนข้อมูลผ่านการวนซ้ำ:

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

คำอธิบาย:

มาสร้างแบบฟอร์ม HTML เพื่อส่งไฟล์ไปยังเซิร์ฟเวอร์




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

จากนั้นคุณจะต้องเขียนสคริปต์ตัวจัดการ การกระทำ.php- ก่อนที่จะเขียนตัวจัดการ เราต้องตัดสินใจว่าจะคัดลอกไฟล์ไปที่ไดเร็กทอรีใด:

ถ้า(isset($_FILES [ "myfile" ])) // หากมีไฟล์อยู่
{
$แค็ตตาล็อก = "../image/" ; // แคตตาล็อกของเรา
ถ้า (is_dir($แค็ตตาล็อก)) // หากมีไดเร็กทอรีดังกล่าวอยู่
{
$myfile = $_FILES [ "myfile" ][ "tmp_name" ]; // ไฟล์ชั่วคราว
$myfile_name = $_FILES [ "myfile" ][ "ชื่อ" ]; //ชื่อไฟล์
if(! copy ($myfile, $catalog)) เสียงก้อง "ข้อผิดพลาดในการคัดลอกไฟล์"- $myfile_name // หากการคัดลอกไฟล์ล้มเหลว
}
อื่น mkdir ("../image/" ); // หากไม่มีไดเร็กทอรีดังกล่าว เราจะสร้างมันขึ้นมา
}
?>

ความคิดเห็น

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

ตัวอย่างนี้สาธิตการสร้างไดเร็กทอรีและการคัดลอกไฟล์ลงในไดเร็กทอรีนั้นไปยังเซิร์ฟเวอร์

ฉันอยากจะสาธิตตัวอย่างกับองค์ประกอบด้วย ช่องทำเครื่องหมาย- องค์ประกอบนี้จะแตกต่างจากองค์ประกอบอื่นๆ เล็กน้อยหากไม่ใช่องค์ประกอบใดองค์ประกอบหนึ่ง ช่องทำเครื่องหมาย’a ไม่ได้ถูกเลือก ดังนั้นจะเป็นตัวแปร superglobal $_โพสต์จะส่งกลับค่าว่าง:


สีฟ้า
สีดำ
สีขาว

ถ้า (!empty($_POST [ "mycolor" ])) echo $_POST [ "mycolor" ]; // หากเลือกอย่างน้อย 1 องค์ประกอบ
อย่างอื่นสะท้อน "เลือกค่า";
?>

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

ในการพิจารณาว่าองค์ประกอบแบบฟอร์มใดที่เป็นของป้ายกำกับปัจจุบัน คุณต้องใช้แอตทริบิวต์ for ของแท็ก

ลองดูตัวอย่างการใช้งาน:

</span>ตัวอย่างการใช้แท็ก <label><span>
>

ในตัวอย่างนี้ เรา:

  • ข้างใน อันดับแรกแบบฟอร์ม:
    • โพสต์แล้ว สองปุ่มตัวเลือก ( ) เพื่อเลือกหนึ่งในตัวเลือกจำนวนจำกัด โปรดทราบอีกครั้งว่าสำหรับปุ่มตัวเลือกที่อยู่ในรูปแบบเดียวกัน ต้องระบุชื่อเดียวกันเราระบุค่าที่แตกต่างกัน สำหรับ อันดับแรกตรวจสอบ ซึ่งระบุว่าควรเลือกองค์ประกอบไว้ล่วงหน้าเมื่อโหลดหน้าเว็บ (ในกรณีนี้คือปุ่มตัวเลือกที่มีค่า yes ) นอกจากนี้ เราได้ระบุแอตทริบิวต์ส่วนกลางสำหรับปุ่มตัวเลือก ซึ่งกำหนดตัวระบุเฉพาะสำหรับองค์ประกอบ
    • วางสององค์ประกอบ
  • ข้างใน ที่สองแบบฟอร์ม:
    • โพสต์แล้ว สองปุ่มตัวเลือก ( ) เพื่อเลือกหนึ่งในตัวเลือกจำนวนจำกัด สำหรับ ที่สองสำหรับปุ่มตัวเลือก เราได้ระบุแอตทริบิวต์ที่เลือกไว้ ซึ่งระบุว่าควรเลือกองค์ประกอบไว้ล่วงหน้าเมื่อโหลดหน้าเว็บ (ในกรณีนี้คือปุ่มตัวเลือกที่มีค่า no ) นอกจากนี้เรายังระบุค่าที่ไม่ซ้ำสำหรับปุ่มตัวเลือกภายในแบบฟอร์มและชื่อเดียวกัน
    • วางสององค์ประกอบ

ในเบราว์เซอร์ ตัวเลือกทั้งสอง (วิธีการ) สำหรับการใช้ป้ายกำกับข้อความจะมีลักษณะเหมือนกัน:

เคล็ดลับเครื่องมือสำหรับช่องป้อนข้อมูล

ลองดูตัวอย่างการใช้งาน:

ตัวอย่างการใช้แอตทริบิวต์ตัวยึดตำแหน่ง <span>
เข้าสู่ระบบ: type = "text" name = "login" placeholder = "ป้อนข้อมูลเข้าสู่ระบบของคุณ">

รหัสผ่าน: type = "รหัสผ่าน" name = "รหัสผ่าน" placeholder = "ป้อนรหัสผ่านของคุณ">

ใน ในตัวอย่างนี้เราระบุไว้สำหรับองค์ประกอบ ด้วยข้อความประเภท (ช่องข้อความบรรทัดเดียว) และประเภทรหัสผ่าน (ช่องรหัสผ่าน) คำใบ้ข้อความสำหรับผู้ใช้ (แอตทริบิวต์ตัวยึดตำแหน่ง) ที่อธิบายค่าที่คาดหวังสำหรับการป้อนข้อมูล

ผลลัพธ์ของตัวอย่างของเรา:

คำถามและงานในหัวข้อ

ก่อนที่จะไปยังหัวข้อถัดไป ให้ฝึกปฏิบัติให้เสร็จสิ้น:

  • ใช้ความรู้ที่คุณได้รับ สร้างแบบฟอร์มการสั่งซื้อต่อไปนี้:

คำเตือน: ในช่องที่คาดว่าจะเลือก ควรสามารถเลือกได้โดยคลิกที่ข้อความ ไม่ใช่เฉพาะองค์ประกอบเท่านั้น

หลังจากที่คุณทำแบบฝึกหัดเสร็จแล้ว ให้ตรวจสอบโค้ดของหน้าโดยการเปิดตัวอย่างในหน้าต่างแยกต่างหากเพื่อให้แน่ใจว่าคุณทำทุกอย่างถูกต้อง

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

แท็ก

คำอธิบายแบบฟอร์มอยู่ระหว่างแท็กที่จับคู่ ... - สามารถวางแบบฟอร์มหลายรายการบนหน้าพร้อมกันได้ แต่ไม่สามารถซ้อนกันภายในอีกหน้าหนึ่งได้

คุณสมบัติของแท็ก
ยอมรับชุดอักขระ รายการการเข้ารหัสสำหรับข้อมูลอินพุตที่เซิร์ฟเวอร์ยอมรับในการประมวลผลแบบฟอร์มนี้ ช่วยในสถานการณ์ที่หน้าเว็บไซต์อยู่ในการเข้ารหัสเดียว แต่ข้อมูลจำเป็นต้องส่งไปอีกที่หนึ่งหรือเมื่อเบราว์เซอร์ตรวจพบการเข้ารหัสไม่ถูกต้องโดยอัตโนมัติ ตัวอย่างเช่น:ยอมรับอักขระ = "cp1251" หรือ.
ยอมรับอักขระ = "utf8" - action ชื่อของโปรแกรมที่จะประมวลผลแบบฟอร์ม enctype ประเภทเนื้อหา (วิธีการเข้ารหัส) เช่น ถ้าแบบฟอร์มมีไฟล์อยู่ enctype="หลายส่วน/แบบฟอร์มข้อมูล"หรือเมื่อเบราว์เซอร์ตรวจพบการเข้ารหัสไม่ถูกต้องโดยอัตโนมัติ (ค่าเริ่มต้น enctype="application/x-www-form-urlencoded enctype="หลายส่วน/แบบฟอร์มข้อมูล""). method วิธีการถ่ายโอนข้อมูลจากแบบฟอร์มไปยังโปรแกรมประมวลผล สามารถรับค่าต่อไปนี้: การกระทำรับ การกระทำโพสต์ (ค่าเริ่มต้น- เมื่อใช้
เบราว์เซอร์เข้ารหัสข้อมูลที่ได้รับจากผู้ใช้และเพิ่มลงในค่าแอตทริบิวต์
ชื่อคู่ = ค่า ข้อมูลถูกแยกออกจากค่าแอตทริบิวต์

เครื่องหมายคำถาม (?)

เมื่อใช้

ข้อมูลจะถูกส่งแยกกัน

name ชื่อของแบบฟอร์ม ตั้งค่าให้ JavaScript สามารถเข้าถึงแบบฟอร์มตามชื่อแทนที่จะเป็นตัวเลข

แท็ก