Ограничить ли пользователь участие в соревнованиях 5 раз каждые 24 часа? - PullRequest
0 голосов
/ 13 октября 2011

Я создал приложение Facebook для клиента, это приложение позволяет пользователю вводить свои данные и угадывать фигуру для участия в конкурсе. Приложение запускается через iframe.

Существует ли какой-либо возможный способ разрешить пользователю отправлять форму максимум 5 раз в течение 24 часов (предпочтительно по профилю Facebook или IP-адресу), а затем повторить ошибку, если он пытается ввести 6-й раз. У меня есть PHP-скрипт, который собирает данные и экспортирует их в CSV-файл.

Код формы PHP:

<?php
if($_POST['formSubmit'] == "Submit")
{
    $errorMessage = "";

  if(empty($_POST['formName']))
  {
    $errorMessage .= "<li>You forgot to enter your name.</li>";
  }
  if(empty($_POST['formTown']))
  {
    $errorMessage .= "<li>You forgot to enter your town.</li>";
  }
  if(empty($_POST['formEmail']))
  {
    $errorMessage .= "<li>You forgot to enter your email.</li>";
  }

    $varName = $_POST['formName'];
    $varTown = $_POST['formTown'];
    $varAge = $_POST['formAge'];
    $varEmail = $_POST['formEmail'];

    $varOne = $_POST['hidden-one'];
    $varTwo = $_POST['hidden-two'];
    $varThree = $_POST['hidden-three'];
    $varFour = $_POST['hidden-four'];
    $varFive = $_POST['hidden-five'];

    if(empty($errorMessage)) 
    {
        $fs = fopen("mydata.csv","a");
        fwrite($fs,"\n" . $varName . ", " . $varTown . ", " . $varAge . ", " . $varEmail . ", " . $varOne . $varTwo . $varThree . $varFour . $varFive);
        fclose($fs);

        header("Location: thankyou.php");
        exit;
    }
}
?>

1 Ответ

1 голос
/ 13 октября 2011

Очевидное решение состоит в том, чтобы регистрировать отправленные формы в базу данных.Для каждой отправки вы регистрируете время и идентификатор пользователя (IP-адрес, учетную запись Facebook и т. Д.).Эти данные можно использовать для проверки того, сколько раз пользователь отправил форму за последние 24 часа.Если это больше, чем X раз, вы не сохраняете данные и не информируете пользователя.

Но это решение предполагает, что у вас есть доступ к базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...