Поддержать Проект

USDT TRC20

TBGKTYDs4yzU17vQbobbUB8epFFtFb6PKh

Обратная связь

[MODX] Guru
  • Информация
  • Разработчикам
  • Дополнения
    • DocLister
    • DLMenu
    • DLCrumbs
    • DLBuildMenu
    • DLLastViews
    • DLSiblings
    • DLRequest
    • DLglossary
    • DLSitemap
    • DocInfo
    • FormLister
    • Wayfinder
    • phpthumb
    • LikeDislike
    • eForm
      • Обязательные параметры
      • Остальные параметры
      • События для PHP функций
      • Плейсхолдеры шаблона
      • Типы и форматы данных
      • Проверка данных
      • Защита от спама
      • Примеры
      • reCAPTCHA
    • Ditto
    • multiTV
    • AjaxMegaSearch
    • AjaxSearch
    • WebLoginPE
    • Breadcrumbs
    • CodeMirror
    • AnythingRating
    • Easy Newsletter
    • FirstChildRedirect
    • OpenGraphTags
    • ddTypograph
    • TagSaver
    • BlackList
    • CfgTv
    • ModxAccount
    • Forgot Manager Login
    • GetField
    • if
    • Jot
    • ListChild
    • ListIndexer
    • ManagerManager
    • ddMMEditor
    • MaxiGallery
    • MemberCheck
    • ddGetMultipleField
    • MetaX
    • MODxBB и phpBB
    • Yams
    • Personalize
    • PHx
    • Reflect
    • tagLinks
    • TransAlias
    • TvTagCloud
    • UltimateParent
    • WebSignup
    • WebLogin
    • countViews
    • thumb
    • imageCaptor
    • optimizeJPG
    • Preview Next
    • Shopkeeper
    • SiteMap
    • Sass
    • Selector
    • SimpleGallery
    • SimpleTube
    • SimpleFiles
    • Star Rating
    • MinifyX
    • adminNav
    • SimplePolls
    • CResource
    • MODxAPI
    • customTables
    • HtmlInLine
    • HtmlMinModxEvo
    • SHKUserProfile
    • PickDocsInTree
    • evoSearch
    • editDocs
    • PageBuilder
    • HybridAuth
    • Compare
    • alterTitle
  • Виджеты
  • Уроки
  • Разработчики
  • Готовые примеры
  • Блог
  • Конфиги
  • HTML коды
© [MODX] Guru
  • eForm

eForm: Проверка данных

  • Дополнения
  • eForm
  • Проверка данных
Поддержать: USDT TRC20: TBGKTYDs4yzU17vQbobbUB8epFFtFb6PKh
3480

eForm: Проверка данных

Эта версия поддерживает расширенную проверку на стороне сервера и фильтрацию, использующую очень гибкие правила проверки, которые включаются в параметр eform. Вы можете определить 2 дополнительных параметра проверки, сообщение об ошибке и проверке или правило фильтра.

Например:

eform="Year of Birth:integer:1:Must be between 1950 and 2002:#RANGE 1950-2002"

Правила проверки

#LIST - перечисленные через запятую возможные значения.

Например:

#LIST красный,зеленый,оранжевый,синий

#RANGE - разделенные запятой возможный числовые значения или числовые диапазоны. При установке диапазона порядок не имеет значения. 1~10 и 10~1 будут одинаково определять числа между 1 и 10 (включительно). Можно использовать как положительные так и отрицательные числа.

Например:

#RANGE 1,3,-5~-15,60~82

#SELECT - определяет правильность значений, которые будут возвращены из базы при запросе. Запрос должен возвращать значения только одной колонки (функция проверяет только первую колонку). Вы можете использовать {\DBASE} {\PREFIX} тэги. Они будут автоматически заменены на название базы MODX и используемый префикс таблицы.

Например:

#SELECT keyword FROM {\PREFIX}site_keywords

#EVAL - строка кода PHP. Может возвращать true или false. Внимание! Хотя #EVAL все еще используется в eForm 1.4, но в будущих версиях они скорее всего больше не будут поддерживаться. Взамен используйте #FUNCTION.

#FUNCTION - название функции. Функция должна использовать только одно значение (значение поля) и возвращать TRUE или FALSE. Смотрите примеры, чтобы разобраться как это действует.

Например:

#FUNCTION myValidationFunction

#REGEX - регулярное выражение. Синтаксис preg_match() в PHP.

Пример:

#REGEX /^[\a-z]+ [\a-z0-9_]+/i

#FILTER - фильтры не проверяют введенных значений, но заменяют слова и значения, которые соответствуют критериям. Вы можете использовать следующие фильтры:

  • #FILTER #LIST
    Используйте две вертикальные черты для разделения заменяемых и заменяющих слов.
    Например:
    #FILTER #LIST badword,verybadword||goodword,verygoodword
  • #FILTER #EVAL
    Например:
    #FILTER #EVAL return myFilterFunction($value);

    (естественно вы должны быть уверены в существовании указанной функции)

    Примеры применения фильтра:

    function myFilterFunction($value){
    	$badWords = array('scribble','coding');
    	$goodWords = array('design','sleep');
    	return str_replace($badWords,$goodWords,$value);
    }
  • #FILTER #REGEX
    Регулярное выражение замены. Синтаксис preg_replace() в PHP. Поиск и выражение замены разделяется двумя вертикальными чертами (||)

Поля select, radio и checkbox

Эти поля имеют автоматическу проверку. Все полученные значения проверяются на соответствие установленными вами в шаблоне формы. Это позволяет избежать добавления посторонних значений в эти поля.

Скрытые поля

По умолчанию скрытые поля присутствуют как защита от подделки формы при сравнении используемых значений (как в полях select, radio и checkbox). Но в некоторых местах это может быть ненужно. Например если вы используете обработку javascript, которая хранит свои значения в скрытых полях. В это случае вы можете изменить это поведение используя параметр eform (включая или выключая проверку).

Скрытое поле пример 1:

Встроенное поведение удобно, если вы храните в скрытом поле идентификатор документа и не хотите чтобы он был изменен кем-либо. Поле должно выглядеть примерно так:

<input type="hidden" name="docId" value="31" />

Скрытое поле пример 2:

Если вы используете javascript, который хранит значения в скрытых полях, то вам необходимо убрать проверку поля так:

<input type="hidden" name="calculatedField" value="" eform="::0::" />

Скрытое поле пример 3:

Пример похожий на 2, но вы хотите убедиться, что возвращенные значения лежат в допустимом диапазоне чисел. Установим для параметра eform заголовок, числовой тип данных, обязательность заполнения, сообщение об ошибке и проверку на диапазон. Это будет выглядеть так:

<input type="hidden" name="calculatedField" value="" eform="Calculated Value:integer:1:Calculation out of range:#RANGE 1-10" />

Пример полей с проверкой

Выпадающий список - обязательное поле (не требуется проверка)

<select name="mySelect" eform_options="Select Country::1" /> (тип данных не определен)
	<option value="en-au">Australia</option>
	<option value="en-us">USA</option>
</select>

Текстовое поле - обязательное поле и формат данных для дат.

<input type="text" name="dobDate" eform_options="Date of Birth:date:1:@EVAL return (strtotime($value)!==-1)?true:false;" />

Много чекбоксов - обязательное поле, можно выбрать несколько значений.

<input type="checkbox" name="myColors[]" value="Red" eform_options="Colors::1" /> (тип данных не определен)
<input type="checkbox" name="myColors[]" value="Green" /> (тип данных не определен)