Ответы пользователя по тегу JavaScript
  • Как передавать значение чекбоксов и выбранных файлов на почту?

    @dtBlack
    Есть несколько замечаний:
    1. Узнайте что такое $_REQUEST
    2. Присмотритесь к именам полей ввода в верстке, разберитесь что значит name="file[]" и что в итоге будет в поле $_POST['file'].
    spoiler
    Там будет массив, на что указывают [] в имени

    3. Обрабатывайте все данные пришедшие от пользователя, и только потом используйте.
    4. Познакомьтесь с функцией print_r или var_dump для просмотра того что у вас в переменой. print_r будет полезней из-за второго параметра.

    Насчет спама, все очень сложно, нужно читать про фильтры спама и тп. Так же полезно поискать такую информацию на этом сайте. Например IP адрес вашего сайта может быть в черном списке спамеров, что часто бывает на недорогих хостингах.
    Ответ написан
    Комментировать
  • Как после "10" вызовов function write() в сек, блокировать её на "10мин"?

    @dtBlack
    Примерный код для ограничения по пользователю на сервере:
    На стороне браузера примерно то же самое но использовать куки
    //Проверяем наличие блокировки и время с ее выставления
            //В $_SESSION['blocked-write'] храним время выставления блокировки
            $time = time();
            if (isset($_SESSION['blocked-write']) && $_SESSION['blocked-write'] > 0){
                if (($time - $_SESSION['blocked-write'] <= 600)){
                    return null;
                }else{
                    $_SESSION['blocked-write'] = 0;
                }
            }
            //$_SESSION['time-write'] - храним секунду для которой считаем количество
            //$_SESSION['count-write'] - количество срабатываний
            //Проверили какую секунду считаем
            if ($_SESSION['time-write'] == $time){
                $_SESSION['count-write']++;
                if ($_SESSION['count-write'] >= 10){
                    $_SESSION['blocked-write'] = $time;
                }
            }else{
                $_SESSION['time-write'] = $time;
                $_SESSION['count-write'] = 1;
            }


    PS: Вместо сессии можно использовать любое хранилище, хоть файл)
    Ответ написан
    Комментировать