Tôi đã đặt tệp lớp này có tên 'My_Form_validation.php' vào 'application/core' và tôi cũng đã thử đặt nó trong 'application/libraries'.Mở rộng xác nhận biểu mẫu trong Codeigniter
Trong điều khiển của tôi Tôi đang sử dụng
$this->form_validation->set_rules('user_postcode', 'Postcode', 'valid_postcode|trim|required|xss_clean');
Đây là whats trong My_Form_validation.php - logic thực tế không phải là trong câu hỏi ở đây vì tôi có một vài tùy chọn để thực sự xác nhận mã bưu điện. Những gì tôi cần giúp đỡ là hiểu tại sao nó không tải hoặc được gọi!
Phiên bản CI của tôi là xác định ('CI_VERSION', '2.0.2');
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
/**
* Form validation for UK Postcodes
*
* Check that its a valid postcode
* @author James Mills <[email protected]>
* @version 1.0
* @package FriendsSavingMoney
*/
class MY_Form_validation extends CI_Form_validation
{
function __construct()
{
parent::__construct();
log_message('debug', '*** Hello from MY_Form_validation ***');
}
function valid_postcode($postcode)
{
/**
*
* UK Postcode validation expression from Wikipedia
* http://en.wikipedia.org/wiki/Postcodes_in_the_United_Kingdom
*
* Note: Remember to strtoupper() your postcode before inserting into database!
*
*/
$pattern = "/^(GIR 0AA)|(((A[BL]|B[ABDHLNRSTX]?|C[ABFHMORTVW]|D[ADEGHLNTY]|E[HNX]?|F[KY]|G[LUY]?|H[ADGPRSUX]|I[GMPV]|JE|K[ATWY]|L[ADELNSU]?|M[EKL]?|N[EGNPRW]?|O[LX]|P[AEHLOR]|R[GHM]|S[AEGKLMNOPRSTY]?|T[ADFNQRSW]|UB|W[ADFNRSV]|YO|ZE)[1-9]?[0-9]|((E|N|NW|SE|SW|W)1|EC[1-4]|WC[12])[A-HJKMNPR-Y]|(SW|W)([2-9]|[1-9][0-9])|EC[1-9][0-9]) [0-9][ABD-HJLNP-UW-Z]{2})$/";
if (preg_match($pattern, strtoupper($postcode)))
{
return TRUE;
}
else
{
$this->set_message('valid_postcode', 'Please enter a valid postcode');
return FALSE;
}
}
}
Sanity checks: 1) tệp là 'application/libraries/MY_Form_validation.php', 2)' $ config ['subclass_prefix '] =' MY _ '; ', 3) Ngưỡng cấu hình của bạn sẽ xuất ra thông báo gỡ lỗi của bạn (và quyền truy cập tệp cho phép nó) – landons
Có với mọi thứ ... –
Không có đầu mối. Tôi sẽ phải shotgun gỡ lỗi nó với tất cả các loại 'var_dump()' và 'die()' cuộc gọi ... – landons