CodeIgniter - การตรวจสอบแบบฟอร์ม

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

ตัวอย่าง

สร้างไฟล์ดู myform.php และบันทึกรหัสด้านล่างไว้ใน application/views/myform.php. หน้านี้จะแสดงแบบฟอร์มที่ผู้ใช้สามารถส่งชื่อของเขาและเราจะตรวจสอบความถูกต้องของหน้านี้เพื่อให้แน่ใจว่าไม่ควรว่างเปล่าในขณะส่ง

<html>
 
   <head> 
      <title>My Form</title> 
   </head>
	
   <body>
      <form action = "" method = "">
         <?php echo validation_errors(); ?>  
         <?php echo form_open('form'); ?>  
         <h5>Name</h5> 
         <input type = "text" name = "name" value = "" size = "50" />  
         <div><input type = "submit" value = "Submit" /></div>  
      </form>  
   </body>
	
</html>

สร้างไฟล์ดู formsuccess.php และบันทึกไว้ใน application/views/formsuccess.php. หน้านี้จะแสดงขึ้นหากตรวจสอบแบบฟอร์มสำเร็จ

<html>
 
   <head> 
      <title>My Form</title>
   </head> 
	
   <body>  
      <h3>Your form was successfully submitted!</h3>  
      <p><?php echo anchor('form', 'Try it again!'); ?></p>  
   </body>
	
</html>

สร้างไฟล์คอนโทรลเลอร์ Form.php และบันทึกไว้ใน application/controller/Form.php. แบบฟอร์มนี้จะแสดงข้อผิดพลาดหากไม่ได้รับการตรวจสอบอย่างถูกต้องหรือเปลี่ยนเส้นทางไปที่formsuccess.php หน้า.

<?php
  
   class Form extends CI_Controller { 
	
      public function index() { 
         /* Load form helper */ 
         $this->load->helper(array('form'));
			
         /* Load form validation library */ 
         $this->load->library('form_validation');
			
         /* Set validation rule for name field in the form */ 
         $this->form_validation->set_rules('name', 'Name', 'required'); 
			
         if ($this->form_validation->run() == FALSE) { 
         $this->load->view('myform'); 
         } 
         else { 
            $this->load->view('formsuccess'); 
         } 
      }
   }
?>

เพิ่มบรรทัดต่อไปนี้ใน application/config/routes.php.

$route['validation'] = 'Form';

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

http://yoursite.com/index.php/validation

มันจะสร้างหน้าจอต่อไปนี้ -

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

หลังจากป้อนชื่อสำเร็จคุณจะถูกเปลี่ยนเส้นทางไปยังหน้าจอดังที่แสดงด้านล่าง

ในตัวอย่างข้างต้นเราได้ใช้การตั้งค่ากฎที่จำเป็น มีกฎมากมายใน CodeIgniter ซึ่งอธิบายไว้ด้านล่าง

การอ้างอิงกฎการตรวจสอบ

ต่อไปนี้เป็นรายการของกฎพื้นฐานทั้งหมดที่พร้อมใช้งาน -

กฎ พารามิเตอร์ คำอธิบาย ตัวอย่าง

required

ไม่ ส่งคืนค่า FALSE หากองค์ประกอบฟอร์มว่างเปล่า

matches

ใช่ ส่งคืนค่า FALSE หากองค์ประกอบของฟอร์มไม่ตรงกับองค์ประกอบในพารามิเตอร์ ตรงกับ [form_item]

regex_match

ใช่ ส่งคืนค่า FALSE หากองค์ประกอบของฟอร์มไม่ตรงกับนิพจน์ทั่วไป regex_match [/ regex /]

differs

ใช่ ส่งคืนค่า FALSE หากองค์ประกอบของฟอร์มไม่แตกต่างจากองค์ประกอบในพารามิเตอร์ แตกต่าง [form_item]

is_unique

ใช่ ส่งคืนค่า FALSE หากองค์ประกอบฟอร์มไม่ซ้ำกับตารางและชื่อเขตข้อมูลในพารามิเตอร์ หมายเหตุ - กฎนี้กำหนดให้ต้องเปิดใช้Query Builderเพื่อให้ทำงานได้ is_unique [table.field]

min_length

ใช่ ส่งคืนค่า FALSE หากองค์ประกอบฟอร์มสั้นกว่าค่าพารามิเตอร์ min_length [3]

max_length

ใช่ ส่งคืนค่า FALSE หากองค์ประกอบของฟอร์มยาวกว่าค่าพารามิเตอร์ max_length [12]

exact_length

ใช่ ส่งคืนค่า FALSE หากองค์ประกอบของฟอร์มไม่ตรงกับค่าพารามิเตอร์ ความยาวที่แน่นอน [8]

greater_than

ใช่ ส่งคืนค่า FALSE หากองค์ประกอบของฟอร์มน้อยกว่าหรือเท่ากับค่าพารามิเตอร์หรือไม่ใช่ตัวเลข มากกว่า [8]

greater_than_equal_to

ใช่ ส่งคืนค่า FALSE หากองค์ประกอบของฟอร์มน้อยกว่าค่าพารามิเตอร์หรือไม่ใช่ตัวเลข มากขึ้น_than_equal_to [8]

less_than

ใช่ ส่งคืนค่า FALSE หากองค์ประกอบฟอร์มมากกว่าหรือเท่ากับค่าพารามิเตอร์หรือไม่ใช่ตัวเลข น้อยกว่า [8]

less_than_equal_to

ใช่ ส่งกลับค่า FALSE หากองค์ประกอบฟอร์มมากกว่าค่าพารามิเตอร์หรือไม่ใช่ตัวเลข less_than_equal_to [8]

in_list

ใช่ ส่งกลับค่า FALSE หากองค์ประกอบฟอร์มไม่อยู่ในรายการที่กำหนดไว้ล่วงหน้า in_list [แดงน้ำเงินเขียว]

alpha

ไม่ ส่งกลับค่า FALSE หากองค์ประกอบฟอร์มมีสิ่งอื่นนอกเหนือจากอักขระตามตัวอักษร

alpha_numeric

ไม่ ส่งกลับค่า FALSE หากองค์ประกอบฟอร์มมีสิ่งอื่นนอกเหนือจากอักขระที่เป็นตัวอักษรและตัวเลข

alpha_numeric_spaces

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

alpha_dash

ไม่ ส่งคืนค่า FALSE หากองค์ประกอบฟอร์มมีสิ่งอื่นนอกเหนือจากอักขระที่เป็นตัวเลขและตัวอักษรขีดล่างหรือขีดกลาง

numeric

ไม่ ส่งกลับค่า FALSE หากองค์ประกอบฟอร์มมีสิ่งอื่นที่ไม่ใช่อักขระตัวเลข

integer

ไม่ ส่งคืนค่า FALSE หากองค์ประกอบฟอร์มมีสิ่งอื่นที่ไม่ใช่จำนวนเต็ม

decimal

ไม่ ส่งคืนค่า FALSE หากองค์ประกอบฟอร์มมีสิ่งอื่นนอกเหนือจากตัวเลขทศนิยม

is_natural

ไม่ ส่งกลับค่า FALSE หากองค์ประกอบฟอร์มมีสิ่งอื่นนอกเหนือจากจำนวนธรรมชาติ - 0, 1, 2, 3 เป็นต้น

is_natural_no_zero

ไม่ ส่งกลับค่า FALSE หากองค์ประกอบฟอร์มมีสิ่งอื่นนอกเหนือจากจำนวนธรรมชาติ แต่ไม่ใช่ศูนย์ - 1, 2, 3 เป็นต้น

valid_url

ไม่ ส่งคืนค่า FALSE หากองค์ประกอบฟอร์มไม่มี URL ที่ถูกต้อง

valid_email

ไม่ ส่งกลับค่า FALSE หากองค์ประกอบฟอร์มไม่มีที่อยู่อีเมลที่ถูกต้อง

valid_emails

ไม่ ส่งคืน FALSE หากค่าใด ๆ ที่ระบุในรายการที่คั่นด้วยจุลภาคไม่ใช่อีเมลที่ถูกต้อง

valid_ip

ไม่ ส่งคืนค่า FALSE หาก IP ที่ให้มาไม่ถูกต้อง ยอมรับพารามิเตอร์ทางเลือกของ 'ipv4' หรือ 'ipv6' เพื่อระบุรูปแบบ IP

valid_base64

ไม่ ส่งคืน FALSE หากสตริงที่ให้มามีสิ่งอื่นนอกเหนือจากอักขระ Base64 ที่ถูกต้อง