บทช่วยสอน กรอง PHP ที่ดีที่สุดในปี 2024 ในบทช่วยสอนนี้ คุณสามารถเรียนรู้ กรอง PHP คืออะไร?,ใช้ตัวกรองทำไม?,ฟังก์ชั่นและตัวกรอง,การตรวจสอบและการฆ่าเชื้อ,ตัวเลือกและธง,การตรวจสอบการป้อนข้อมูล,ตัวอย่างอธิบาย,การป้อนข้อมูลการทำให้บริสุทธิ์,ตัวอย่างอธิบาย,ใหญ่ของกรองขาเข้า,ตัวอย่างอธิบาย,โทรกลับใช้ตัวกรอง,ตัวอย่างอธิบาย,
กรอง PHP จะใช้ในการตรวจสอบและกรองข้อมูลจากแหล่งที่ไม่ปลอดภัยเช่นการป้อนข้อมูลของผู้ใช้
กรอง PHP จะใช้ในการตรวจสอบและกรองข้อมูลจากแหล่งที่ไม่ปลอดภัย
การทดสอบตรวจสอบและผู้ใช้ป้อนตัวกรองหรือข้อมูลที่กำหนดเองเป็นส่วนสำคัญของโปรแกรมเว็บใด ๆ
ขยายตัวกรอง PHP ถูกออกแบบเพื่อให้การกรองข้อมูลได้ง่ายขึ้นและเร็วขึ้น
เกือบทุกการใช้งานเว็บจะขึ้นอยู่กับปัจจัยการผลิตจากภายนอก ข้อมูลเหล่านี้มักจะมาจากผู้ใช้หรือโปรแกรมอื่น ๆ (เช่นบริการเว็บ) โดยใช้ตัวกรองคุณสามารถมั่นใจได้ว่าการใช้งานจะได้รับประเภทการป้อนข้อมูลที่ถูกต้อง
คุณควรกรองข้อมูลภายนอก!
การกรองการป้อนข้อมูลเป็นสิ่งสำคัญที่สุดปัญหาโปรแกรมรักษาความปลอดภัย
เป็นข้อมูลภายนอกอะไร?
เพื่อกรองตัวแปรใช้หนึ่งในฟังก์ชั่นกรองต่อไปนี้:
ในตัวอย่างต่อไปนี้เราจะใช้ filter_var () ฟังก์ชันตรวจสอบจำนวนเต็ม:
<?php $int = 123; if(!filter_var($int, FILTER_VALIDATE_INT)) { echo("不是一个合法的整数"); } else { echo("是个合法的整数"); } ?>
รหัสข้างต้นใช้กรอง "FILTER_VALIDATE_INT" เพื่อกรองตัวแปร ตั้งแต่จำนวนเต็มถูกต้องตามกฎหมายดังนั้นรหัสข้างต้นออกจะ:
ถ้าเราพยายามที่จะใช้ตัวแปรที่ไม่ใช่จำนวนเต็ม (เช่น "123abc") เป็นเอาท์พุท: "จำนวนเต็มไม่ถูกต้อง"
สำหรับรายการที่สมบูรณ์ของฟังก์ชั่นและตัวกรองเยี่ยมชม PHP คู่มือกรองอ้างอิง
มีสองชนิดของฟิลเตอร์คือ:
การตรวจสอบฟิลเตอร์:
ฆ่าเชื้อตัวกรอง:
ตัวเลือกและธงที่ใช้ในการเพิ่มตัวเลือกเพิ่มเติมในการกรองฟิลเตอร์ที่ระบุ
ฟิลเตอร์ที่แตกต่างกันมีตัวเลือกที่แตกต่างกันและธง
ในตัวอย่างต่อไปนี้เราจะใช้ filter_var () และ "min_range" และ "max_range" ตัวเลือกในการตรวจสอบเป็นจำนวนเต็ม:
<?php $var=300; $int_options = array( "options"=>array ( "min_range"=>0, "max_range"=>256 ) ); if(!filter_var($var, FILTER_VALIDATE_INT, $int_options)) { echo("不是一个合法的整数"); } else { echo("是个合法的整数"); } ?>
เช่นโค้ดข้างต้นเป็นตัวเลือกที่เกี่ยวข้องจะต้องมีการวางไว้ในอาร์เรย์ที่เรียกว่า "ตัวเลือก" ใน ถ้าธงไม่จำเป็นต้องใช้ภายในอาร์เรย์
ตั้งแต่จำนวนเต็มคือ "300" มันไม่ได้อยู่ในช่วงที่ระบุเอาท์พุทของรหัสดังกล่าวข้างต้นจะได้รับ:
不是一个合法的整数
สำหรับรายการที่สมบูรณ์ของฟังก์ชั่นและตัวกรองเยี่ยมชม PHP คู่มือกรองอ้างอิง คุณสามารถดูตัวเลือกที่ใช้ได้สำหรับแต่ละตัวกรองและธง
ลองตรวจสอบข้อมูลจากแบบฟอร์ม
เราต้องทำสิ่งแรกคือการยืนยันว่าข้อมูลของท่านเรากำลังมองหา
จากนั้นเราจะใช้ filter_input () ฟังก์ชั่นในการกรองข้อมูลที่ป้อน
ในตัวอย่างด้านล่างที่ตัวแปร "อีเมล" จะถูกส่งผ่านไปยังหน้าของ PHP:
<?php if(!filter_has_var(INPUT_GET, "email")) { echo("没有 email 参数"); } else { if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL)) { echo "不是一个合法的 E-Mail"; } else { echo "是一个合法的 E-Mail"; } } ?>
ตัวอย่างของผลลัพธ์ข้างต้นมีดังนี้
ตัวอย่างข้างต้นมีตัวแปรจาก (อีเมล) "รับ" วิธีการของการถ่ายโอน:
ลองให้ชัดเจนขึ้นมาจาก URL แบบฟอร์ม
ครั้งแรกของทั้งหมดที่เราต้องยืนยันว่าข้อมูลของท่านเรากำลังมองหา
แล้วเรา sanitize ข้อมูลเข้า filter_input () ฟังก์ชัน
ในตัวอย่างด้านล่างที่ตัวแปร "URL" จะถูกส่งผ่านไปยังหน้าของ PHP:
<?php if(!filter_has_var(INPUT_GET, "url")) { echo("没有 url 参数"); } else { $url = filter_input(INPUT_GET, "url", FILTER_SANITIZE_URL); echo $url; } ?>
ตัวอย่างข้างต้นโดยตัวแปรหนึ่ง (URL) "ได้รับ" วิธีการส่ง:
ถ้าตัวแปรเป็นสตริงเช่นนี้ "http://www.ruaanoob.com/" ตัวแปร $ URL หลังจากที่บริสุทธิ์จะเป็นดังนี้:
รูปแบบที่มักจะประกอบด้วยช่องใส่หลาย เพื่อหลีกเลี่ยงการ filter_var หรือฟังก์ชั่นที่เรียกว่า filter_input ซ้ำ ๆ เราสามารถใช้ filter_var_array filter_input_array หรือฟังก์ชั่น
ในกรณีนี้เราจะใช้ filter_input_array () ฟังก์ชันการกรองสามตัวแปร GET ได้รับตัวแปรที่ได้รับคือชื่ออายุและที่อยู่ E-mail:
<?php $filters = array ( "name" => array ( "filter"=>FILTER_SANITIZE_STRING ), "age" => array ( "filter"=>FILTER_VALIDATE_INT, "options"=>array ( "min_range"=>1, "max_range"=>120 ) ), "email"=> FILTER_VALIDATE_EMAIL ); $result = filter_input_array(INPUT_GET, $filters); if (!$result["age"]) { echo("年龄必须在 1 到 120 之间。<br>"); } elseif(!$result["email"]) { echo("E-Mail 不合法<br>"); } else { echo("输入正确"); } ?>
ตัวอย่างข้างต้นมีตัวแปรสาม (ชื่ออายุและอีเมล) ส่งผ่าน "รับ" วิธีการ:
filter_input_array () อาร์กิวเมนต์ที่สองฟังก์ชั่นที่สามารถอาร์เรย์หรือรหัสตัวกรอง
ถ้าพารามิเตอร์คือรหัสที่กรองแล้วกรองที่ระบุจะกรองทุกค่าอาร์เรย์การป้อนข้อมูล
ถ้าพารามิเตอร์นี้เป็นอาร์เรย์อาร์เรย์จะต้องปฏิบัติตามหลักเกณฑ์ดังต่อไปนี้:
โดยใช้ตัวกรอง FILTER_CALLBACK คุณสามารถเรียกฟังก์ชั่นที่กำหนดเองใช้มันเป็นตัวกรองที่จะใช้ ดังนั้นเราจึงมีการควบคุมที่สมบูรณ์มากกว่าการกรองข้อมูล
คุณสามารถสร้างฟังก์ชั่นของคุณเองหรือคุณสามารถใช้ฟังก์ชั่นที่มีอยู่ PHP
คุณจะพร้อมที่จะใช้ฟังก์ชั่นกรองตามบทบัญญัติที่ระบุวิธีการที่กำหนดไว้ตัวเลือก ในอาเรย์ที่มีชื่อ "ตัวเลือก"
ในตัวอย่างต่อไปนี้เราจะใช้ฟังก์ชั่นที่กำหนดเองของทุกคน "_" แปลงเป็นช่องว่าง:
<?php function convertSpace($string) { return str_replace("_", ".", $string); } $string = "www_w3big_com!"; echo filter_var($string, FILTER_CALLBACK, array("options"=>"convertSpace")); ?>
ผลมาจากโค้ดข้างต้นดังต่อไปนี้:
ตัวอย่างข้างต้นทั้งหมด "_" เป็น "".