>  기사  >  백엔드 개발  >  thinkPHP 양식 자동 검증 기능

thinkPHP 양식 자동 검증 기능

WBOY
WBOY원래의
2016-08-08 09:32:171077검색

어젯밤에 저희 상사가 저에게 양식 자동 확인 기능에 대해 작업해 달라고 부탁했습니다. 오랫동안 고민하다가 공식 홈페이지에서 많은 지식을 얻어서 만든 것인데요. 결과!

thinkphp는 Model 기본 클래스에서 자동 확인 기능과 정규식을 정의합니다. 해당 데이터베이스 테이블의 모델 클래스 아래에 $_validate 속성만 설정하면 됩니다.

1. Model 기본 클래스를 찾아 protected $_validate = array(); // 아래 해당 데이터 모델 파일에 정의합니다.

2,

public <span>function</span><span> CheckVerify($verify) {

   </span><span>if</span> (md5($verify) != Session::get('verify')) <span>return</span> <span>false</span><span>;
        </span><span>return</span> <span>true</span><span>;
}</span>
//자동인증

   protected $_validate =<span> array(
        array(</span>"title", "require", "标题必须!"<span>),
        array(</span>'categoryId', 'require', "类别必须!"<span>),
        array(</span>'content', 'require', "内容必须!"<span>),
        array(</span>'verify', 'require','验证码必须!'<span>),
        array(</span>'verify', 'CheckVerify', '验证码错误!', 0, 'callback'<span>)
    );</span>

3. 형식 설명: 배열(검증 필드, 검증 규칙, 오류 프롬프트, 검증 조건, 추가 규칙, 검증 시간),

4. 매개변수 설명:

확인 필드: 확인해야 하는 양식 필드의 이름입니다. 이 필드는 반드시 데이터베이스 필드일 필요는 없지만 비밀번호 및 확인 코드 확인 등과 같은 양식의 일부 보조 필드일 수도 있습니다.

확인 규칙: 확인 규칙은 추가 규칙과 결합되어야 합니다(필수). 포함된 공식 규칙은 다음과 같습니다(직접 추가할 수도 있음).

 1 $validate =<span> array(
 </span>2 
 3             'require'=> '/.+/'<span>,
 </span>4 
 5             'email' => '/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/'<span>,
 </span>6 
 7             'url' => '/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/'<span>,
 </span>8 
 9             'currency' => '/^\d+(\.\d+)?$/'<span>,
</span>10 
11             'number' => '/^\d+$/'<span>,
</span>12 
13             'zip' => '/^[1-9]\d{5}$/'<span>,
</span>14 
15             'integer' => '/^[-\+]?\d+$/'<span>,
</span>16 
17             'double' => '/^[-\+]?\d+(\.\d+)?$/'<span>,
</span>18 
19             'english' => '/^[A-Za-z]+$/'<span>,
</span>20 
21         );<br>
프롬프트 정보 : 검증 실패 후 프롬프트 정보 정의(필수),

검증 조건: (선택)
검증 조건에는 세 가지 규칙이 있습니다.
모델::EXISTS_TO_VAILIDATE 또는 0 필드가 존재하는지 확인하세요. (기본값)
모델::MUST_TO_VALIDATE 또는 1 확인해야 함
모델::VALUE_TO_VAILIDATE 또는 2 값이 비어 있지 않은 경우 확인
추가 규칙:
regex 이전 확인을 나타내는 정규 확인 규칙은 다음과 같습니다. 정규 표현식은
함수 확인을 사용하여 이전 확인이 함수 이름임을 나타냅니다.
콜백은 확인 규칙이 모델 클래스의 메서드임을 나타내는 메서드 확인을 사용합니다. 두 필드가 동일한지 확인하는 규칙은
equal은 이전 확인 규칙에서 정의한 특정 값과 같은지 확인합니다.
in은 특정 값 내에 있는지 확인합니다. 이전에 정의된 범위는 배열입니다.
고유 여부를 확인하는 데 사용됩니다. 시스템은 필드의 현재 값을 기반으로 데이터베이스를 쿼리하여 동일한 값이 존재하는지 확인합니다. , 시스템에는 다음을 포함하여 일반적으로 사용되는 몇 가지 일반 확인 규칙이 내장되어 있습니다. 필수 필드는
통화, 숫자여야 합니다.

확인시간 : (선택)

01.Model:: MODEL_INSERT 또는 1 데이터 추가 시 확인

02.Model:: MODEL_UPDATE 또는 2 데이터 편집 시 확인

03.Model:: MODEL_BOTH 또는 3 모든 경우 확인(기본값) )


5. 공식 예:

우리 상사의 요구사항에 맞는지는 모르겠지만, 아직 나오는 게 너무 힘들어요! ! 코드와 케이스, 편안함을 찾아 밤새도록 찾았어요! !
protected $_validate  =<span>  array(   
array(</span>'verify','require','验证码必须!'), <span>//</span><span>默认情况下用正则进行验证   </span>
array(name,'','帐号名称已经存在!',0,’unique’,1), <span>//</span><span> 在新增的时候验证name字段是否唯一   </span>
array('value',array(1,2,3),'值的范围不正确!',2,’<span>in</span>’), <span>//</span><span> 当值不为空的时候判断是否在一个范围内   </span>
array('repassword','password','确认密码不正确',0,’confirm’), <span>//</span><span> 验证确认密码是否和密码一致   </span>
array('password','checkPwd','密码格式不正确',0,’<span>function</span>’)<span>//</span><span> 自定义函数验证密码格式  </span>
);
이상은 관련 내용을 포함하여 thinkPHP 양식 자동 확인 기능을 소개한 내용으로, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.