Funktion zur automatischen Validierung von thinkPHP-Formularen

WBOY
Freigeben: 2016-08-08 09:32:17
Original
1126 Leute haben es durchsucht

Gestern Abend hat mich unser Chef gebeten, an der Funktion zur automatischen Formularüberprüfung zu arbeiten, und ich habe viel Wissen von der offiziellen Website gelernt, bevor ich es mir ausgedacht habe Ergebnisse!

thinkphp definiert für uns automatische Überprüfungsfunktionen und reguläre Ausdrücke in der Modellbasisklasse. Wir müssen nur das Attribut $_validate unter der Modellklasse der entsprechenden Datenbanktabelle einrichten.

1. Wir finden die Modellbasisklasse und können sehen, dass sie in der entsprechenden Datenmodelldatei unten automatisch überprüft wird

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>
Nach dem Login kopieren
//Automatische Überprüfung

   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>
Nach dem Login kopieren

3. Formatbeschreibung: Array (Validierungsfelder, Validierungsregeln, Fehleraufforderungen, Validierungsbedingungen, zusätzliche Regeln, Validierungszeit),

4. Parametererklärung:

Verifizierungsfeld: Der Name des Formularfelds, das überprüft werden muss. Dieses Feld ist nicht unbedingt ein Datenbankfeld, sondern kann auch einige Hilfsfelder des Formulars sein, z. B. Bestätigungskennwörter und Bestätigungscodes usw.

Verifizierungsregeln: Die Regeln zur Verifizierung müssen mit zusätzlichen Regeln kombiniert werden (erforderlich). Die offiziellen Regeln lauten wie folgt (Sie können sie auch selbst hinzufügen):

 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>
Nach dem Login kopieren
Eingabeaufforderungsinformationen: Definition von Eingabeaufforderungsinformationen nach einem Verifizierungsfehler (erforderlich),

Verifizierungsbedingungen: (optional)
Es gibt drei Regeln für Verifizierungsbedingungen:
Modell::EXISTS_TO_VAILIDATE oder 0 Feld vorhanden. Nur überprüfen (Standard)
Model::MUST_TO_VALIDATE oder 1 Muss überprüfen
Model::VALUE_TO_VAILIDATE oder 2 Überprüfen, wenn der Wert nicht leer ist
Zusätzliche Regeln:
regex Regelmäßige Überprüfung, die die vorherige Überprüfung angibt. Die Regel lautet ein regulärer Ausdruck;
Funktion verwendet Funktionsüberprüfung, was angibt, dass die vorherige Überprüfung ein Funktionsname ist;
Rückruf verwendet Methodenüberprüfung, was angibt, dass die Überprüfungsregel eine Methode der Model-Klasse ist; Wenn zwei Felder gleich sind, überprüft die Überprüfungsregel, ob der Feldname einem bestimmten Wert entspricht. Dieser Wert wird durch die vorherige Überprüfungsregel definiert Ein bestimmter zuvor definierter Bereich ist ein Array.
wird verwendet, um zu überprüfen, ob er eindeutig ist. Das System fragt die Datenbank basierend auf dem aktuellen Wert des Felds ab, um festzustellen, ob derselbe Wert vorhanden ist Außerdem verfügt das System über einige häufig verwendete reguläre Verifizierungsregeln, die in diesem Abschnitt verwendet werden können, darunter: Erforderliches Feld muss E-Mail sein; Währung und Nummer; Diese Verifizierungsregeln können direkt verwendet werden
Überprüfungszeit: (optional)

01.Model:: MODEL_INSERT oder 1 zur Überprüfung beim Hinzufügen von Daten
02.Model:: MODEL_UPDATE oder 2 zur Überprüfung beim Bearbeiten von Daten
03.Model:: MODEL_BOTH oder 3 zur Überprüfung in allen Fällen (Standard). )

5. Offizielles Beispiel:



Ich weiß nicht, ob es den Anforderungen unseres Chefs entspricht, aber es kommt trotzdem heraus. Es ist so schwer! ! Ich habe die ganze Nacht damit verbracht, nach Codes, Hüllen und Trost zu suchen! !

Das Obige stellt die automatische Formularüberprüfungsfunktion von thinkPHP vor, einschließlich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

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>
);
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage