Перевірка даних

    eForm: Перевірка даних

    Перевірка даних сніпета eForm для створення зворотного зв'язку, замовлення дзвінка, оформлення замовлення товарів на Evolution CMS.

    Ця версія підтримує розширену перевірку на стороні сервера і фільтрацію, що використовує дуже гнучкі правила перевірки, які включаються в параметр 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" /> (тип даних не визначений)