വീട് സ്റ്റോമാറ്റിറ്റിസ് രുചിയില്ലാത്ത മൂല്യനിർണ്ണയം php. POST ഡാറ്റ സാധൂകരിക്കുന്നതിനുള്ള വാലിഡേറ്റർ ക്ലാസ്

രുചിയില്ലാത്ത മൂല്യനിർണ്ണയം php. POST ഡാറ്റ സാധൂകരിക്കുന്നതിനുള്ള വാലിഡേറ്റർ ക്ലാസ്

മിക്കവാറും എല്ലാ ഇൻ്ററാക്ടീവ് വെബ് ആപ്ലിക്കേഷനുകളും ഇൻപുട്ട് സാധൂകരിക്കേണ്ടതുണ്ട്. ഉദാഹരണത്തിന്, രജിസ്ട്രേഷൻ ഫോമിന് സ്ഥിരീകരണത്തിന് ഒരു പാസ്വേഡ് ആവശ്യമായി വന്നേക്കാം. ഒരുപക്ഷേ വിലാസം ഇമെയിൽഅതുല്യമായിരിക്കണം. പശ്ചാത്തല പരിശോധനകൾ ബുദ്ധിമുട്ടുള്ള ഒരു പ്രക്രിയയായിരിക്കാം. ഭാഗ്യവശാൽ, Laravel-ൽ അല്ല, വാലിഡേറ്റർ ക്ലാസ് ഒരു അത്ഭുതകരമായ മൂല്യനിർണ്ണയ സഹായികൾ നൽകുന്നു, ഇത് ഡാറ്റ മൂല്യനിർണ്ണയം കഴിയുന്നത്ര എളുപ്പമാക്കുന്നു. നമുക്ക് ഒരു ഉദാഹരണം നോക്കാം:

മൂല്യനിർണ്ണയത്തിനായി ഒരു ഡാറ്റ അറേ നേടുന്നു:

$ ഇൻപുട്ട് = ഇൻപുട്ട്:: എല്ലാം ();

ഡാറ്റ മൂല്യനിർണ്ണയ നിയമങ്ങൾ നിർവചിക്കുന്നു:

$rules = array("name" => "required|max:50", "email" => "required|email|unique:users",);

ഒരു വാലിഡേറ്റർ ഉദാഹരണം സൃഷ്‌ടിക്കുകയും ഡാറ്റ സാധൂകരിക്കുകയും ചെയ്യുന്നു:

$ മൂല്യനിർണ്ണയം = മൂല്യനിർണ്ണയം:: ഉണ്ടാക്കുക ($ ഇൻപുട്ട്, $ നിയമങ്ങൾ); എങ്കിൽ ($validation->പരാജയപ്പെട്ടാൽ()) ($validation->പിശകുകൾ തിരികെ നൽകുക;)

ഒരു സ്വത്ത് ഉണ്ടെങ്കിൽ പിശകുകൾനിങ്ങളുടെ സ്വന്തം പിശക് സന്ദേശങ്ങൾ എളുപ്പത്തിൽ സൃഷ്ടിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന ഒരു സന്ദേശ ശേഖരണത്തിലേക്ക് നിങ്ങൾക്ക് ആക്സസ് ലഭിക്കും. തീർച്ചയായും, എല്ലാ മൂല്യനിർണ്ണയ നിയമങ്ങൾക്കും സ്ഥിരസ്ഥിതിയായി പിശക് സന്ദേശങ്ങളുണ്ട്. സാധാരണ പിശക് സന്ദേശങ്ങൾ ഉണ്ട് language/en/validation.php.

വാലിഡേറ്റർ ക്ലാസ് ഉപയോഗിക്കുന്നതിനുള്ള അടിസ്ഥാന നിയമങ്ങൾ നിങ്ങൾക്ക് ഇപ്പോൾ പരിചിതമാണ്. നിങ്ങളുടെ ഡാറ്റ പരിശോധിക്കാൻ ഉപയോഗിക്കുന്ന നിയമങ്ങൾ പര്യവേക്ഷണം ചെയ്യാനും പഠിക്കാനും നിങ്ങൾ തയ്യാറാണ്!

മൂല്യനിർണ്ണയ നിയമങ്ങൾ

നിർബന്ധിത ഡാറ്റ

ആവശ്യമായ ശൂന്യമല്ലാത്ത പാരാമീറ്റർ മൂല്യത്തിനായി പരിശോധിക്കുന്നു:

"പേര്" => "ആവശ്യമാണ്"

ആൽഫ, ആൽഫ ന്യൂമെറിക്, ആൽഫ ഡാഷ്

അക്ഷരങ്ങൾ മാത്രം പരിശോധിക്കുന്നു:

"പേര്" => "ആൽഫ"

അക്ഷരങ്ങളും അക്കങ്ങളും മാത്രം പരിശോധിക്കുന്നു:

"ഉപയോക്തൃനാമം" => "alpha_num"

അക്ഷരങ്ങൾ, അക്കങ്ങൾ, ഡാഷുകൾ, അടിവരകൾ എന്നിവ മാത്രം പരിശോധിക്കുക:

"ഉപയോക്തൃനാമം" => "alpha_dash"

വലിപ്പം

ഒരു സ്ട്രിംഗ് ആട്രിബ്യൂട്ടിൻ്റെ സ്‌ട്രിംഗ് വലുപ്പം അല്ലെങ്കിൽ ഒരു സംഖ്യാ ആട്രിബ്യൂട്ടിനുള്ള മൂല്യങ്ങളുടെ ശ്രേണി പരിശോധിക്കുന്നു:

"പേര്" => "വലിപ്പം:10"

മൂല്യങ്ങളുടെ ഒരു ശ്രേണി പരിശോധിക്കുന്നു:

"പേയ്മെൻ്റ്" => "10.50 ന് ഇടയിൽ"

കുറിപ്പ്:ഏറ്റവും കുറഞ്ഞതും കൂടിയതും ശ്രേണിയിൽ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്.

ഏറ്റവും കുറഞ്ഞ ആട്രിബ്യൂട്ട് വലുപ്പം പരിശോധിക്കുന്നു:

"പേയ്മെൻ്റ്" => "മിനിറ്റ്:10"

പരമാവധി ആട്രിബ്യൂട്ട് വലുപ്പം പരിശോധിക്കുന്നു:

"പേയ്മെൻ്റ്" => "പരമാവധി:50"

സംഖ്യാ തരങ്ങൾ

ഒരു ആട്രിബ്യൂട്ട് ഒരു സംഖ്യാ തരമാണോ എന്ന് പരിശോധിക്കുന്നു:

"പണം" => "സംഖ്യ"

ഒരു ആട്രിബ്യൂട്ട് ഒരു പൂർണ്ണസംഖ്യ തരമാണോ എന്ന് പരിശോധിക്കുന്നു:

"പേയ്മെൻ്റ്" => "പൂർണ്ണസംഖ്യ"

സംഭവങ്ങളും ഒഴിവാക്കലുകളും

മൂല്യങ്ങളുടെ ഒരു നിരയിൽ ഉൾപ്പെടുത്തുന്നതിനായി ഒരു ആട്രിബ്യൂട്ട് പരിശോധിക്കുന്നു:

"വലിപ്പം" => "ഇൽ:ചെറുത്, ഇടത്തരം, വലുത്"

മൂല്യങ്ങളുടെ നിരയിൽ നിന്ന് ഒഴിവാക്കുന്നതിനായി ഒരു ആട്രിബ്യൂട്ട് പരിശോധിക്കുന്നു:

"ഭാഷ" => "not_in:cobol,assembler"

സ്ഥിരീകരണം

ഭരണം സ്ഥിരീകരിച്ചുതന്നിരിക്കുന്ന ആട്രിബ്യൂട്ടിന് അനുബന്ധമായ ഒരു ആട്രിബ്യൂട്ട്_confirmation ഉണ്ടോ എന്ന് പരിശോധിക്കുന്നു.

സ്ഥിരീകരണത്തിനായി ആട്രിബ്യൂട്ട് പരിശോധിക്കുന്നു:

"പാസ്‌വേഡ്" => "സ്ഥിരീകരിച്ചു"

ഈ ഉദാഹരണത്തിൽ, വാലിഡേറ്റർ പരാമീറ്റർ പരിശോധിക്കുന്നു passwordവ്യവസ്ഥകൾ തൃപ്തിപ്പെടുത്തുന്നു password_confirmationമൂല്യനിർണ്ണയ ശ്രേണിയിൽ നിന്ന്.

സ്വീകാര്യത

ഭരണം സ്വീകരിച്ചുമൂല്യത്തിനായുള്ള പരാമീറ്റർ പരിശോധിക്കുന്നു അതെഅഥവാ 1 . ഈ നിയമം നിർബന്ധിത ചെക്ക്ബോക്സുകളുടെ ഇൻസ്റ്റാളേഷനായി പരിശോധിക്കുന്നു, ഉദാഹരണത്തിന്, "സേവന നിബന്ധനകൾ" ചെക്ക്ബോക്സ്.

സ്വീകാര്യത പരിശോധന:

"നിബന്ധനകൾ" => "അംഗീകരിച്ചു"

കത്തിടപാടുകളും വ്യത്യാസങ്ങളും

താരതമ്യം ചെയ്യുന്ന മറ്റ് ആട്രിബ്യൂട്ടിന് സമാനമാണ് ആട്രിബ്യൂട്ട് എന്ന് പരിശോധിക്കുന്നു:

"ടോക്കൺ1" => "അതേ:ടോക്കൺ2"

ഒരു ആട്രിബ്യൂട്ടിന് മറ്റൊരു മൂല്യമുണ്ടോയെന്ന് പരിശോധിക്കുന്നു:

"പാസ്‌വേഡ്" => "വ്യത്യസ്ത:പഴയ_പാസ്‌വേഡ്",

റെഗുലർ എക്സ്പ്രഷനുകൾ

ഭരണം പൊരുത്തംപതിവ് എക്സ്പ്രഷനുമായി പൊരുത്തപ്പെടുന്നതിന് ആട്രിബ്യൂട്ട് പരിശോധിക്കുന്നു.

പതിവ് പദപ്രയോഗത്തിൻ്റെ സംതൃപ്തി പരിശോധിക്കുന്നു:

"ഉപയോക്തൃനാമം" => "പൊരുത്തം:/+/";

സവിശേഷതയും അസ്തിത്വവും

ഡാറ്റാബേസിലെ അദ്വിതീയതയ്ക്കായി ഒരു പരാമീറ്റർ പരിശോധിക്കുന്നു:

"ഇമെയിൽ" => "അദ്വിതീയം:ഉപയോക്താക്കൾ"

ഈ ഉദാഹരണത്തിൽ പരാമീറ്റർ ഇമെയിൽപട്ടികയിലെ അദ്വിതീയത പരിശോധിച്ചു ഉപയോക്താക്കൾ. ഇതല്ലാതെ മറ്റൊരു കോളത്തിൻ്റെ ആട്രിബ്യൂട്ടിൻ്റെ പ്രത്യേകത പരിശോധിക്കേണ്ടതുണ്ടോ? ഒരു പ്രശ്നവുമില്ല:

പരിശോധിക്കാൻ മറ്റൊരു കോളം വ്യക്തമാക്കുന്നു:

"email" => "unique:users,email_address"

പലപ്പോഴും, ഒരു റെക്കോർഡ് അപ്ഡേറ്റ് ചെയ്യുമ്പോൾ, നിങ്ങൾ ഒരു അദ്വിതീയ നിയമം ഉപയോഗിക്കേണ്ടതുണ്ട്, എന്നാൽ പുതുക്കിയ റെക്കോർഡ് ഒഴിവാക്കുക. ഉദാഹരണത്തിന്, ഉപയോക്താക്കളെ അവരുടെ ഇമെയിൽ വിലാസങ്ങൾ മാറ്റാൻ അനുവദിക്കണം. എന്നാൽ ഭരണം പ്രവർത്തിക്കുമ്പോൾ അതുല്യമായ, ഒരു സാങ്കൽപ്പിക മൂല്യനിർണ്ണയ പിശക് ഉണ്ടാകാതിരിക്കാൻ നിങ്ങൾ ഈ ഉപയോക്താവിനെ ഒഴിവാക്കേണ്ടതുണ്ട്. ഇത് ലളിതമാണ്:

നിർദ്ദിഷ്ട ഐഡി അവഗണിക്കുന്നു:

"email" => "unique:users,email_address,10"

നിർദ്ദിഷ്ട ഡാറ്റാബേസിൽ ഒരു ആട്രിബ്യൂട്ടിൻ്റെ സാന്നിധ്യം പരിശോധിക്കുന്നു:

"state" => "നിലവിലുണ്ട്: സംസ്ഥാനങ്ങൾ"

നിലവിലുള്ള റൂളിൻ്റെ കോളത്തിൻ്റെ പേര് വ്യക്തമാക്കുന്നു:

"state" => "നിലവിലുണ്ട്: സംസ്ഥാനങ്ങൾ, ചുരുക്കെഴുത്ത്"

തീയതികൾ

തീയതി പാരാമീറ്റർ മുമ്പാണോയെന്ന് പരിശോധിക്കുന്നു...:

"ജന്മദിനം" => "മുമ്പ്:1986-28-05";

തീയതി പരാമീറ്ററിന് ശേഷം ഒരു മൂല്യമുണ്ടോയെന്ന് പരിശോധിക്കുന്നു...:

"ജന്മദിനം" => "ശേഷം:1986-28-05";

കുറിപ്പ്:പരീക്ഷ മുമ്പ്ഒപ്പം ശേഷം PHP ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു strtotime.

ഇമെയിൽ വിലാസങ്ങൾ

പരാമീറ്റർ ഒരു ഇ-മെയിൽ വിലാസമാണോയെന്ന് പരിശോധിക്കുന്നു:

"വിലാസം" => "ഇമെയിൽ"

കുറിപ്പ്:ഈ നിയമം PHP-യുടെ ബിൽറ്റ്-ഇൻ രീതി ഉപയോഗിക്കുന്നു filter_var.

URL-കൾ

പരാമീറ്റർ ഒരു URL ആണെന്ന് പരിശോധിക്കുന്നു:

"ലിങ്ക്" => "url"

പരാമീറ്റർ ഒരു സജീവ URL ആണെന്ന് പരിശോധിക്കുന്നു:

"ലിങ്ക്" => "active_url"

കുറിപ്പ്:ഭരണം സജീവ_urlഉപയോഗിക്കുന്നു ചെക്ക്ഡിഎൻഎസ്ആർ URL സജീവമാണോ എന്ന് പരിശോധിക്കാൻ.

ഡൗൺലോഡുകൾ

നിയമങ്ങൾ മൈമുകൾഡൗൺലോഡ് ചെയ്ത ഫയൽ MIME തരവുമായി പൊരുത്തപ്പെടുന്നുണ്ടോയെന്ന് പരിശോധിക്കുക. ഫയലിൻ്റെ ഉള്ളടക്കം പരിശോധിക്കുന്നതിനും അതിൻ്റെ തരം നിർണ്ണയിക്കുന്നതിനും ഈ നിയമം PHP Fileinfo വിപുലീകരണം ഉപയോഗിക്കുന്നു. ഈ നിയമത്തിന് ബാധകമായ ഏത് ഫയൽ വിപുലീകരണങ്ങളും നിർവചിച്ചിരിക്കുന്നു config/mimes.php.

ഒരു ഫയൽ ഒരു പ്രത്യേക തരത്തിൽ പെട്ടതാണോ എന്ന് പരിശോധിക്കുന്നു:

"ചിത്രം" => "mimes:jpg,gif"

കുറിപ്പ്:പരിശോധിക്കുമ്പോൾ, Input::file() അല്ലെങ്കിൽ Input::all() ഉപയോഗിക്കാൻ ഓർമ്മിക്കുക.

ഫയൽ ഒരു ചിത്രമാണോ എന്ന് പരിശോധിക്കുന്നു:

"ചിത്രം" => "ചിത്രം"

ഫയൽ വലുപ്പം പരിശോധിക്കുന്നു:

"ചിത്രം" => "ചിത്രം|പരമാവധി:100"

ഒരു പിശക് സന്ദേശം അഭ്യർത്ഥിക്കുക

എറർ കളക്ടർ എന്ന ലളിതമായ ക്ലാസ് ഉപയോഗിച്ച് പിശക് സന്ദേശങ്ങൾ കൈകാര്യം ചെയ്യാൻ Laravel നിങ്ങളെ അനുവദിക്കുന്നു. കോൾ രീതികൾ ശേഷം കടന്നുപോകുന്നുഅഥവാ പരാജയപ്പെടുന്നുവാലിഡേറ്റർ ഉദാഹരണം, പ്രോപ്പർട്ടി ഉപയോഗിച്ച് നിങ്ങൾക്ക് പിശക് ആക്സസ് ചെയ്യാൻ കഴിയും പിശകുകൾ. കളക്ടർക്ക് പിശക് ഉണ്ട് ലളിതമായ പ്രവർത്തനങ്ങൾപിശക് സന്ദേശങ്ങൾ അഭ്യർത്ഥിക്കാൻ:

ഒരു ആട്രിബ്യൂട്ടിന് ഒരു പിശക് സന്ദേശം ഉണ്ടെന്ന് നിർണ്ണയിക്കുന്നു:

എങ്കിൽ ($validation->പിശകുകൾ->("ഇമെയിൽ")) ( // ഇ-മെയിൽ ആട്രിബ്യൂട്ടിൽ പിശകുകൾ ഉണ്ട്... )

ഒരു ആട്രിബ്യൂട്ടിനായുള്ള ആദ്യത്തെ പിശക് സന്ദേശം അന്വേഷിക്കുക:

പ്രതിധ്വനി $validation->പിശകുകൾ->ആദ്യം("ഇമെയിൽ");

നിങ്ങളുടെ പിശക് സന്ദേശം HTML ടാഗുകളിൽ പൊതിയേണ്ടതായി വന്നേക്കാം. ഒരു പ്രശ്നവുമില്ല. വിളിക്കുമ്പോൾ: സന്ദേശം പ്ലേസ്-ഹോൾഡർ, രീതിയുടെ രണ്ടാമത്തെ പാരാമീറ്ററായി ഫോർമാറ്റ് വ്യക്തമാക്കുക.

സന്ദേശ ഫോർമാറ്റിംഗ് പിശക്:

പ്രതിധ്വനി $validation->പിശകുകൾ->ആദ്യം("ഇമെയിൽ", "");

ഒരു ആട്രിബ്യൂട്ടിനായി എല്ലാ പിശക് സന്ദേശങ്ങളും ലഭിക്കുന്നു:

$ സന്ദേശങ്ങൾ = $ മൂല്യനിർണ്ണയം-> പിശകുകൾ-> നേടുക("ഇമെയിൽ");

ഒരു ആട്രിബ്യൂട്ടിനായി എല്ലാ പിശക് സന്ദേശങ്ങളും ഫോർമാറ്റ് ചെയ്യുന്നു:

$ സന്ദേശങ്ങൾ = $ മൂല്യനിർണ്ണയം-> പിശകുകൾ-> നേടുക("ഇമെയിൽ", "");

എല്ലാ ആട്രിബ്യൂട്ടുകൾക്കുമായി എല്ലാ പിശക് സന്ദേശങ്ങളും ലഭിക്കുന്നു:

$ സന്ദേശങ്ങൾ = $ മൂല്യനിർണ്ണയം-> പിശകുകൾ->എല്ലാം();

എല്ലാ ആട്രിബ്യൂട്ടുകൾക്കുമായി എല്ലാ പിശക് സന്ദേശങ്ങളും ഫോർമാറ്റ് ചെയ്യുന്നു:

$ സന്ദേശങ്ങൾ = $ മൂല്യനിർണ്ണയം-> പിശകുകൾ->എല്ലാം("");

മൂല്യനിർണ്ണയം കടന്നുപോകുന്നു

ഒരിക്കൽ നിങ്ങൾ മൂല്യനിർണ്ണയം നടത്തിക്കഴിഞ്ഞാൽ, കാഴ്ചയിൽ പിശകുകൾ പ്രദർശിപ്പിക്കുന്നതിന് നിങ്ങൾക്ക് ഒരു ലളിതമായ മാർഗം ആവശ്യമാണ്. ലാറവെൽ ഇത് വളരെ എളുപ്പമാക്കുന്നു. നമുക്ക് ഒരു സാധാരണ രംഗം നോക്കാം. ഇത് രണ്ട് തരത്തിൽ നിർവചിക്കാം:

റൂട്ട്::get("രജിസ്റ്റർ", ഫംഗ്‌ഷൻ() ( മടങ്ങുക കാണുക::make("user.register"); )); റൂട്ട്::പോസ്റ്റ്("രജിസ്റ്റർ", ഫംഗ്‌ഷൻ() ($റൂൾസ് = അറേ(...); $വാലിഡേഷൻ = വാലിഡേറ്റർ::മാക്ക്(ഇൻപുട്ട്::എല്ലാ(), $റൂളുകൾ); ($validation->പരാജയപ്പെട്ടാൽ( )) ( തിരിച്ചുവിടുക റീഡയറക്ട്:: to("register")->with_errors($validation); ) );

കൊള്ളാം! അതിനാൽ രജിസ്ട്രേഷൻ ഫോമിനായി ഞങ്ങൾക്ക് രണ്ട് ലളിതമായ വഴികളുണ്ട്. ഒന്ന് ഫോം ഡിസ്പ്ലേ കൈകാര്യം ചെയ്യാൻ, ഒന്ന് ഫോം ഇൻപുട്ട് കൈകാര്യം ചെയ്യാൻ. POST റൂട്ടിൽ ഞങ്ങൾ ഇൻപുട്ടിൽ ചില പരിശോധനകൾ നടത്തുന്നു. പരിശോധന പരാജയപ്പെടുകയാണെങ്കിൽ, പിശകുകൾ സൂചിപ്പിക്കുകയും ഫോമിൽ രണ്ടാമത്തേത് പ്രദർശിപ്പിക്കുകയും ചെയ്യുന്ന രജിസ്ട്രേഷൻ ഫോമിലേക്ക് ഞങ്ങൾ നിങ്ങളെ തിരികെ അയയ്ക്കും.

എന്നാൽ ഞങ്ങളുടെ GET റൂട്ടിലെ ഒരു ലക്ഷ്യവുമായി ഞങ്ങൾ പിശകുകളെ വ്യക്തമായി ബന്ധപ്പെടുത്തുന്നില്ലെന്ന് ശ്രദ്ധിക്കുക. എന്നിരുന്നാലും, പിശക് വേരിയബിൾ കാഴ്ചയിൽ ലഭ്യമാകും. സെഷനിൽ പിശകുകളുണ്ടോ എന്ന് ലാറവെൽ ബുദ്ധിപരമായി കണ്ടെത്തുന്നു, അങ്ങനെയാണെങ്കിൽ, കാഴ്ചയിലേക്ക് സന്ദേശങ്ങൾ അറ്റാച്ചുചെയ്യുന്നു. പിശകുകളൊന്നും ഇല്ലെങ്കിൽ, ശൂന്യമായ പിശക് സന്ദേശ കണ്ടെയ്നർ ഇപ്പോഴും കാഴ്ചയിൽ അറ്റാച്ചുചെയ്യും. ഒരു പിശക് സന്ദേശ കണ്ടെയ്നർ എല്ലായ്പ്പോഴും കാഴ്ചയിൽ ലഭ്യമാകും. നിങ്ങളുടെ ജീവിതം എളുപ്പമാക്കാൻ ഞങ്ങൾ ഇഷ്ടപ്പെടുന്നു.

ഇഷ്‌ടാനുസൃത പിശക് സന്ദേശങ്ങൾ

നിങ്ങളുടെ സ്വന്തം പിശക് സന്ദേശം ഉപയോഗിക്കണോ? തന്നിരിക്കുന്ന ആട്രിബ്യൂട്ടിനും റൂളിനും ഇഷ്‌ടാനുസൃത പിശക് സന്ദേശങ്ങൾ ഉപയോഗിക്കാൻ നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം. ഏതുവിധേനയും, വാലിഡേറ്റർ ക്ലാസ് ഇത് ചെയ്യുന്നത് എളുപ്പമാക്കുന്നു.

വാലിഡേറ്ററിനായി നിങ്ങളുടെ സ്വന്തം പിശക് സന്ദേശങ്ങളുടെ ഒരു നിര സൃഷ്ടിക്കുന്നു:

$messages = array("required" => "The:attribute field ആവശ്യമാണ്.",); $ മൂല്യനിർണ്ണയം = മൂല്യനിർണ്ണയം:: ഉണ്ടാക്കുക (ഇൻപുട്ട്:: get(), $ നിയമങ്ങൾ, $ സന്ദേശങ്ങൾ);

കൊള്ളാം! ഇപ്പോൾ ഞങ്ങളുടെ ഇഷ്‌ടാനുസൃത സന്ദേശങ്ങൾ സ്ഥിരീകരണ സമയത്ത് എപ്പോഴും ഉപയോഗിക്കും. പക്ഷെ എന്തൊരു ഭാവം :ആട്രിബ്യൂട്ട്ഞങ്ങളുടെ സന്ദേശത്തിൽ. നിങ്ങളുടെ ജീവിതം എളുപ്പമാക്കുന്നതിന്, വാലിഡേറ്റർ ക്ലാസ് മാറ്റിസ്ഥാപിക്കുന്നു :ആട്രിബ്യൂട്ട്പിശകിന് കാരണമായ ഇൻപുട്ട് ആട്രിബ്യൂട്ടിലേക്ക്. ആട്രിബ്യൂട്ട് നാമത്തിൽ നിന്ന് അടിവരയിടുന്നത് പോലും ഇത് നീക്കം ചെയ്യും. നിങ്ങൾക്ക് ഉപയോഗിക്കാനും കഴിയും : മറ്റുള്ളവ, : വലിപ്പം, :മിനിറ്റ്, :പരമാവധി, ഒപ്പം :മൂല്യങ്ങൾനിങ്ങളുടെ പിശക് സന്ദേശങ്ങൾ നിർമ്മിക്കുന്നതിനുള്ള പ്ലെയ്‌സ്‌ഹോൾഡറുകൾ.

ഇഷ്‌ടാനുസൃത പിശക് സന്ദേശങ്ങളുടെ ഉദാഹരണങ്ങൾ:

$messages = അറേ("അതേ" => ​​"The:attribute and:other must match.", "size" => "The:attribute കൃത്യമായിരിക്കണം:size", "between" => "The:attribute ആയിരിക്കണം between:min - :max.", "in" => "The:attribute ഇനിപ്പറയുന്ന തരങ്ങളിൽ ഒന്നായിരിക്കണം: :values",);

നിങ്ങൾക്ക് ആവശ്യമുള്ള ഒരു സന്ദേശം നിർവചിക്കണമെങ്കിൽ, എന്നാൽ ഒരു ഇമെയിൽ ആട്രിബ്യൂട്ടിനായി മാത്രം? ഒരു പ്രശ്നവുമില്ല. ഉപയോഗിക്കുന്ന സന്ദേശം വ്യക്തമാക്കുക ആട്രിബ്യൂട്ട്_റൂൾപേരിടൽ:

ഒരു നിർദ്ദിഷ്ട ആട്രിബ്യൂട്ടിനായി ഒരു സന്ദേശം നിർവചിക്കുന്നു:

$messages = അറേ("email_required" => "ഞങ്ങൾക്ക് നിങ്ങളുടെ ഇമെയിൽ വിലാസം അറിയേണ്ടതുണ്ട്!",);

ഈ ഉദാഹരണത്തിൽ, ഇമെയിൽ ആട്രിബ്യൂട്ടിനായി മാത്രം ഇഷ്‌ടാനുസൃത പിശക് സന്ദേശം ഉപയോഗിക്കും, അല്ലാത്തപക്ഷം സാധാരണ സന്ദേശങ്ങൾ ഉപയോഗിക്കും.

അതേ സമയം, നിങ്ങളുടേതായ ധാരാളം പിശക് സന്ദേശങ്ങൾ നിങ്ങൾ ഉപയോഗിക്കുകയാണെങ്കിൽ, അവയെല്ലാം കോഡിൽ വ്യക്തമാക്കുന്നത് അത് ബുദ്ധിമുട്ടുള്ളതും അസൗകര്യവുമാക്കും. ഇക്കാരണത്താൽ, ഭാഷാ ഫയലിൽ നിങ്ങളുടെ സ്വന്തം അറേ നിർവചിക്കാൻ കഴിയും:

ഭാഷാ ഫയലിലേക്ക് നിങ്ങളുടെ സ്വന്തം അറേ ചേർക്കുന്നു:

"ഇഷ്‌ടാനുസൃതം" => അറേ("email_required" => "ഞങ്ങൾക്ക് നിങ്ങളുടെ ഇമെയിൽ വിലാസം അറിയേണ്ടതുണ്ട്!",)

സ്വന്തം മൂല്യനിർണ്ണയ നിയമങ്ങൾ

Laravel നിരവധി ശക്തമായ മൂല്യനിർണ്ണയ നിയമങ്ങൾ നൽകുന്നു. എന്നിരുന്നാലും, നിങ്ങൾക്ക് സ്വന്തമായി സൃഷ്ടിക്കാൻ കഴിയും. രണ്ടെണ്ണം ഉണ്ട് ലളിതമായ വഴികൾസ്ഥിരീകരണ നിയമങ്ങൾ സൃഷ്ടിക്കുന്നു. രണ്ടും ഉപയോഗിക്കാൻ വിശ്വസനീയമാണ്. നിങ്ങളുടെ പ്രോജക്റ്റിന് കൂടുതൽ അനുയോജ്യമായ ഒന്ന് തിരഞ്ഞെടുക്കുക മാത്രമാണ് നിങ്ങൾ ചെയ്യേണ്ടത്.

നിങ്ങളുടെ സ്വന്തം മൂല്യനിർണ്ണയ നിയമം രജിസ്റ്റർ ചെയ്യുന്നു:

മൂല്യനിർണ്ണയം::രജിസ്റ്റർ("വിസ്മയം", ഫംഗ്‌ഷൻ($ആട്രിബ്യൂട്ട്, $മൂല്യം, $പാരാമീറ്ററുകൾ) ( $value == "wesome തിരികെ നൽകുക)"; }); !}

ഈ ഉദാഹരണത്തിൽ, വാലിഡേറ്റർ ക്ലാസിനായി ഞങ്ങൾ പുതിയ മൂല്യനിർണ്ണയ നിയമങ്ങൾ രജിസ്റ്റർ ചെയ്തിട്ടുണ്ട്. ഈ നിയമം മൂന്ന് പാരാമീറ്ററുകൾ എടുക്കുന്നു. ആദ്യത്തേത് പരിശോധിച്ച ആട്രിബ്യൂട്ടിൻ്റെ പേരാണ്, രണ്ടാമത്തേത് പരിശോധിക്കുന്ന ആട്രിബ്യൂട്ടിൻ്റെ മൂല്യം, മൂന്നാമത്തേത് റൂളിനായി സജ്ജമാക്കിയ പാരാമീറ്ററുകളുടെ ഒരു നിരയാണ്.

നിങ്ങളുടെ റൂൾ കോൾ ഇതുപോലെയാണ്:

$റൂൾസ് = അറേ("ഉപയോക്തൃനാമം" => "ആവശ്യമാണ്|അതിശയകരമായത്",);

തീർച്ചയായും, പുതിയ നിയമത്തിന് നിങ്ങൾ ഒരു പിശക് സന്ദേശം നിർവചിക്കേണ്ടതുണ്ട്. നിങ്ങൾക്ക് അറേ പ്രത്യേക സന്ദേശങ്ങളിൽ ഒന്നുകിൽ ഇത് ചെയ്യാൻ കഴിയും:

$messages = അറേ("വിസ്മയം" => "ആട്രിബ്യൂട്ട് മൂല്യം ഗംഭീരമായിരിക്കണം!",); $ വാലിഡേറ്റർ = വാലിഡേറ്റർ:: ഉണ്ടാക്കുക (ഇൻപുട്ട്:: get(), $റൂളുകൾ, $ സന്ദേശങ്ങൾ);

അല്ലെങ്കിൽ റൂളിനുള്ള ഒരു എൻട്രി ചേർത്തുകൊണ്ട് language/en/validation.php:

"വിസ്മയം" => "ആട്രിബ്യൂട്ട് മൂല്യം ഗംഭീരമായിരിക്കണം!",

മുകളിൽ സൂചിപ്പിച്ചതുപോലെ, നിങ്ങൾക്ക് ഒരു ഇഷ്‌ടാനുസൃത നിയമത്തിൽ പാരാമീറ്ററുകളുടെ ഒരു ലിസ്റ്റ് വ്യക്തമാക്കാനും നേടാനും കഴിയും:

// ഒരു റൂൾ നിർമ്മിക്കുമ്പോൾ... $റൂൾസ് = അറേ("ഉപയോക്തൃനാമം" => "ആവശ്യമാണ്|വിസ്മയം:അതെ",); // റൂളിൽ... വാലിഡേറ്റർ ::രജിസ്റ്റർ("അതിശയകരമായത്", ഫംഗ്‌ഷൻ($ആട്രിബ്യൂട്ട്, $മൂല്യം, $പാരാമീറ്ററുകൾ) ($മൂല്യം == $പാരാമീറ്ററുകൾ തിരികെ നൽകുക; )

ഈ ഉദാഹരണത്തിൽ, നിങ്ങളുടെ മൂല്യനിർണ്ണയ നിയമത്തിൻ്റെ ആർഗ്യുമെൻ്റ് പാരാമീറ്ററിന് ഒരു ഘടകം അടങ്ങിയിരിക്കുന്ന ഒരു അറേ ലഭിക്കും: "അതെ".

ഇഷ്‌ടാനുസൃത മൂല്യനിർണ്ണയ നിയമങ്ങൾ സൃഷ്‌ടിക്കാനും സംഭരിക്കാനുമുള്ള മറ്റൊരു മാർഗം വാലിഡേറ്റർ ക്ലാസ് വിപുലീകരിക്കുക എന്നതാണ്. മാത്രമല്ല, ലാറവലിലെ നെയിംസ്‌പെയ്‌സിന് നന്ദി, ഈ ക്ലാസിന് സ്വയം വിപുലീകരിക്കാൻ കഴിയും. ഈ രീതിയിൽ നിങ്ങൾ സൃഷ്ടിക്കുന്നു പുതിയ പതിപ്പ്പുതിയ കൂട്ടിച്ചേർക്കലുകളോടൊപ്പം നിലവിലുള്ള എല്ലാ സവിശേഷതകളും സംയോജിപ്പിച്ച് വാലിഡേറ്റർ. നിങ്ങൾക്ക് വേണമെങ്കിൽ ചില ഡിഫോൾട്ട് രീതികൾ മാറ്റിസ്ഥാപിക്കാൻ പോലും നിങ്ങൾക്ക് തിരഞ്ഞെടുക്കാം. നമുക്ക് ഒരു ഉദാഹരണം നോക്കാം:

ആദ്യം, ഒരു ക്ലാസ് സൃഷ്ടിക്കുക വാലിഡേറ്റർക്ലാസ് അവകാശമായി ലഭിക്കുന്നത് ലാറവെൽ\ വാലിഡേറ്റർഅതിൽ സ്ഥാപിക്കുക ആപ്ലിക്കേഷൻ/ലൈബ്രറികൾ:

നിങ്ങളുടെ സ്വന്തം ക്ലാസ് നിർവചിക്കുന്നു:

ഇപ്പോൾ, നമുക്ക് നമ്മുടെ "അതിശയകരമായ" റൂൾ ചേർത്ത് ഒരു പുതിയ ക്ലാസിൽ നിർവചിക്കാം:

ഒരു പുതിയ നിയമം ചേർക്കുന്നു:

പേരിടൽ കൺവെൻഷൻ അനുസരിച്ചാണ് Validate_awesom രീതിക്ക് പേര് നൽകിയിരിക്കുന്നത് എന്നത് ശ്രദ്ധിക്കുക. ആ. "വിസ്മയം" നിയമത്തിന്, രീതിക്ക് "validate_awesome" എന്ന് പേരിടണം. വാലിഡേറ്റർ ക്ലാസ് വിപുലീകരിക്കുന്നതിനുള്ള നിരവധി മാർഗങ്ങളിൽ ഒന്നാണിത്. വാലിഡേറ്റർ ക്ലാസിന് "ശരി" അല്ലെങ്കിൽ "തെറ്റ്" എന്ന മൂല്യം തിരികെ നൽകേണ്ടതുണ്ട്. അത്രയേയുള്ളൂ!

നിങ്ങൾ സൃഷ്‌ടിക്കുന്ന മൂല്യനിർണ്ണയ നിയമങ്ങൾക്കായി നിങ്ങൾ ഇപ്പോഴും ഒരു ഇഷ്‌ടാനുസൃത സന്ദേശം സൃഷ്‌ടിക്കേണ്ടതുണ്ടെന്ന് ഓർമ്മിക്കുക. ഇത് ചെയ്യുന്നതിനുള്ള രീതിയും നിങ്ങൾ നിയമങ്ങൾ എങ്ങനെ നിർവചിക്കുന്നു എന്നതിൽ നിന്ന് സ്വതന്ത്രമാണ്!

വെബ് ആപ്ലിക്കേഷനുകൾ നിർമ്മിക്കുമ്പോൾ, സുരക്ഷയെ ഗൗരവമായി കാണേണ്ടത് പ്രധാനമാണ്, പ്രത്യേകിച്ചും ഉപയോക്താക്കളിൽ നിന്ന് ഡാറ്റ നേടുന്നത് നിങ്ങൾ കൈകാര്യം ചെയ്യേണ്ടിവരുമ്പോൾ.

ആരെയും വിശ്വസിക്കരുത് എന്നതാണ് ഒരു പൊതു സുരക്ഷാ നിയമം, അതിനാൽ നിങ്ങൾക്ക് എല്ലായ്പ്പോഴും ശരിയായ മൂല്യങ്ങൾ ഫോമുകളിൽ നൽകുന്നതിന് ഉപയോക്താക്കളെ ആശ്രയിക്കാൻ കഴിയില്ല. ഉദാഹരണത്തിന്, ഫീൽഡിൽ ശരിയായ ഇമെയിൽ വിലാസം നൽകുന്നതിനുപകരം, ഉപയോക്താവ് തെറ്റായ വിലാസമോ ചില ക്ഷുദ്രകരമായ ഡാറ്റയോ നൽകിയേക്കാം.

ഉപയോക്തൃ ഡാറ്റ മൂല്യനിർണ്ണയം നടത്തുമ്പോൾ, അത് ക്ലയൻ്റ് വശത്ത് (വെബ് ബ്രൗസറിൽ) അല്ലെങ്കിൽ സെർവർ വശത്ത് ചെയ്യാം.

മുമ്പ്, ജാവാസ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് മാത്രമേ ക്ലയൻ്റ്-സൈഡ് മൂല്യനിർണ്ണയം നടത്താൻ കഴിയൂ. എന്നാൽ എല്ലാം മാറിയിരിക്കുന്നു (അല്ലെങ്കിൽ ഏതാണ്ട് മാറിയിരിക്കുന്നു), കാരണം HTML5-ൻ്റെ സഹായത്തോടെ, ജാവാസ്ക്രിപ്റ്റിൽ സങ്കീർണ്ണമായ മൂല്യനിർണ്ണയ സ്ക്രിപ്റ്റുകൾ എഴുതേണ്ട ആവശ്യമില്ലാതെ, ബ്രൗസറിൽ മൂല്യനിർണ്ണയം നടത്താം.

HTML5 ഉപയോഗിച്ചുള്ള ഫോം മൂല്യനിർണ്ണയം

ഇനിപ്പറയുന്ന ടാഗ് ആട്രിബ്യൂട്ടുകളെ അടിസ്ഥാനമാക്കി HTML5 വളരെ ശക്തമായ ഒരു സംവിധാനം നൽകുന്നു : തരം, പാറ്റേൺ, ആവശ്യകത. ഈ പുതിയ ആട്രിബ്യൂട്ടുകൾ ഉപയോഗിച്ച്, നിങ്ങൾക്ക് ബ്രൗസറിലേക്ക് ഡാറ്റ മൂല്യനിർണ്ണയ പ്രവർത്തനങ്ങളിൽ ചിലത് ഓഫ്‌ലോഡ് ചെയ്യാൻ കഴിയും.

ഫോം മൂല്യനിർണ്ണയത്തിൽ അവ എങ്ങനെ സഹായിക്കുമെന്ന് മനസിലാക്കാൻ ഈ ആട്രിബ്യൂട്ടുകൾ നോക്കാം.

ടൈപ്പ് ആട്രിബ്യൂട്ട്

ഡാറ്റ പ്രോസസ്സിംഗിനായി ഏത് ഇൻപുട്ട് ഫീൽഡ് പ്രദർശിപ്പിക്കണമെന്ന് ഈ ആട്രിബ്യൂട്ട് പറയുന്നു, ഉദാഹരണത്തിന് പരിചിതമായ ഫീൽഡ് പോലെ

ചില ഇൻപുട്ട് ഫീൽഡുകൾ ഇതിനകം തന്നെ അധിക കോഡ് എഴുതേണ്ട ആവശ്യമില്ലാതെ സാധാരണ മൂല്യനിർണ്ണയ രീതികൾ നൽകുന്നു. ഉദാഹരണത്തിന്, നൽകിയ മൂല്യം സാധുവായ ഇമെയിൽ വിലാസത്തിൻ്റെ ടെംപ്ലേറ്റുമായി പൊരുത്തപ്പെടുന്നുണ്ടെന്ന് ഉറപ്പാക്കാൻ ഫീൽഡ് പരിശോധിക്കുന്നു. ഒരു ഫീൽഡിൽ തെറ്റായ പ്രതീകം നൽകിയിട്ടുണ്ടെങ്കിൽ, മൂല്യം ശരിയാക്കുന്നത് വരെ ഫോം സമർപ്പിക്കാൻ കഴിയില്ല.

ചുവടെയുള്ള ഡെമോയിലെ ഇമെയിൽ ഫീൽഡ് മൂല്യങ്ങൾ ഉപയോഗിച്ച് കളിക്കാൻ ശ്രമിക്കുക.

പോലുള്ള മറ്റ് സ്റ്റാൻഡേർഡ് ഫീൽഡ് തരങ്ങളും ഉണ്ട് , ഒപ്പം യഥാക്രമം നമ്പറുകൾ, URL-കൾ, ഫോൺ നമ്പറുകൾ എന്നിവ സാധൂകരിക്കുന്നതിന്.

ശ്രദ്ധിക്കുക: ഫോൺ നമ്പറുകളിലെ അക്കങ്ങളുടെ എണ്ണത്തിലെ വ്യത്യാസവും ഫോർമാറ്റുകളിലെ വ്യത്യാസവും കാരണം ഫോൺ നമ്പർ ഫോർമാറ്റുകൾ രാജ്യത്തിനനുസരിച്ച് വ്യത്യാസപ്പെടുന്നു. തൽഫലമായി, ഫോൺ നമ്പറുകൾ പരിശോധിക്കുന്നതിനുള്ള ഒരു അൽഗോരിതം സ്പെസിഫിക്കേഷൻ നിർവചിക്കുന്നില്ല, അതിനാൽ എഴുതുന്ന സമയത്ത് ഈ സവിശേഷത ബ്രൗസറുകൾ മോശമായി പിന്തുണയ്ക്കുന്നു.

ഞങ്ങളുടെ ഭാഗ്യവശാൽ, പാറ്റേൺ ആട്രിബ്യൂട്ട് ഉപയോഗിച്ച് ഫോൺ നമ്പർ മൂല്യനിർണ്ണയം നടത്താം, ഇത് ഒരു സാധാരണ പദപ്രയോഗത്തെ ഒരു ആർഗ്യുമെൻ്റായി എടുക്കുന്നു, അത് ഞങ്ങൾ അടുത്തതായി നോക്കും.

പാറ്റേൺ ആട്രിബ്യൂട്ട്

പാറ്റേൺ ആട്രിബ്യൂട്ട് പല ഫ്രണ്ട്-എൻഡ് ഡെവലപ്പർമാരെയും സന്തോഷത്തിൽ ചാടിക്കാൻ ഇടയാക്കും. ഈ ആട്രിബ്യൂട്ട് ഫീൽഡിൽ നൽകിയ ഡാറ്റയുടെ കൃത്യത പരിശോധിക്കാൻ ഉപയോഗിക്കുന്ന ഒരു റെഗുലർ എക്സ്പ്രഷൻ (JavaScript റെഗുലർ എക്സ്പ്രഷൻ ഫോർമാറ്റിന് സമാനമായത്) സ്വീകരിക്കുന്നു.

വാചകം പാഴ്‌സ് ചെയ്യാനും കൈകാര്യം ചെയ്യാനും ഉപയോഗിക്കുന്ന ഒരു ഭാഷയാണ് റെഗുലർ എക്സ്പ്രഷനുകൾ. സങ്കീർണ്ണമായ കണ്ടെത്തുന്നതിനും മാറ്റിസ്ഥാപിക്കുന്നതിനുമുള്ള പ്രവർത്തനങ്ങൾക്കും അതുപോലെ നൽകിയ ഡാറ്റയുടെ കൃത്യത പരിശോധിക്കുന്നതിനും അവ പലപ്പോഴും ഉപയോഗിക്കുന്നു.

ഇന്ന്, ഏറ്റവും ജനപ്രിയമായ പ്രോഗ്രാമിംഗ് ഭാഷകളിലും നിരവധി സ്ക്രിപ്റ്റിംഗ് ഭാഷകളിലും എഡിറ്റർമാർ, ആപ്ലിക്കേഷനുകൾ, ഡാറ്റാബേസുകൾ, കമാൻഡ് ലൈൻ യൂട്ടിലിറ്റികൾ എന്നിവയിലും റെഗുലർ എക്സ്പ്രഷനുകൾ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്.

വ്യക്തിഗത പ്രതീകങ്ങൾ, വാക്കുകൾ അല്ലെങ്കിൽ പ്രതീക പാറ്റേണുകൾ പോലെയുള്ള ടെക്‌സ്‌റ്റ് സ്‌ട്രിംഗുകൾ പൊരുത്തപ്പെടുത്തുന്നതിനുള്ള ശക്തവും സംക്ഷിപ്‌തവും വഴക്കമുള്ളതുമായ ഉപകരണമാണ് റെഗുലർ എക്‌സ്‌പ്രഷനുകൾ (RegEX).

പാറ്റേൺ ആട്രിബ്യൂട്ടിൻ്റെ മൂല്യമായി ഒരു സാധാരണ എക്‌സ്‌പ്രഷൻ നൽകുന്നതിലൂടെ, തന്നിരിക്കുന്ന ഇൻപുട്ട് ഫീൽഡിന് ഏതൊക്കെ മൂല്യങ്ങളാണ് സ്വീകാര്യമെന്ന് നിങ്ങൾക്ക് വ്യക്തമാക്കാനും പിശകുകളെക്കുറിച്ച് ഉപയോക്താവിനെ അറിയിക്കാനും കഴിയും.

ഇൻപുട്ട് ഫീൽഡുകളുടെ മൂല്യം സാധൂകരിക്കുന്നതിന് റെഗുലർ എക്സ്പ്രഷനുകൾ ഉപയോഗിക്കുന്നതിൻ്റെ രണ്ട് ഉദാഹരണങ്ങൾ നോക്കാം.

ഫോൺ നമ്പറുകൾ

നേരത്തെ സൂചിപ്പിച്ചതുപോലെ, വിവിധ രാജ്യങ്ങളിലെ ഫോൺ നമ്പർ ഫോർമാറ്റുകളിലെ പൊരുത്തക്കേടുകൾ കാരണം ടെൽ ഫീൽഡ് തരത്തെ ബ്രൗസറുകൾ പൂർണ്ണമായി പിന്തുണയ്ക്കുന്നില്ല.

ഉദാഹരണത്തിന്, ചില രാജ്യങ്ങളിൽ ടെലിഫോൺ നമ്പറുകളുടെ ഫോർമാറ്റ് xxxx-xxx-xxxx ആയി പ്രതിനിധീകരിക്കുന്നു, കൂടാതെ ടെലിഫോൺ നമ്പർ തന്നെ ഇതുപോലെയായിരിക്കും: 0803-555-8205 .

ഈ പാറ്റേൺ പൊരുത്തപ്പെടുന്ന പതിവ് പദപ്രയോഗം ഇതാണ്: ^\d(4)-\d(3)-\d(4)$ . കോഡിൽ ഇത് ഇതുപോലെ എഴുതാം:

ആൽഫാന്യൂമെറിക് മൂല്യങ്ങൾ

ആവശ്യമായ ആട്രിബ്യൂട്ട്

ഫോം സമർപ്പിക്കുന്നതിന് തന്നിരിക്കുന്ന ഫീൽഡിൻ്റെ മൂല്യം പൂരിപ്പിക്കേണ്ടതുണ്ടെന്ന് സൂചിപ്പിക്കാൻ ഉപയോഗിക്കുന്ന ഒരു ബൂളിയൻ ആട്രിബ്യൂട്ടാണിത്. നിങ്ങൾ ഈ ആട്രിബ്യൂട്ട് ഒരു ഫീൽഡിലേക്ക് ചേർക്കുമ്പോൾ, ഫോം സമർപ്പിക്കുന്നതിന് മുമ്പ് ഉപയോക്താവ് ഈ ഫീൽഡ് പൂരിപ്പിക്കാൻ ബ്രൗസർ ആവശ്യപ്പെടും.

ഇത് JavaScript ഉപയോഗിച്ച് ഫീൽഡ് മൂല്യനിർണ്ണയം നടപ്പിലാക്കുന്നതിൽ നിന്ന് ഞങ്ങളെ രക്ഷിക്കുന്നു, ഇത് ഡെവലപ്പർമാർക്ക് കുറച്ച് സമയം ലാഭിക്കാൻ കഴിയും.

ഉദാഹരണത്തിന്: അഥവാ (XHTML അനുയോജ്യതയ്ക്കായി)

നിങ്ങൾ മുകളിൽ കണ്ട എല്ലാ ഡെമോകളും ആവശ്യമായ ആട്രിബ്യൂട്ട് ഉപയോഗിക്കുന്നു, അതിനാൽ ഫീൽഡുകളൊന്നും പൂരിപ്പിക്കാതെ തന്നെ ഫോം സമർപ്പിക്കാൻ ശ്രമിച്ചുകൊണ്ട് നിങ്ങൾക്ക് ഇത് പ്രവർത്തനക്ഷമമായി പരീക്ഷിക്കാം.

ഉപസംഹാരം

ഫോം മൂല്യനിർണ്ണയത്തിനുള്ള ബ്രൗസർ പിന്തുണ വളരെ നല്ലതാണ്, പഴയ ബ്രൗസറുകൾക്ക് നിങ്ങൾക്ക് പോളിഫില്ലുകൾ ഉപയോഗിക്കാം.

ബ്രൗസർ സൈഡ് മൂല്യനിർണ്ണയത്തെ മാത്രം ആശ്രയിക്കുന്നത് അപകടകരമാണെന്നത് ശ്രദ്ധിക്കേണ്ടതാണ്, കാരണം ആക്രമണകാരികൾക്കോ ​​ബോട്ടുകൾക്കോ ​​ഈ പരിശോധനകൾ എളുപ്പത്തിൽ മറികടക്കാൻ കഴിയും.

എല്ലാ ബ്രൗസറുകളും HTML5-നെ പിന്തുണയ്ക്കുന്നില്ല, കൂടാതെ നിങ്ങളുടെ സ്ക്രിപ്റ്റിലേക്ക് അയച്ച എല്ലാ ഡാറ്റയും നിങ്ങളുടെ ഫോമിൽ നിന്ന് വരുന്നതല്ല. ഇതിനർത്ഥം, ഉപയോക്താവിൽ നിന്ന് ഡാറ്റ സ്വീകരിക്കുന്നതിന് മുമ്പ്, സെർവർ വശത്ത് അതിൻ്റെ കൃത്യത പരിശോധിക്കേണ്ടത് ആവശ്യമാണ്.

ഈ പോസ്റ്റിൽ, PHP-യിൽ ഫോൺ നമ്പർ എങ്ങനെ സാധൂകരിക്കാം എന്ന് നോക്കാൻ പോകുന്നു. പല സാഹചര്യങ്ങളിലും, വെബ് ഡെവലപ്പർമാർ ഒരു ഫോമിലൂടെ സമർപ്പിച്ച ഫോൺ നമ്പർ സാധൂകരിക്കേണ്ടതുണ്ട്.

അതിനാൽ ഈ സന്ദർഭങ്ങളിൽ, സമർപ്പിച്ച ഫോൺ നമ്പർ സാധുവായ ഘടനയിലോ പാറ്റേണിലോ ആണെന്ന് ഞങ്ങൾ സ്ഥിരീകരിക്കേണ്ടതുണ്ട്.

PHP-യിൽ ഫോൺ നമ്പർ മൂല്യനിർണ്ണയം ബുദ്ധിമുട്ടുള്ള കാര്യമല്ല. ഞങ്ങൾ ഇത് ലളിതവും എളുപ്പവുമായ രീതിയിൽ ചെയ്യാൻ പോകുന്നു.

ഒരു ഫോൺ നമ്പർ പൊതുവെ 10 അക്ക നമ്പർ ആണെന്ന് നമുക്കെല്ലാവർക്കും അറിയാം. എന്നാൽ അസാധാരണമായ പലതും സംഭവിക്കാം, ഇക്കാരണത്താൽ, സംഖ്യ 10 ൻ്റെ പൂർണ്ണസംഖ്യയാണോ എന്ന് പരിശോധിച്ചാൽ മാത്രം പോരാ.

ചിലപ്പോൾ ഒരു ഉപയോക്താവ് രാജ്യ കോഡിനൊപ്പമോ അല്ലെങ്കിൽ ചിലപ്പോൾ രാജ്യ കോഡിന് മുമ്പായി "+" ചിഹ്നമോ ഉപയോഗിച്ച് നമ്പർ സമർപ്പിച്ചേക്കാം. അതിനാൽ അത് സാധൂകരിക്കുന്നത് കൂടുതൽ സങ്കീർണ്ണമായ ടാസ്‌ക് പോലെ തോന്നാം.

പക്ഷേ, വിഷമിക്കേണ്ട. ഇവിടെ നിങ്ങൾക്ക് PHP ഫംഗ്‌ഷൻ ഉപയോഗിക്കാൻ തയ്യാറാകും, അതിൽ ഏതാനും വരികൾ മാത്രം കോഡ് അടങ്ങിയിരിക്കുന്നു.

ഈ പോസ്റ്റിൽ, ഞങ്ങളുടെ ചുമതല നിർവഹിക്കുന്ന ഉദാഹരണ കോഡ് ഞങ്ങൾ നിങ്ങൾക്ക് കാണിക്കാൻ പോകുന്നു.

ഒരു മൊബൈൽ നമ്പർ സാധൂകരിക്കാൻ ഉപയോഗിക്കാവുന്ന ഒരു ഫംഗ്ഷൻ ഞങ്ങൾ സൃഷ്ടിക്കാൻ പോകുന്നു. ഫംഗ്‌ഷൻ്റെ നൽകിയിരിക്കുന്ന കോഡ് ചുവടെയുണ്ട്:

ഫംഗ്‌ഷൻ Validate_phone_number($phone) ( // Allow +, - and . ഫോൺ നമ്പറിൽ $filtered_phone_number = filter_var($phone, FILTER_SANITIZE_NUMBER_INT); // നമ്പറിൽ നിന്ന് "-" നീക്കം ചെയ്യുക $phone_to_check = str_replace("-", "", $ filtered_phone_number);< 10 || strlen($phone_to_check) >14) (തെറ്റായി മടങ്ങുക; ) അല്ലെങ്കിൽ (ശരിയായി തിരികെ നൽകുക;) )

മുകളിൽ പറഞ്ഞ ഫംഗ്‌ഷൻ ഫോൺ നമ്പർ പരാമീറ്ററായി എടുക്കും. ഫംഗ്‌ഷനുള്ളിൽ, "+", "-", "" എന്നിവ മാത്രം സ്വീകരിക്കുന്ന തരത്തിൽ ഞങ്ങൾ നിയമവിരുദ്ധമായ എല്ലാ പ്രതീകങ്ങളും നമ്പറിൽ നിന്ന് നീക്കം ചെയ്‌തു. FILTER_SANITIZE_NUMBER_INT ഫിൽട്ടർ ഉപയോഗിക്കുന്നു. ശരി, നിങ്ങൾ ശ്രദ്ധിച്ചേക്കാം, ഫോൺ നമ്പർ ഈ ഫോർമാറ്റ് പോലെ എഴുതിയേക്കാം - പല കേസുകളിലും +91-523-452-5555. അതുകൊണ്ടാണ് ഞങ്ങൾ ഫോൺ നമ്പറിൽ "+", "-" എന്നിവ അനുവദിച്ചിരിക്കുന്നത്.

str_replace PHP ഫംഗ്‌ഷൻ ഉപയോഗിച്ച് ഞങ്ങൾ ഫോൺ നമ്പറിൽ നിന്ന് “-” നീക്കം ചെയ്‌തു.

അതിനുശേഷം, ഞങ്ങൾ ദൈർഘ്യം പരിശോധിച്ച് ദൈർഘ്യത്തെ ആശ്രയിച്ച് ശരിയോ തെറ്റോ നൽകുക. ദൈർഘ്യം 10-നും 14-നും ഇടയിലായിരിക്കണമെന്ന് നിങ്ങൾ ശ്രദ്ധിച്ചേക്കാം. കാരണം, പൊതുവേ, ഒരു സംഖ്യ 10 പ്രതീകങ്ങളാണ്, രാജ്യ കോഡിനൊപ്പം അത് 14 വരെയാകാം.

ഞങ്ങൾ ഇപ്പോൾ സൃഷ്ടിച്ച ഫംഗ്‌ഷൻ്റെ ഉപയോഗം ഇപ്പോൾ ചുവടെയുണ്ട്:

$ഫോൺ = "+91-444-444-5555"; എങ്കിൽ (validate_phone_number($phone) == true) (എക്കോ "ഫോൺ നമ്പർ സാധുവാണ്"; ) അല്ലെങ്കിൽ (എക്കോ "അസാധുവായ ഫോൺ നമ്പർ"; )

മുകളിലെ കോഡ് "ഫോൺ നമ്പർ സാധുതയുള്ളതാണ്" എന്നത് ശരിയാണെന്ന് നൽകുന്നതിനാൽ അത് നൽകും. അത് തെറ്റാണെങ്കിൽ അത് "അസാധുവായ ഫോൺ നമ്പർ" നൽകും.

അപ്പോൾ അതെങ്ങനെയായിരുന്നു? PHP-യിൽ മൊബൈൽ നമ്പറിൻ്റെ മൂല്യനിർണ്ണയം ഞങ്ങൾ ഇപ്പോൾ കണ്ടു.

നിങ്ങൾ ഈ പോസ്റ്റ് ആസ്വദിച്ചോ? PHP ഉപയോഗിച്ച് ഒരു ഫോൺ നമ്പർ സാധൂകരിക്കുന്നതിന് കോഡിൽ എന്തെങ്കിലും മെച്ചപ്പെടുത്തൽ വേണമെങ്കിൽ ദയവായി എന്നെ അറിയിക്കുക.


മുമ്പത്തെ ഒരു ലേഖനത്തിൽ, ലഭ്യമായ മറ്റ് പരിഹാരങ്ങളുമായി എൻ്റെ സ്വന്തം ലൈബ്രറിയെ താരതമ്യം ചെയ്യാമെന്ന് ഞാൻ വാഗ്ദാനം ചെയ്തു, അതിനാൽ ഇന്ന് ഞങ്ങൾ Aura.Filter, Respect Validation, Sirius Validation, Valitron എന്നിവ ഉപയോഗിച്ച് മൂല്യനിർണ്ണയം പരിശോധിക്കും.


എല്ലാ ഫംഗ്‌ഷനുകളിലേക്കും പൂർണ്ണ ആക്‌സസ്സിനായി ഉപയോക്താക്കൾ രജിസ്റ്റർ ചെയ്യേണ്ട ഒരു പ്രത്യേക പൊതു സേവനം ഞങ്ങൾക്ക് വികസനത്തിൽ ഉണ്ടെന്ന് സങ്കൽപ്പിക്കുക. അതിനാൽ, രജിസ്ട്രേഷൻ ഫോമിൽ ഇനിപ്പറയുന്ന ഫീൽഡുകൾ അടങ്ങിയിരിക്കും:

  1. പേര്.കൃത്യമായി രണ്ട് വാക്കുകൾ അടങ്ങിയിരിക്കണം, ആദ്യത്തേത് ഉപയോക്താവിൻ്റെ ആദ്യ നാമവും രണ്ടാമത്തേത് അവസാന നാമവുമാണ്.
  2. ലോഗിൻ.ഒരു മൂല്യം കടന്നുപോകുകയാണെങ്കിൽ, അതിൽ ലാറ്റിൻ അക്ഷരങ്ങളും ഹൈഫനുകളും അടിവരകളും മാത്രമേ അടങ്ങിയിരിക്കാവൂ.
  3. ഇമെയിൽ.സാധുവായ ഒരു ഇമെയിൽ വിലാസം ഉണ്ടായിരിക്കണം.
  4. password.സജ്ജീകരിച്ചിരിക്കണം കൂടാതെ 64 പ്രതീകങ്ങളിൽ കൂടരുത്.
  5. സമ്മതിച്ചു.സേവന നിബന്ധനകളുടെ സ്വീകാര്യത സ്ഥിരീകരിക്കുന്നതിന് ഒരു ഉപയോക്താവ് പരിശോധിക്കേണ്ട ഒരു സാധാരണ ചെക്ക്ബോക്സ്.

അതിനാൽ, ഞങ്ങളുടെ സാങ്കൽപ്പിക സേവനത്തിൽ രജിസ്റ്റർ ചെയ്യുന്നതിന് ഉപയോക്താവ് പൂരിപ്പിക്കേണ്ട അഞ്ച് ഫീൽഡുകൾ ഞങ്ങൾക്കുണ്ട്. ഇൻപുട്ടായി ഞങ്ങൾക്ക് പൂർണ്ണമായും അസാധുവായ ഡാറ്റ ലഭിച്ചുവെന്ന് സങ്കൽപ്പിക്കുക:


$data = [ "name" => "Albert", // "login" => "@lbert", // "Forbidden" പ്രതീകം @ "email" => "എന്തോ തെറ്റ്", // ഉണ്ടായിരിക്കണം. ഒരു ഇ-മെയിൽ "പാസ്‌വേഡ്" => ആകുക

ഓറ.ഫിൽറ്റർ

Aura.Filter ഉപയോഗിച്ച് മൂല്യനിർണ്ണയം ആരംഭിക്കുന്നത് ഒരു ഫിൽട്ടർ ഫാക്ടറിയിൽ നിന്നാണ്. "സബ്‌ജക്‌റ്റ് ഫിൽട്ടർ" എന്ന് വിളിക്കപ്പെടുന്ന ഒരു ഞങ്ങൾ സൃഷ്‌ടിക്കേണ്ടതുണ്ട്, കാരണം ഞങ്ങൾ ഒരു അറേയാണ് സാധൂകരിക്കുന്നത്, ഒരു വ്യക്തിഗത മൂല്യമല്ല.

നിയമങ്ങൾ നിർവചിക്കുന്നു

Aura\Filter\FilterFactory ഉപയോഗിക്കുക; $ഫിൽറ്റർ = (പുതിയ ഫിൽട്ടർ ഫാക്ടറി)->newSubjectFilter(); $filter->validate("name") ->isNotBlank() ->is("two_words") ->setMessage("പേര് രണ്ട് വാക്കുകളായിരിക്കണം."); $filter->validate("login") ->isBlankOr("alnum") ->setMessage("നിങ്ങൾ ഒരു ലോഗിൻ വ്യക്തമാക്കുകയാണെങ്കിൽ, അതിൽ ലാറ്റിൻ അക്ഷരങ്ങൾ മാത്രം അടങ്ങിയിരിക്കണം."); $filter->validate("email") ->isNotBlank() ->is("email") ->setMessage("ദയവായി ഒരു സാധുവായ ഇമെയിൽ വിലാസം നൽകുക."); $filter->validate("password") ->isNotBlank() ->is("strlenMax", 64) ->setMessage("ദയവായി നിങ്ങളുടെ പാസ്‌വേഡ് എഴുതുക."); $filter->validate("Agreed") ->is("കോൾബാക്ക്", ഫംഗ്‌ഷൻ($subject, $field) ( തിരികെ $subject->($field) === true; ))->setMessage("നിങ്ങൾക്ക് ആവശ്യമാണ് സേവന നിബന്ധനകൾ അംഗീകരിക്കുന്നു.");

നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, നിയമങ്ങളുടെ വിവരണം വളരെ ലളിതമാണ്. Aura.Filter ബോക്‌സിന് പുറത്ത് ഉപയോഗപ്രദമായ നിയമങ്ങളുടെ ഒരു കൂട്ടം നൽകുന്നു, അവയിൽ ചിലത് മുകളിലുള്ള ഉദാഹരണത്തിൽ ഉപയോഗിച്ചു:

  1. ബ്ലാങ്ക് രീതിയല്ല.ഫീൽഡിന് കഴിയില്ലെന്ന് സൂചിപ്പിക്കുന്നു ശൂന്യമായ മൂല്യം.
  2. അൽനം.ഈ നിയമം ലാറ്റിൻ അക്ഷരങ്ങൾ മാത്രമേ അനുവദിക്കൂ.
  3. ഇമെയിൽ.അത് വളരെ വ്യക്തമാണ് :)
  4. strlenMax.ഈസ് മെത്തേഡിൻ്റെ രണ്ടാമത്തെ ആർഗ്യുമെൻ്റ് വ്യക്തമാക്കിയ ദൈർഘ്യം കവിയാൻ പാടില്ലെന്ന് വ്യക്തമാക്കുന്നു.
  5. തിരിച്ചുവിളിക്കുക.കൺട്രോളിയോയിൽ നിന്നുള്ള ക്ലോഷറുകൾക്ക് സമാനമാണ് ഇത്തരത്തിലുള്ള നിയമം. ഒരു അടച്ചുപൂട്ടലിൻ്റെ രൂപത്തിൽ ഒരു നിയമം നിർവ്വചിക്കാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു. ഈ അടച്ചുപൂട്ടലിലേക്ക്, Aura.Filter "വിഷയം", ഫോമിൽ നിന്നുള്ള ഞങ്ങളുടെ ഡാറ്റാ ശ്രേണി, ഈ സാഹചര്യത്തിൽ സമ്മതിച്ച ഒരു ഫീൽഡ് എന്നിവ കൈമാറുന്നു .

രണ്ട്_പദങ്ങളുടെ നിയമം ഞാൻ വ്യക്തമാക്കിയിട്ടില്ലെന്ന് നിങ്ങൾ ശ്രദ്ധിച്ചിരിക്കാം. സ്വാഭാവികമായും, Aura.Filter-ൽ അത്തരമൊരു നിയമം ഇല്ല, അതിനാൽ നമ്മൾ ഒരെണ്ണം സൃഷ്ടിക്കേണ്ടതുണ്ട്. ഡോക്യുമെൻ്റേഷൻ പറയുന്നതുപോലെ, റൂളിനായി ഒരു പ്രത്യേക ക്ലാസ് ഉപയോഗിച്ചാണ് ഇത് ചെയ്യുന്നത്:


/** * ഉപയോക്തൃനാമം സാധൂകരിക്കുന്ന നിയമം. * ഉപയോക്തൃനാമത്തിൽ രണ്ട് വാക്കുകൾ അടങ്ങിയിരിക്കുന്നു: പേരിൻ്റെ ആദ്യഭാഗവും അവസാന നാമവും, ഒരു ഇടം കൊണ്ട് വേർതിരിച്ചിരിക്കുന്നു. */ class UserNameRule ( /** * ഉപയോക്തൃനാമം സാധൂകരിക്കുന്നു. * * @param object|array $subject * @param string $field * @param int $max * * @return bool */ public function __invoke($subject, $field , $max = null) ($value = $subject->($ഫീൽഡ്); എങ്കിൽ (! is_scalar($value)) (false; ) മടങ്ങുക (bool) preg_match("/^+\s+$/u", $ മൂല്യം);

ഞങ്ങളുടെ പുതിയ നിയമത്തെക്കുറിച്ച് ഫിൽട്ടർ ഫാക്ടറിയെ അറിയിക്കുക എന്നതാണ് രണ്ടാമത്തെ ഘട്ടം. ഫിൽട്ടർ ഫാക്ടറിയിലേക്ക് നിയമങ്ങളുടെ ഒരു നിരയായി ആദ്യ ആർഗ്യുമെൻ്റ് കൈമാറിയാണ് ഇത് ചെയ്യുന്നത്:


ഞങ്ങൾ ഒരു പുതിയ റൂൾ സൃഷ്‌ടിച്ചിട്ടുണ്ടെന്നും അത് ഉപയോഗിക്കാൻ ആഗ്രഹിക്കുന്നുവെന്നും Aura.Filter-നെ അറിയിക്കുക എന്നതാണ് അടുത്ത ഘട്ടം. ഫാക്ടറിയുടെ ആദ്യ ആർഗ്യുമെൻ്റിലേക്ക് നിയമങ്ങളുടെ ഒരു നിര പാസാക്കുന്നതിലൂടെയാണ് ഇത് ചെയ്യുന്നത്:


Aura\Filter\FilterFactory ഉപയോഗിക്കുക; $rules = [ "two_words" => function() (പുതിയ UserNameRule തിരികെ നൽകുക; ) ]; $ഫിൽറ്റർ = (പുതിയ ഫിൽട്ടർഫാക്ടറി($റൂൾസ്))->newSubjectFilter();

ഇപ്പോൾ ഞങ്ങളുടെ two_words റൂൾ മറ്റേതൊരു സ്റ്റാൻഡേർഡ് റൂൾ പോലെ തന്നെ ഉപയോഗിക്കാം.

പ്രതികരണം

നിങ്ങൾ ഓർക്കുന്നതുപോലെ, ഞങ്ങൾ മൂല്യനിർണ്ണയം ചെയ്യുന്ന ഇൻകമിംഗ് ഡാറ്റ പൂർണ്ണമായും അസാധുവാണ്, കാരണം ഓരോ ഫീൽഡിലും തെറ്റായ മൂല്യം അടങ്ങിയിരിക്കുന്നു അല്ലെങ്കിൽ അത് ഉൾക്കൊള്ളുന്നില്ല. അതിനാൽ, മൂല്യനിർണ്ണയത്തിൻ്റെ ഫലമായി ഞങ്ങൾക്ക് അവയെക്കുറിച്ച് പിശകുകളും അനുബന്ധ സന്ദേശങ്ങളും ലഭിക്കുമെന്ന് അനുമാനിക്കപ്പെടുന്നു.


Aura.Filter ഉപയോഗിച്ച് ഞങ്ങൾ ഇനിപ്പറയുന്ന രീതിയിൽ സാധൂകരിക്കുന്നു:


$ സാധുത = $ ഫിൽറ്റർ-> പ്രയോഗിക്കുക ($ ഡാറ്റ); എങ്കിൽ (! $valid) ($പരാജയങ്ങൾ = $filter->getFailures(); $messages = $failures->getMessages(); )

IN $സന്ദേശങ്ങൾഒരു അറേ എഴുതുന്നു, അതിനാൽ സന്ദേശങ്ങൾ പ്രദർശിപ്പിക്കുന്നതിന് നമുക്ക് രണ്ട് നെസ്റ്റഡ് ഫോർച്ച് ആവശ്യമാണ്:


    $പിശകുകൾ) ( foreach ($പിശകുകൾ $error ആയി) ( printf("", $error); ) ?>

മൂല്യനിർണ്ണയത്തെ ബഹുമാനിക്കുക

താരതമ്യത്തിൽ ഞാൻ ഉപയോഗിച്ച രണ്ടാമത്തെ ലൈബ്രറി റെസ്പെക്റ്റ് വാലിഡേഷൻ എന്ന താരതമ്യേന ജനപ്രിയമായ ഒരു പരിഹാരമാണ്. ആളുകൾ അവളെ വിശ്വസിക്കുന്നതിനാൽ, അവിടെ കാണാൻ എന്തെങ്കിലും ഉണ്ടെന്ന് ഞാൻ കരുതുന്നു.


പരീക്ഷണത്തിൻ്റെ പരിശുദ്ധിക്കായി, ലൈബ്രറികൾ താരതമ്യം ചെയ്യുമ്പോൾ, ഞങ്ങൾ തുടക്കത്തിൽ നിർവചിച്ച അതേ ഡാറ്റ സെറ്റ് ഉപയോഗിക്കും:


Respect\Validation\Validator v ആയി ഉപയോഗിക്കുക; $data = [ "name" => "Albert", // "login" => "@lbert", // "Forbidden" പ്രതീകം @ "email" => "എന്തോ തെറ്റ്", // ഉണ്ടായിരിക്കണം. ഇവിടെ ഒരു ഇ-മെയിൽ ആകുക "പാസ്‌വേഡ്" => "" // പാസ്‌വേഡ് പൂർണ്ണമായും വ്യക്തമാക്കിയിട്ടില്ല // "സമ്മതിച്ചു" എന്നത് അറേയിൽ ഇല്ല കാരണം ഉപയോക്താവ് ബോക്സ് ചെക്ക് ചെയ്യാത്തതിനാൽ ];

നിയമങ്ങൾ നിർവചിക്കുന്നു

Aura.Filter പോലെ, ഉപയോക്തൃനാമത്തിനായി ഞങ്ങൾക്ക് ഞങ്ങളുടെ സ്വന്തം മൂല്യനിർണ്ണയ നിയമം ആവശ്യമാണ്, അതിനാൽ നമുക്ക് അവിടെ നിന്ന് ആരംഭിക്കാം:


നെയിംസ്പേസ് MyNamspace; ബഹുമാനം \ മൂല്യനിർണ്ണയം \ നിയമങ്ങൾ \ അമൂർത്ത നിയമം ഉപയോഗിക്കുക; ക്ലാസ് UserNameRule അബ്‌സ്‌ട്രാക്റ്റ് റൂൾ വിപുലീകരിക്കുന്നു (പബ്ലിക് ഫംഗ്‌ഷൻ മൂല്യനിർണ്ണയം($ഇൻപുട്ട്) (റിട്ടേൺ (ബൂൾ) preg_match("/^+\s+$/u", $input); ) )

ബാഹ്യ നിയമങ്ങൾ API ഏതാണ്ട് Aura.Filter-ന് സമാനമാണ്, രീതി മാത്രമേ ഉപയോഗിക്കുന്നുള്ളൂ സാധൂകരിക്കുക()മാജിക്കിന് പകരം __invoke().ഈ എപിഐ ലളിതവും കൂടുതൽ മനസ്സിലാക്കാവുന്നതുമാണെന്ന് എനിക്ക് തോന്നി. ശരി, ഇത് കൺട്രോളിയോയ്ക്ക് അടുത്താണ് :)


ഡോക്യുമെൻ്റേഷനിൽ ഇതിനെക്കുറിച്ച് ഒരു പരാമർശവും ഞാൻ കണ്ടെത്തിയില്ല, എന്നിരുന്നാലും, നിയമത്തിന് പുറമേ, അതിനായി നിങ്ങളുടേതായ ഒഴിവാക്കൽ തരം നിങ്ങൾ സൃഷ്ടിക്കേണ്ടതുണ്ട്. ഒഴിവാക്കൽ ക്ലാസിൻ്റെ പേരിൽ റൂൾ ക്ലാസിൻ്റെ പേരും ഒരു പോസ്റ്റ്ഫിക്സും ഉണ്ടായിരിക്കണം ഒഴിവാക്കൽ.


Respect\Validation\Exceptions\NestedValidationException ഉപയോഗിക്കുക; ക്ലാസ് UserNameRuleException NestedValidationException (//) വിപുലീകരിക്കുന്നു

ശരി, ഒടുവിൽ നമുക്ക് ഞങ്ങളുടെ ഡാറ്റ സാധൂകരിക്കാനാകും. ആദ്യം, ഞങ്ങളുടെ പുതിയ നിയമം വാലിഡേറ്ററിന് കൈമാറുക, അതുവഴി അയാൾക്ക് അതിനെക്കുറിച്ച് അറിയാനും ഭാവിയിൽ അത് ഉപയോഗിക്കാനും കഴിയും. ബഹുമാനാർത്ഥം മൂല്യനിർണ്ണയത്തിൽ ഇത് രീതിയെ വിളിച്ചാണ് ചെയ്യുന്നത് കൂടെ()നിലവാരമില്ലാത്ത നിയമങ്ങൾ സ്ഥിതി ചെയ്യുന്ന നെയിംസ്പേസിൻ്റെ കൈമാറ്റത്തോടെ.


v::with("MyNamespace\\");

ഇപ്പോൾ എല്ലാ നിലവാരമില്ലാത്ത നിയമങ്ങളും നെയിംസ്പേസിൽ സ്ഥിതി ചെയ്യുന്നു MyNamspace, വാലിഡേറ്റർ "അംഗീകരിക്കും". ആവശ്യമായ നിയമങ്ങൾ വിവരിക്കുകയും മൂല്യനിർണ്ണയം നടത്തുകയും ചെയ്യുക എന്നതാണ് അടുത്ത ഘട്ടം.


v::attribute("name", v::userNameRule()) ->attribute("login", v::alnum("-_")) ->attribute("email", v::email()) ->ആട്രിബ്യൂട്ട്("പാസ്‌വേഡ്", v::notEmpty()->stringType()->length(null, 64)) ->ആട്രിബ്യൂട്ട്("അംഗീകരിച്ചു", v::trueVal()) ->അസെർട്ട്((വസ്തു) $ ഡാറ്റ);

ആട്രിബ്യൂട്ടിൽ ഞങ്ങൾ എങ്ങനെയാണ് നമ്മുടെ നിയമം പ്രയോഗിക്കുന്നത് എന്ന് ശ്രദ്ധിക്കുക പേര്. ഇവിടെ റൂൾ ക്ലാസിൻ്റെ പേര് വാലിഡേറ്റർ രീതിയുടെ പേരായി രൂപാന്തരപ്പെട്ടു. ശേഷിക്കുന്ന നിയമങ്ങൾ പൊതുവേ, അവബോധജന്യമാണ്.


എന്തുകൊണ്ടാണ് ഞങ്ങൾ അറേ നൽകുന്നത് എന്നത് പ്രത്യേകം പരാമർശിക്കേണ്ടതാണ് $ഡാറ്റവസ്തുവിലേക്ക്. റെസ്പെക്റ്റ് വാലിഡേഷൻ ഇൻപുട്ടായി അറേകളല്ല, ഒബ്ജക്റ്റുകളെയാണ് സ്വീകരിക്കുന്നത് എന്നതാണ് വസ്തുത. ഈ ലൈബ്രറി ഉപയോഗിച്ച് വികസിപ്പിക്കുമ്പോൾ ഇത് കണക്കിലെടുക്കണം.

പ്രതികരണം

Aura.Filter-ൽ നിന്ന് വ്യത്യസ്തമായി, മൂല്യനിർണ്ണയം പരാജയപ്പെടുമ്പോൾ Respect Validator ഒരു ഒഴിവാക്കൽ നൽകുന്നു. ഈ ഒഴിവാക്കലിൽ മൂല്യനിർണ്ണയ പിശക് സന്ദേശങ്ങൾ അടങ്ങിയിരിക്കുന്നു. അതിനാൽ, ഇപ്പോൾ കാണിച്ച ഉദാഹരണം ഇനിപ്പറയുന്ന രീതിയിൽ എഴുതണം:


ശ്രമിക്കുക ( v::with("RespectValidationExample\\"); v::attribute("name", v::userNameRule()) ->ആട്രിബ്യൂട്ട്("ലോഗിൻ", v::alnum("-_")) - >ആട്രിബ്യൂട്ട്("ഇമെയിൽ", v::email()) ->ആട്രിബ്യൂട്ട്("പാസ്‌വേഡ്", വി::notEmpty()->stringType()->length(null, 64)) ->ആട്രിബ്യൂട്ട്("സമ്മതിച്ചു", v::trueVal()) ->അസെറ്റ് ((വസ്തു) $data ) പിടിക്കുക (NestedValidationException $ex) ( $messages = $ex->getMessages(); )

ഉപയോഗിക്കുന്നത് getMessages(), മൂല്യനിർണ്ണയ പ്രക്രിയയിൽ വാലിഡേറ്റർ ശേഖരിച്ച എല്ലാ സന്ദേശങ്ങളുടെയും ഒരു ഫ്ലാറ്റ് അറേ ഞങ്ങൾക്ക് ലഭിക്കും. അറേ ഡംപ് ചെയ്യുന്നതിലൂടെ, ഞങ്ങൾക്ക് ഇതുപോലുള്ള ഒന്ന് ലഭിക്കും:


array(5) ( => string(29) “%s നായുള്ള ഡാറ്റ മൂല്യനിർണ്ണയം പരാജയപ്പെട്ടു” => string(60) “login-ൽ അക്ഷരങ്ങൾ (a-z), അക്കങ്ങൾ (0–9), “-_”” => സ്ട്രിംഗ് എന്നിവ മാത്രമേ അടങ്ങിയിരിക്കാവൂ (25) “ഇമെയിൽ സാധുവായ ഇമെയിൽ ആയിരിക്കണം” => സ്ട്രിംഗ് (26) “പാസ്‌വേഡ് ശൂന്യമായിരിക്കരുത്” => സ്ട്രിംഗ് (32) “സമ്മതിച്ച ആട്രിബ്യൂട്ട് ഉണ്ടായിരിക്കണം” )

നിങ്ങൾക്ക് സന്ദേശങ്ങൾ നിങ്ങളുടേതായി മാറ്റാം. ഒരുപക്ഷേ ഞാൻ ഈ ലൈബ്രറിയെ എങ്ങനെയെങ്കിലും തെറ്റിദ്ധരിച്ചിരിക്കാം, പക്ഷേ ഈ പ്രക്രിയ എനിക്ക് അത്ര വ്യക്തമായതായി തോന്നിയില്ല: നിങ്ങൾ രീതി ഉപയോഗിക്കേണ്ടതുണ്ട് FindMessages()കൈകാര്യം ചെയ്‌ത ഒഴിവാക്കലിൽ, നിങ്ങൾ സന്ദേശങ്ങൾ നിർവചിക്കുന്നത് ആട്രിബ്യൂട്ടുകൾക്കല്ല, നിയമങ്ങൾക്കാണ്.


$ex->findMessages([ "userNameRule" => "ഉപയോക്തൃനാമത്തിൽ രണ്ട് വാക്കുകൾ അടങ്ങിയിരിക്കണം.", "alnum" => "നിങ്ങളുടെ ലോഗിൻ ഞങ്ങൾക്ക് ഇഷ്ടമല്ല.", "ഇമെയിൽ" => "നിങ്ങൾ വ്യക്തമല്ല ഞങ്ങൾക്ക് നിങ്ങളുടെ ഇ-മെയിൽ തരാൻ ആഗ്രഹിക്കുന്നു.", "notEmpty" => "ശരി, നിങ്ങളുടെ പാസ്‌വേഡ് എവിടെ?", "സമ്മതം" => "നിങ്ങൾ വിയോജിക്കുന്നത് ഖേദകരമാണ്." ]);

എന്താണ് കുഴപ്പമെന്ന് എനിക്കറിയില്ല, പക്ഷേ എനിക്ക് ഇപ്പോഴും മനസ്സിലാകാത്ത രണ്ട് കാര്യങ്ങളുണ്ട്. മുകളിലുള്ള രീതിയിൽ നിയമങ്ങൾ നിർവചിക്കുന്നതിലൂടെ നമുക്ക് ലഭിക്കുന്നത് ഇതാണ്:


array(5) ( => string(40) “ഉപയോക്തൃനാമം രണ്ട് വാക്കുകൾ ആയിരിക്കണം.” => string(31) “ഞങ്ങൾക്ക് നിങ്ങളുടെ ലോഗിൻ ഇഷ്ടമല്ല.” => string(25) “ഇമെയിൽ സാധുവായ ഇമെയിൽ ആയിരിക്കണം” = > സ്ട്രിംഗ്(5) "ശരി, നിങ്ങളുടെ പാസ്‌വേഡ് എവിടെ?" => സ്ട്രിംഗ് (9) "നിങ്ങൾ സമ്മതിക്കാത്തത് ഖേദകരമാണ്."

നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, ഇമെയിൽ ഫീൽഡിനുള്ള സന്ദേശം പ്രയോഗിച്ചില്ല, സ്റ്റാൻഡേർഡ് ഒന്ന് തുടർന്നു. എന്നാൽ സൂചിക 4 ലെ സന്ദേശം വിപരീതമാണ്! ഞാൻ നിയമത്തിൻ്റെ പേരല്ല, ഫീൽഡിൻ്റെ പേരാണ് ഉപയോഗിച്ചത് എന്ന വസ്തുത ഉണ്ടായിരുന്നിട്ടും ഇത്. ഞാൻ റൂൾ നാമം (trueVal) ഉപയോഗിച്ചിരുന്നെങ്കിൽ, എൻ്റെ സന്ദേശം എവിടെയെങ്കിലും നഷ്ടപ്പെടുമായിരുന്നു. ഈ ലൈബ്രറിയുടെ പരിചയസമ്പന്നരായ ഉപയോക്താക്കളുടെ അഭിപ്രായങ്ങൾ വളരെ സ്വാഗതം ചെയ്യുന്നു.

സിറിയസ് മൂല്യനിർണ്ണയം

ശരി, നമുക്ക് അടുത്ത ലൈബ്രറിയിലേക്ക് പോകാം, സമാന ജോലികൾ അത് എങ്ങനെ കൈകാര്യം ചെയ്യുന്നുവെന്ന് നോക്കാം.

നിയമങ്ങൾ നിർവചിക്കുന്നു

ഒരിക്കൽ കൂടി നമുക്ക് ഉപയോക്തൃനാമത്തിനായി ഒരു നിയമം നിർവചിക്കേണ്ടതുണ്ട്. ഞങ്ങൾ ഇത് ഇതുപോലെ എഴുതാം:


class UserNameRule അബ്‌സ്‌ട്രാക്റ്റ് റൂൾ വിപുലീകരിക്കുന്നു ( // പിശക് സന്ദേശങ്ങൾ const MESSAGE = "ഉപയോക്തൃനാമം രണ്ട് വാക്കുകളായിരിക്കണം."; const LABELED_MESSAGE = "(ലേബൽ) രണ്ട് വാക്കുകളായിരിക്കണം."; പൊതു പ്രവർത്തനം മൂല്യനിർണ്ണയം ($value, $valueIdentifier = null ) ( മടങ്ങുക (bool) preg_match("/^+\s+$/u", $value);

ഇതിനകം ചർച്ച ചെയ്ത ലൈബ്രറികളുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ സമീപനങ്ങളിലെ വ്യത്യാസം ദയവായി ശ്രദ്ധിക്കുക. പ്രോപ്പർട്ടികൾ, രീതികൾ അല്ലെങ്കിൽ റൂൾ ആർഗ്യുമെൻ്റുകൾ എന്നിവ ഉപയോഗിക്കുന്നതിന് പകരം സ്ഥിരാങ്കങ്ങളിൽ രണ്ട് തരത്തിലുള്ള സന്ദേശങ്ങൾ ഞങ്ങൾ നിർവ്വചിക്കുന്നു.


ഇനി മൂല്യനിർണ്ണയ ലോജിക് വിവരിക്കാം:


$ വാലിഡേറ്റർ = പുതിയ വാലിഡേറ്റർ; $validator ->add("name", "required | MyApp\Validation\Rule\UserNameRule") ->add("login", "required | alphanumhyphen", null, "Login-ൽ ലാറ്റിൻ അക്ഷരങ്ങളും ഡാഷുകളും അണ്ടർസ്കോറുകളും മാത്രമേ അടങ്ങിയിരിക്കാവൂ. ") ->ചേർക്കുക("ഇമെയിൽ", "ആവശ്യമാണ് | ഇമെയിൽ", null, "ദയവായി ഒരു ശരിയായ ഇമെയിൽ നൽകുക.") ->ചേർക്കുക("പാസ്‌വേഡ്", "ആവശ്യമാണ് | പരമാവധി നീളം(64)", അസാധുവാണ്, "നിങ്ങളുടെ പാസ്‌വേഡ്, സർ.") ->ചേർക്കുക("അംഗീകരിക്കുക", "ആവശ്യമുണ്ട് | തുല്യം(ശരി)", അസാധുവാണ്, "എന്തുകൊണ്ട് നിങ്ങൾ സമ്മതിച്ചില്ല?");

നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, നിയമങ്ങളുടെ ഗണം വളരെ ലളിതവും വായിക്കാവുന്നതുമാണ്. വിവരണത്തിനായി, തിരശ്ചീന ബാറുകളാൽ വേർതിരിച്ച പേരുകൾ ഞങ്ങൾ ഉപയോഗിക്കുന്നു. ഈ സമീപനം Laravel, Kontrolio എന്നിവയിൽ ഉപയോഗിച്ചതിന് സമാനമാണ്.


നാലാമത്തെ രീതി വാദം ചേർക്കുക()മൂല്യനിർണ്ണയം പരാജയപ്പെട്ടാൽ സിറിയസ് ഉപയോഗിക്കുന്ന മൂല്യനിർണ്ണയ പിശക് സന്ദേശം വിവരിക്കുന്നു. എന്തുകൊണ്ടാണ് ഞങ്ങൾ ഞങ്ങളുടെ പുതിയ നിയമത്തിന് ഒരു സന്ദേശം ചേർക്കാത്തത്? UserNameRule?


$validator->ചേർക്കുക("പേര്", "ആവശ്യമാണ് | MyApp\Validation\Rule\UserNameRule")

ക്ലാസിലെ സ്ഥിരാങ്കങ്ങളിൽ സന്ദേശങ്ങൾ ഇതിനകം വിവരിച്ചിരിക്കുന്നതിനാലാണിത്:


class UserNameRule വിപുലീകരിക്കുന്നു അബ്സ്ട്രാക്റ്റ് റൂൾ ( // പിശക് സന്ദേശങ്ങൾ MESSAGE = "ഉപയോക്തൃനാമം രണ്ട് വാക്കുകളായിരിക്കണം."; ...

വാലിഡേറ്ററിൻ്റെ തന്നെ addMessage() രീതി ഉപയോഗിക്കുന്നതാണ് മറ്റൊരു ഓപ്ഷൻ:


$validator->addMessage("ഇമെയിൽ", "ദയവായി ഒരു സാധുവായ ഇ-മെയിൽ നൽകുക.");

ഇഷ്‌ടാനുസൃത നിയമങ്ങൾ അവരുടെ ക്ലാസിൻ്റെ പൂർണ്ണമായ പേര് കൊണ്ടാണ് തിരിച്ചറിയുന്നത്, അതേസമയം Kontrolio-യിൽ നിങ്ങൾക്ക് ഒരു അപരനാമം/അപരനാമം വ്യക്തമാക്കാൻ കഴിയും.

പ്രതികരണം

മൂല്യനിർണ്ണയം നടത്താൻ, ഞങ്ങൾ വാലിഡേറ്റർ രീതി എന്ന് വിളിക്കുന്നു സാധൂകരിക്കുക(), അതിലേക്ക് ഡാറ്റ കൈമാറുന്നു:


$data = [ "name" => "Albert", // "login" => "@lbert", // "Forbidden" പ്രതീകം @ "email" => "എന്തോ തെറ്റ്", // ഉണ്ടായിരിക്കണം. ഇവിടെ ഒരു ഇ-മെയിൽ ആകുക "പാസ്‌വേഡ്" => "" // പാസ്‌വേഡ് പൂർണ്ണമായും വ്യക്തമാക്കിയിട്ടില്ല // "സമ്മതിച്ചു" എന്നത് അറേയിൽ ഇല്ല കാരണം ഉപയോക്താവ് ബോക്സ് ചെക്ക് ചെയ്യാത്തതിനാൽ ]; $validator->സാധൂകരിക്കുക($data);

ബഹുമാനത്തിൽ നിന്ന് വ്യത്യസ്തമായി, സിറിയസ് ഒരു അപവാദം എറിയില്ല, പക്ഷേ മടങ്ങിവരും തെറ്റായ. മൂല്യനിർണ്ണയ പിശക് സന്ദേശങ്ങൾ വാലിഡേറ്റർ രീതിയിലൂടെ സ്വീകരിക്കാവുന്നതാണ് getMessages(). ആട്രിബ്യൂട്ടുകൾ പ്രകാരം ഗ്രൂപ്പുചെയ്‌ത പിശകുകൾ ഇത് നൽകുന്നു, അതിനാൽ പിശകുകളിലൂടെ കടന്നുപോകാൻ ഞങ്ങൾക്ക് രണ്ട് ഫോർച്ച് ലൂപ്പുകൾ ആവശ്യമാണ്:


foreach ($validator->getMessages() $attribute => $messages) ( foreach ($message as $message) (echo $message->getTemplate() . "\n"; ) )

ഇവിടെ $message ഒരു ക്ലാസ് ഒബ്ജക്റ്റാണ് സിറിയസ്\ മൂല്യനിർണ്ണയം \ പിശക് സന്ദേശം, ഒരു രീതി ഉണ്ട് getTemplate(), ഞങ്ങൾക്ക് ആവശ്യമുള്ള സന്ദേശം തിരികെ നൽകുന്നു.

വാലിട്രോൺ

നിയമങ്ങൾ നിർവചിക്കുന്നു

ആദ്യ വ്യത്യാസം: ഒരു പുതിയ നിയമം ചേർക്കുന്നതിന്, നിങ്ങൾ ഒരു പ്രത്യേക ക്ലാസ് സൃഷ്ടിക്കേണ്ടതില്ല. ഒരു ബൂളിയൻ ഫലം നൽകുന്ന ഒരു ക്ലോഷർ നിങ്ങൾക്ക് ഉപയോഗിക്കാം.


വാലിട്രോണിൽ ഇഷ്‌ടാനുസൃത നിയമങ്ങൾ ചേർക്കുന്നതിന് ഒരു സ്റ്റാറ്റിക് രീതിയുണ്ട് addRule(), ഇതിൽ ആദ്യത്തെ രണ്ട് ആർഗ്യുമെൻ്റുകൾ ആവശ്യമാണ്, മൂന്നാമത്തേത് ഓപ്ഷണൽ ആണ്. എനിക്ക് ഈ രീതി ഇഷ്ടപ്പെട്ടു, കാരണം ഇവിടെ റൂൾ ഐഡൻ്റിഫയർ, ലോജിക്, പിശക് സന്ദേശം എന്നിവ ഒരിടത്ത് സൂചിപ്പിച്ചിരിക്കുന്നു.


Valitron\Validator ഉപയോഗിക്കുക; വാലിഡേറ്റർ::addRule("രണ്ട്_പദങ്ങൾ", ഫംഗ്‌ഷൻ($ഫീൽഡ്, $മൂല്യം) (റിട്ടേൺ (ബൂൾ) preg_match("/^+\s+$/u", $value); ), "ഉപയോക്തൃനാമത്തിൽ കൃത്യമായി അടങ്ങിയിരിക്കണം രണ്ട് വാക്കുകൾ ");

രണ്ടാമത്തെ വ്യത്യാസം ആട്രിബ്യൂട്ടുകളിൽ നിയമങ്ങൾ എങ്ങനെ പ്രയോഗിക്കുന്നു എന്നതാണ്. മുമ്പത്തെ എല്ലാ സന്ദർഭങ്ങളിലും, ഒരു ആട്രിബ്യൂട്ട് ഒരു പ്രാഥമിക കാര്യമാണെന്ന് ഞങ്ങൾ കണ്ടു.


വാലിട്രോൺ മറ്റൊരു വഴി സ്വീകരിച്ച് മൂല്യനിർണ്ണയ നിയമങ്ങൾ ആദ്യം വെച്ചു. നിയമങ്ങൾ വിവരിക്കുന്നതിലൂടെ, നിങ്ങൾ ഈ നിയമങ്ങൾക്ക് ആട്രിബ്യൂട്ടുകൾ പ്രയോഗിക്കുന്നതായി തോന്നുന്നു, തിരിച്ചും അല്ല.


$ വാലിഡേറ്റർ = പുതിയ വാലിഡേറ്റർ ($ ഡാറ്റ); $validator ->റൂൾ("രണ്ട്_പദങ്ങൾ", "പേര്")->ലേബൽ("") ->റൂൾ("ആവശ്യമാണ്", [ "പേര്", "ലോഗിൻ", "ഇമെയിൽ", "പാസ്‌വേഡ്", "സമ്മതിച്ചു" ] ) ->റൂൾ("സ്ലഗ്", "ലോഗിൻ") ->റൂൾ("ഇമെയിൽ", "ഇമെയിൽ") ->റൂൾ("അംഗീകരിച്ചു", "സമ്മതിച്ചു");

ഉദാഹരണത്തിൽ നിന്ന് കാണാൻ കഴിയുന്നതുപോലെ, രീതിയിൽ നിയമം()ഞങ്ങൾ ആദ്യം നിയമത്തിൻ്റെ പേര് എഴുതുന്നു, അതിനുശേഷം മാത്രമേ ഈ നിയമവുമായി പൊരുത്തപ്പെടേണ്ട ആട്രിബ്യൂട്ടുകൾ സൂചിപ്പിക്കൂ. കൂടുതൽ വ്യക്തമായ ഒരു ഉദാഹരണം ആവശ്യമായ റൂൾ ആണ്, ആ റൂളിലേക്ക് ആട്രിബ്യൂട്ടുകൾ എങ്ങനെ ഉൾപ്പെടുന്നുവെന്ന് കാണിക്കുന്നു.


Valitron (ഞങ്ങൾ അവലോകനം ചെയ്ത മറ്റ് പരിഹാരങ്ങൾ പോലെ) സാധാരണ പിശക് സന്ദേശങ്ങൾ നൽകുന്നു. നിങ്ങൾ അവ ഉപയോഗിക്കുകയാണെങ്കിൽ, ഓരോ സന്ദേശവും അനുബന്ധ ആട്രിബ്യൂട്ടിൻ്റെ പേരിൽ ആരംഭിക്കുന്നത് നിങ്ങൾ കാണും.


നിലവാരമില്ലാത്ത പിശക് സന്ദേശങ്ങൾ ഉപയോഗിക്കുമ്പോൾ പോലും വാലിട്രോൺ സന്ദേശ വാചകത്തിലേക്ക് പേരുകൾ ആട്രിബ്യൂട്ട് ചെയ്യുന്നു. അതുകൊണ്ടാണ് ആട്രിബ്യൂട്ട് നാമം നീക്കം ചെയ്യാൻ ഞങ്ങൾ ഒരു ശൂന്യമായ സ്ട്രിംഗ് ഉപയോഗിച്ച് ലേബൽ() രീതി ഉപയോഗിച്ചത്.


$validator->റൂൾ("രണ്ട്_പദങ്ങൾ", "പേര്")->ലേബൽ("")

പ്രതികരണം

പ്രത്യേകമായി മൂല്യനിർണ്ണയം സംബന്ധിച്ച്, വാലിട്രോൺ ലൈബ്രറി API ഞങ്ങൾ ഇതിനകം ലേഖനത്തിൽ കണ്ടതിൽ നിന്ന് പ്രായോഗികമായി വ്യത്യസ്തമല്ല. മൂല്യനിർണ്ണയം നടത്താൻ ഞങ്ങൾ വാലിഡേറ്റർ രീതി എന്ന് വിളിക്കുന്നു സാധൂകരിക്കുക():


$validator->validate();

രീതി ഉപയോഗിച്ച് മൂല്യനിർണ്ണയ പിശക് സന്ദേശങ്ങൾ ലഭിക്കും getErrors():


$validator->പിശകുകൾ();

ഇവിടെ സന്ദേശങ്ങൾ സിറിയസ് മൂല്യനിർണ്ണയത്തിലെ അതേ രീതിയിൽ ആട്രിബ്യൂട്ടുകൾ ഉപയോഗിച്ച് ഗ്രൂപ്പുചെയ്‌തിരിക്കുന്നു, സന്ദേശത്തിന് പ്രത്യേക ക്ലാസ് ഇല്ല എന്നതൊഴിച്ചാൽ, ഞങ്ങൾക്ക് ഒരു സാധാരണ മൾട്ടി-ഡൈമൻഷണൽ അറേ ലഭിക്കും.


foreach ($validator->പിശകുകൾ() $attribute => $messages ആയി) ( foreach ($message as $message) (echo $message . "\n"; ) )

നിയന്ത്രണം

അവസാനമായി, ഇന്നത്തെ അവസാന ലൈബ്രറി കൺട്രോളിയോ എന്ന എൻ്റെ സ്വന്തം വികസനമാണ്.

നിയമങ്ങൾ നിർവചിക്കുന്നു

വീണ്ടും, അഞ്ചാം തവണ, ഉപയോക്തൃനാമത്തിനായി ഞങ്ങൾ ഒരു മൂല്യനിർണ്ണയ നിയമം സൃഷ്ടിക്കും. എല്ലാം താരതമ്യേന ലളിതവും നിലവാരവുമാണ്:


നെയിംസ്പേസ് MyProject\Validation\Rules; കൺട്രോൾ\റൂളുകൾ\അബ്സ്ട്രാക്റ്റ് റൂൾ ഉപയോഗിക്കുക; ക്ലാസ് ടുവേഡ്സ് കൺട്രോൾയോ\റൂളുകൾ\അബ്സ്ട്രാക്റ്റ് റൂൾ വിപുലീകരിക്കുന്നു ( പൊതു പ്രവർത്തനം സാധുതയുള്ളതാണ്($ഇൻപുട്ട് = നൾ) (റിട്ടേൺ (ബൂൽ) പ്രെഗ്_മാച്ച്("/^+\s+$/u", $ഇൻപുട്ട്); ) )

ഇപ്പോൾ ഞങ്ങൾ ഒരു ഫാക്ടറി സൃഷ്ടിക്കുകയും അതിൽ രീതി ഉപയോഗിച്ച് ഒരു നിയമം രജിസ്റ്റർ ചെയ്യുകയും ചെയ്യുന്നു നീട്ടുക():


നെയിംസ്പേസ് MyProject; കൺട്രോൾ \ ഫാക്ടറി ഉപയോഗിക്കുക; MyProject\Validation\Rules\TwoWords ഉപയോഗിക്കുക; $factory = Kontrolio\Factory ::getInstance()->extend();

റൂൾ രജിസ്റ്റർ ചെയ്ത ശേഷം, പേര് ഉൾപ്പെടെ - two_words ഉപയോഗിച്ച് നമുക്ക് ഇത് ഉപയോഗിക്കാം. നമുക്ക് ഒരു വാലിഡേറ്റർ സൃഷ്ടിക്കാം:


$data = [ "name" => "Albert", // "login" => "@lbert", // "Forbidden" പ്രതീകം @ "email" => "എന്തോ തെറ്റ്", // ഉണ്ടായിരിക്കണം. ഇവിടെ ഒരു ഇ-മെയിൽ ആകുക "പാസ്‌വേഡ്" => "" // പാസ്‌വേഡ് പൂർണ്ണമായും വ്യക്തമാക്കിയിട്ടില്ല // "സമ്മതിച്ചു" എന്നത് അറേയിൽ ഇല്ല കാരണം ഉപയോക്താവ് ബോക്സ് ചെക്ക് ചെയ്യാത്തതിനാൽ ]; $rules = [ "name" => "two_words", "login" => "ചിലപ്പോൾ|alphadash", "email" => "email", "password" => "length:1.64", "aggreed" => " സ്വീകരിച്ചു" ]; $messages = [ "name" => "ഉപയോക്തൃനാമത്തിൽ രണ്ട് വാക്കുകൾ ഉണ്ടായിരിക്കണം.", "login" => "നിങ്ങളുടെ ലോഗിൻ ഞങ്ങൾക്ക് ഇഷ്ടമല്ല.", "email" => "നിങ്ങൾ നൽകാൻ ആഗ്രഹിക്കുന്നില്ല. ഞങ്ങൾക്ക് നിങ്ങളുടെ ഇമെയിൽ .", "പാസ്‌വേഡ്" => "ശരി, നിങ്ങളുടെ പാസ്‌വേഡ് എവിടെ?", "സമ്മതം" => "നിങ്ങൾ സമ്മതിക്കാത്തത് ഖേദകരമാണ്." ]; $validator = $factory->make($data, $rules, $messages);

ലാറവെലിൽ ഉപയോഗിച്ചതിന് സമാനമായ ഒരു വാക്യഘടന ഉപയോഗിച്ചാണ് ഞങ്ങൾ നിയമങ്ങൾ വിവരിച്ചത്, എന്നിരുന്നാലും ഞങ്ങൾക്ക് കൂടുതൽ വാചാലമായ പതിപ്പ് ഉപയോഗിക്കാമായിരുന്നു:


$rules = [ "name" => പുതിയ TwoWords, "login" => , "email" => പുതിയ Email, "password" => new Length(1, 64), "Agreed" => new accepted ];

പ്രതികരണം

അതേ രീതി ഉപയോഗിച്ച് മൂല്യനിർണ്ണയം ആരംഭിച്ചു സാധൂകരിക്കുക():


$validator->validate();

ഇപ്പോൾ ഒരു രീതി ഉപയോഗിച്ച് നമുക്ക് പിശക് സന്ദേശങ്ങൾ ലഭിക്കും getErrors()അഥവാ getErrorsList(). ആദ്യ രീതി കൂടുതൽ സങ്കീർണ്ണമായ പിശക് ഔട്ട്പുട്ട് അനുവദിക്കുന്നു, രണ്ടാമത്തേത് ഒരു ഫ്ലാറ്റ് അറേ നൽകുന്നു. ഉപയോഗിക്കുന്നത് getErrors()ഇതുപോലുള്ള സന്ദേശങ്ങൾ നമുക്ക് ഔട്ട്പുട്ട് ചെയ്യാം:


    $messages): ?>

ഒപ്പം getErrorsList()നിങ്ങൾക്ക് സന്ദേശങ്ങളുടെ ഒരു ലളിതമായ ലിസ്റ്റ് ഉണ്ടാക്കാം:


getErrorsList(); ?>

താഴത്തെ വരി

ഈ ലേഖനത്തിൽ ഞാൻ ഇനിപ്പറയുന്ന ലൈബ്രറികൾ ഉപയോഗിക്കുന്നതിനുള്ള ഉദാഹരണങ്ങൾ കാണിച്ചു:

  1. ഓറ.ഫിൽറ്റർ
  2. മൂല്യനിർണ്ണയത്തെ ബഹുമാനിക്കുക
  3. സിറിയസ് മൂല്യനിർണ്ണയം
  4. വാലിട്രോൺ
  5. നിയന്ത്രണം

ഒരു "യഥാർത്ഥ ലോക ഉദാഹരണം" വളരെ ലളിതമായി തോന്നിയേക്കാം. ചില ലൈബ്രറി കഴിവുകൾ ലേഖനത്തിൽ നിന്ന് ഒഴിവാക്കിയതിനാൽ ഞാൻ സമ്മതിക്കണം. തത്വത്തിൽ, നിങ്ങൾക്ക് താൽപ്പര്യമുണ്ടെങ്കിൽ, നിങ്ങൾക്ക് അവരുടെ സവിശേഷതകൾ സ്വയം പഠിക്കാൻ കഴിയും.


ഓരോ ലൈബ്രറിയും അതിൻ്റേതായ സവിശേഷതകളും അതിൻ്റെ ഇരുണ്ട വശങ്ങളും വാഗ്ദാനം ചെയ്യുന്നു, അതിനാൽ ഒരെണ്ണം തിരഞ്ഞെടുക്കുന്നത് അഭിരുചിയുടെയും വെല്ലുവിളിയുടെയും കാര്യമാണെന്ന് ഞാൻ കരുതുന്നു.


വായിച്ചതിന് നന്ദി. ശരിയായ തിരഞ്ഞെടുപ്പ് നടത്തുക.

ടാഗുകൾ: ടാഗുകൾ ചേർക്കുക

കൂടുതൽ പ്രോസസ്സിംഗിനായി ഫോം സമർപ്പിക്കൽ ഡാറ്റ എടുക്കുന്നതിന് മുമ്പ് നിങ്ങളുടെ ഫോമിലേക്കുള്ള ഇൻപുട്ട് സാധൂകരിക്കേണ്ടത് വളരെ അത്യാവശ്യമാണ്. ഫോമിൽ നിരവധി ഫീൽഡുകൾ ഉള്ളപ്പോൾ, PHP മൂല്യനിർണ്ണയ സ്ക്രിപ്റ്റ് വളരെ സങ്കീർണ്ണമാകും. മാത്രമല്ല, നിങ്ങൾ നിർമ്മിക്കുന്ന മിക്ക ഫോമുകൾക്കും നിങ്ങൾ സമാനമായതോ സമാനമായതോ ആയ മൂല്യനിർണ്ണയം നടത്തുന്നതിനാൽ, ഫോം മൂല്യനിർണ്ണയത്തിനായി വളരെയധികം ഡ്യൂപ്ലിക്കേറ്റ് പ്രയത്നം ചെലവഴിക്കുന്നു.

ഈ പൊതു PHP ഫോം മൂല്യനിർണ്ണയ സ്ക്രിപ്റ്റിനെക്കുറിച്ച്

ഈ ജനറിക് PHP ഫോം വാലിഡേറ്റർ സ്ക്രിപ്റ്റ് നിങ്ങളുടെ ഫോമിലേക്ക് മൂല്യനിർണ്ണയങ്ങൾ ചേർക്കുന്നത് വളരെ എളുപ്പമാക്കുന്നു.

ഫോമിലെ ഓരോ ഘടകങ്ങളുമായും ഞങ്ങൾ ഒരു കൂട്ടം "സാധുവാക്കൽ വിവരണങ്ങൾ" സൃഷ്ടിക്കുകയും ബന്ധപ്പെടുത്തുകയും ചെയ്യുന്നു. നടപ്പിലാക്കേണ്ട മൂല്യനിർണ്ണയത്തിൻ്റെ തരം വ്യക്തമാക്കുന്ന ഒരു സ്ട്രിംഗാണ് "വാലിഡേഷൻ ഡിസ്ക്രിപ്റ്റർ". ഉദാഹരണത്തിന്, "req" എന്നാൽ ആവശ്യമാണ്, "ആൽഫ" എന്നാൽ അക്ഷരമാല അക്ഷരങ്ങൾ മാത്രം അനുവദിക്കുക തുടങ്ങിയവ.

ഫോമിലെ ഓരോ ഫീൽഡിനും പൂജ്യം, ഒന്നോ അതിലധികമോ മൂല്യനിർണ്ണയങ്ങൾ ഉണ്ടാകാം. ഉദാഹരണത്തിന്, ഇൻപുട്ട് ശൂന്യമായിരിക്കരുത്, 25 അക്ഷരങ്ങളിൽ കുറവായിരിക്കണം, ആൽഫ-ന്യൂമറിക് ആയിരിക്കണം, മുതലായവ

ഫോമിലെ ഓരോ ഇൻപുട്ട് ഫീൽഡിനും ഒരു കൂട്ടം മൂല്യനിർണ്ണയ വിവരണങ്ങളെ നിങ്ങൾക്ക് ബന്ധപ്പെടുത്താം.

PHP ഫോം മൂല്യനിർണ്ണയ സ്ക്രിപ്റ്റ് ഡൗൺലോഡ് ചെയ്യുക

നിങ്ങൾക്ക് PHP ഫോം മൂല്യനിർണ്ണയ സ്ക്രിപ്റ്റ് ചുവടെ ഡൗൺലോഡ് ചെയ്യാം:
zip ഫയലിൽ ഫോം മൂല്യനിർണ്ണയ സ്ക്രിപ്റ്റ് formvalidator.php, ഡോക്യുമെൻ്റേഷൻ, ഉപയോഗ സാമ്പിളുകൾ എന്നിവ അടങ്ങിയിരിക്കുന്നു.

PHP ഫോം മൂല്യനിർണ്ണയ സ്ക്രിപ്റ്റ് ഉപയോഗിക്കുന്നു

  1. നിങ്ങളുടെ ഫോം പ്രോസസ്സിംഗ് സ്ക്രിപ്റ്റിൽ formvalidator.php ഉൾപ്പെടുത്തുക
  2. ആവശ്യം_ഒരിക്കൽ "formvalidator.php"
  3. ഒരു FormValidator ഒബ്‌ജക്റ്റ് സൃഷ്‌ടിച്ച് ഫോം മൂല്യനിർണ്ണയ വിവരണങ്ങൾ ചേർക്കുക.
  4. $validator = പുതിയ FormValidator(); $validator->addValidation("Name","req","Please in Name"); $validator->addValidation("ഇമെയിൽ","ഇമെയിൽ", "ഇമെയിലിനുള്ള ഇൻപുട്ട് സാധുവായ ഇമെയിൽ മൂല്യമായിരിക്കണം"); $validator->addValidation("ഇമെയിൽ","req","ദയവായി ഇമെയിൽ പൂരിപ്പിക്കുക");

    ഫോമിലെ ഇൻപുട്ട് ഫീൽഡിൻ്റെ പേരാണ് ആദ്യത്തെ വാദം. ആവശ്യമായ മൂല്യനിർണ്ണയത്തിൻ്റെ തരം പറയുന്ന മൂല്യനിർണ്ണയ വിവരണമാണ് രണ്ടാമത്തെ ആർഗ്യുമെൻ്റ്. മൂല്യനിർണ്ണയം പരാജയപ്പെട്ടാൽ പ്രദർശിപ്പിക്കേണ്ട പിശക് സന്ദേശമാണ് മൂന്നാമത്തെ ആർഗ്യുമെൻ്റ്.

  5. ValidateForm() ഫംഗ്‌ഷൻ വിളിച്ച് ഫോം സാധൂകരിക്കുക
  6. if(!$validator->ValidateForm()) ( echo " മൂല്യനിർണ്ണയ പിശകുകൾ:"; $error_hash = $validator->GetErrors(); foreach($error_hash as $inpname => $inp_err) (എക്കോ "

    $inpname: $inp_err

    \n";))

ഉദാഹരണം

ചുവടെയുള്ള ഉദാഹരണം ആശയം കൂടുതൽ വ്യക്തമാക്കും

addValidation("പേര്","req","ദയവായി പേര് പൂരിപ്പിക്കുക"); $validator->addValidation("ഇമെയിൽ","ഇമെയിൽ", "ഇമെയിലിനുള്ള ഇൻപുട്ട് സാധുവായ ഇമെയിൽ മൂല്യമായിരിക്കണം"); $validator->addValidation("ഇമെയിൽ","req","ദയവായി ഇമെയിൽ പൂരിപ്പിക്കുക"); if($validator->ValidateForm()) ( echo "

മൂല്യനിർണ്ണയം വിജയിച്ചു!

"; $show_form=false; ) വേറെ (എക്കോ" മൂല്യനിർണ്ണയ പിശകുകൾ:"; $error_hash = $validator->GetErrors(); foreach($error_hash as $inpname => $inp_err) (എക്കോ "

$inpname: $inp_err

\n"; ) ) if(true == $show_form) ( ?>

പേര്: ഇമെയിൽ:

ഇഷ്‌ടാനുസൃത മൂല്യനിർണ്ണയം ചേർക്കുന്നു

മൂല്യനിർണ്ണയ വിവരണങ്ങൾ നൽകാത്ത ഒരു ഇഷ്‌ടാനുസൃത മൂല്യനിർണ്ണയം ചേർക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, നിങ്ങൾക്ക് അങ്ങനെ ചെയ്യാം. ഘട്ടങ്ങൾ ഇതാ:

  1. ഇഷ്‌ടാനുസൃത മൂല്യനിർണ്ണയത്തിനായി ഒരു ക്ലാസ് സൃഷ്‌ടിക്കുകയും DoValidate() ഫംഗ്‌ഷൻ അസാധുവാക്കുകയും ചെയ്യുക
  2. ക്ലാസ് MyValidator CustomValidator വിപുലീകരിക്കുന്നു (ഫംഗ്ഷൻ DoValidate(&$formars,&$error_hash) ( if(stristr($formars["Comments"],"http://")) ( $error_hash["Comments"]="URL-കളൊന്നും അനുവദനീയമല്ല അഭിപ്രായങ്ങളിൽ"; തെറ്റായി തിരികെ നൽകുക; ) സത്യമായി മടങ്ങുക;))

  3. ഇഷ്‌ടാനുസൃത മൂല്യനിർണ്ണയ ഒബ്‌ജക്‌റ്റ് ചേർക്കുക
  4. $validator = പുതിയ FormValidator(); $validator->addValidation("Name","req","Please in Name"); $validator->addValidation("ഇമെയിൽ","ഇമെയിൽ", "ഇമെയിലിനുള്ള ഇൻപുട്ട് സാധുവായ ഇമെയിൽ മൂല്യമായിരിക്കണം"); $validator->addValidation("ഇമെയിൽ","req","ദയവായി ഇമെയിൽ പൂരിപ്പിക്കുക"); $custom_validator = പുതിയ MyValidator(); $validator->AddCustomValidator($custom_validator);

മറ്റ് മൂല്യനിർണ്ണയങ്ങൾക്ക് ശേഷം ഇഷ്‌ടാനുസൃത മൂല്യനിർണ്ണയ ഫംഗ്‌ഷൻ സ്വയമേവ വിളിക്കപ്പെടും.

മൂല്യനിർണ്ണയ വിവരണങ്ങളുടെ പട്ടിക

എല്ലാ മൂല്യനിർണ്ണയ വിവരണങ്ങളുടെയും ലിസ്റ്റ് ഇതാ:

മൂല്യനിർണ്ണയ വിവരണംഉപയോഗം
reqഫീൽഡ് ശൂന്യമായിരിക്കരുത്
maxlen=???നൽകിയ ഡാറ്റ പരമാവധി ദൈർഘ്യം പരിശോധിക്കുന്നു. ഉദാഹരണത്തിന്, അനുവദനീയമായ പരമാവധി വലുപ്പം 25 ആണെങ്കിൽ, മൂല്യനിർണ്ണയ വിവരണം “maxlen=25” ആയി നൽകുക
മിന്ലെൻ=???നൽകിയ സ്ട്രിംഗിൻ്റെ ദൈർഘ്യം ആവശ്യമായ ഏറ്റവും കുറഞ്ഞതിലേക്ക് പരിശോധിക്കുന്നു. ഉദാഹരണം "minlen=5"
അൽനംഡാറ്റയിൽ അക്ഷരമാല അല്ലെങ്കിൽ സംഖ്യാ പ്രതീകങ്ങൾ ഒഴികെ മറ്റേതെങ്കിലും പ്രതീകങ്ങൾ അടങ്ങിയിട്ടുണ്ടോയെന്ന് പരിശോധിക്കുക
alnum_sഅക്ഷരമാല, സംഖ്യാ, സ്പേസ് പ്രതീകങ്ങൾ മാത്രം അനുവദിക്കുന്നു
സംഖ്യസംഖ്യാ ഡാറ്റ പരിശോധിക്കുക
ആൽഫഅക്ഷരമാല ഡാറ്റ പരിശോധിക്കുക.
ആൽഫ_കൾഅക്ഷരമാല ഡാറ്റ പരിശോധിച്ച് സ്‌പെയ്‌സുകൾ അനുവദിക്കുക.
ഇമെയിൽഫീൽഡ് ഒരു ഇമെയിൽ ഫീൽഡാണ് കൂടാതെ ഡാറ്റയുടെ സാധുത പരിശോധിക്കുക.
lt=???
കുറവ്=???
പാസാക്കിയ മൂല്യത്തേക്കാൾ കുറവാണോ ഡാറ്റയെന്ന് പരിശോധിക്കുക. സംഖ്യാ ഫീൽഡുകൾക്ക് മാത്രമേ സാധുതയുള്ളൂ.
ഉദാഹരണം: മൂല്യം 1000-ൽ കുറവാണെങ്കിൽ, മൂല്യനിർണ്ണയ വിവരണം "lt=1000" ആയി നൽകുക
gt=???
വലുതാണ്=???
പാസാക്കിയ മൂല്യത്തേക്കാൾ വലുതാണോ ഡാറ്റയെന്ന് പരിശോധിക്കുക. സംഖ്യാ ഫീൽഡുകൾക്ക് മാത്രമേ സാധുതയുള്ളൂ.
ഉദാഹരണം: മൂല്യം 10-ൽ കൂടുതലാണെങ്കിൽ, മൂല്യനിർണ്ണയ വിവരണം "gt=10" ആയി നൽകുക
regexp=???പതിവ് എക്‌സ്‌പ്രഷനുമായി മൂല്യം പൊരുത്തപ്പെടണമെന്ന് ഒരു സാധാരണ എക്‌സ്‌പ്രഷൻ ഉപയോഗിച്ച് പരിശോധിക്കുക.
ഉദാഹരണം: “regexp=^(1.20)$” 20 അക്ഷരമാല അക്ഷരങ്ങൾ വരെ അനുവദിക്കുക.
തിരഞ്ഞെടുക്കരുത്=??ഈ മൂല്യനിർണ്ണയ വിവരണം തിരഞ്ഞെടുത്ത ഇൻപുട്ട് ഇനങ്ങൾക്കുള്ളതാണ് (ലിസ്റ്റുകൾ) സാധാരണയായി, തിരഞ്ഞെടുത്ത ലിസ്റ്റ് ബോക്സുകളിൽ 'ഒന്ന് തിരഞ്ഞെടുക്കുക' എന്ന് പറയുന്ന ഒരു ഇനം ഉണ്ടായിരിക്കും. ഉപയോക്താവ് ഈ ഓപ്ഷൻ അല്ലാതെ മറ്റൊരു ഓപ്ഷൻ തിരഞ്ഞെടുക്കണം. എങ്കിൽ മൂല്യംഈ ഓപ്ഷൻ്റെ 'സെലക്ട് വൺ' ആണ്, മൂല്യനിർണ്ണയ വിവരണം "dontselect=Select One" ആയിരിക്കണം
dontselectchkഈ മൂല്യനിർണ്ണയ വിവരണം ചെക്ക് ബോക്സുകൾക്കുള്ളതാണ്. നൽകിയിരിക്കുന്ന ചെക്ക് ബോക്സ് ഉപയോക്താവ് തിരഞ്ഞെടുക്കരുത്. നൽകുക മൂല്യംഎന്നതിനുപകരം ചെക്ക് ബോക്സിൻ്റെ ??
ഉദാഹരണത്തിന്, dontselectchk=on
shouldselchkഈ മൂല്യനിർണ്ണയ വിവരണം ചെക്ക് ബോക്സുകൾക്കുള്ളതാണ്. നൽകിയിരിക്കുന്ന ചെക്ക് ബോക്സ് ഉപയോക്താവ് തിരഞ്ഞെടുക്കണം. ?? എന്നതിന് പകരം ചെക്ക് ബോക്സിൻ്റെ മൂല്യം നൽകുക
ഉദാഹരണത്തിന്, shouldselchk=on
ഡോണ്ട് സെലക്‌ട്രേഡിയോഈ മൂല്യനിർണ്ണയ വിവരണം റേഡിയോ ബട്ടണുകൾക്കുള്ളതാണ്. നൽകിയിരിക്കുന്ന റേഡിയോ ബട്ടൺ ഉപയോക്താവ് തിരഞ്ഞെടുക്കരുത്. പകരം റേഡിയോ ബട്ടണിൻ്റെ മൂല്യം നൽകുക ??
ഉദാഹരണത്തിന്, dontselectradio=NO
തിരഞ്ഞെടുക്കൽ റേഡിയോഈ മൂല്യനിർണ്ണയ വിവരണം റേഡിയോ ബട്ടണുകൾക്കുള്ളതാണ്. നൽകിയിരിക്കുന്ന റേഡിയോ ബട്ടൺ ഉപയോക്താവ് തിരഞ്ഞെടുക്കണം. പകരം റേഡിയോ ബട്ടണിൻ്റെ മൂല്യം നൽകുക ??
ഉദാഹരണത്തിന്, selectradio=yes
സെൽമിൻ=??ഒരു ചെക്ക് ബോക്സ് ഗ്രൂപ്പിൽ നിന്ന് കുറഞ്ഞത് n എണ്ണം ചെക്ക് ബോക്സുകളെങ്കിലും തിരഞ്ഞെടുക്കുക.
ഉദാഹരണത്തിന്: selmin=3
ഏകാന്തമായഒരു റേഡിയോ ഗ്രൂപ്പ് നിർബന്ധമാക്കുന്നു. ഉപയോക്താവ് റേഡിയോ ഗ്രൂപ്പിൽ നിന്ന് ഒരു ഇനമെങ്കിലും തിരഞ്ഞെടുക്കണം.
eqelmnt=???ഫോമിലെ രണ്ട് ഘടകങ്ങൾ താരതമ്യം ചെയ്ത് മൂല്യങ്ങൾ ഒന്നുതന്നെയാണെന്ന് ഉറപ്പാക്കുക ഉദാഹരണത്തിന്, 'പാസ്‌വേഡ്', 'പാസ്‌വേഡ് സ്ഥിരീകരിക്കുക'. മാറ്റിസ്ഥാപിക്കുക ??? മറ്റ് ഇൻപുട്ട് ഘടകത്തിൻ്റെ പേരിനൊപ്പം.
ഉദാഹരണത്തിന്: eqelmnt=confirm_pwd


സൈറ്റിൽ പുതിയത്

>

ഏറ്റവും ജനപ്രിയമായ