Как выйти из символа подчеркивания в аргументе шаблона PATINDEX?

Существует несколько решений этой проблемы:

  1. Используйте JavaScript, чтобы отключить кнопку отправки формы, когда она опубликована. Недостаток этого является то, что это абсолютно не является надежности. Очень легко отправлять формы, не нажав на кнопку, и это также не будет работать для пользователей с помощью JavaScript отключена. Я бы определенно не рекомендовал этот метод.

    Пример:

      script>
     
    form>
  2. Используйте сеансы PHP , чтобы установить переменную сеанса (например, $ _Session [«PostTimer») к текущему временному времени на пост. Перед фактическим обработкой формы в PHP проверьте, существует ли переменная $ _SESSION ['POSTTIMER'] и проверяет определенную разницу времени времени (т. Е.: 2 секунды). Таким образом, вы можете легко отфильтровать двойные подачи.

    Пример:

     // form.html
     
    form> // foo.php. Если (Isset ($ _ Post) &&! Пусто ($ _ post)) { Если (Isset ($ _ Session ['PostTimer'])) { Если ((время () - $ _session ['posttimer'])
  3. Включите уникальный токен на каждом посте. В этом случае вы также установили переменную сеанса в токен, который вы хотите включить, а затем рендерируйте токен в форме. Как только форма представлена, вы повторно генерируете токен. Когда представленный токен не соответствует токену на вашем сеансе, форма была перенесена и должна быть объявлена ​​недействительной.

    Пример:

     // form.php
      PHP.
      // Очевидно, это может быть все, что вы хотите, пока это уникально
      $ _Session [«токен»] = MD5 (SESSIC_ID (). Время ());
     ?>
     
    « /> form> // foo.php. If (Isset ($ _ Session [«токен»))))) { Если (Isset ($ _ post ['токен'])) { Если ($ _POST [«токен»]! = $ _Session [«токен»])) { // Дважды отправьте } } }

67
задан abatishchev 16 December 2014 в 22:42
поделиться