Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
Существует все еще большое количество людей, которые работают с выключенным JavaScript.
С другой стороны, я имел достойный успех с останавливающимся спамом формы с помощью CSS. В основном включайте поле ввода и маркировку, которая скрыта с помощью CSS (display: none;
) и когда-то отправленный, проверьте, было ли что-нибудь введено в поле.
Я обычно маркирую поле как спам-фильтр с инструкцией не поместить что-либо в поле, но все более новые браузеры правильно скроют блок.
reCAPTCHA также удивительно легко реализовать.
проверьте http://kahi.cz/wordpress/ravens-antispam-plugin/ на хороший ответ
если вставляет
<noscript><p><label for="websiteurl99f">Please type "e73053": </label><input type="text" name="websiteurl99f" id="websiteurl99f" /></p></noscript>
<script type="text/javascript">/* <![CDATA[ */ document.write('<div><input type="hidden" name="websiteurl99f" value="e' + '73053" \/><\/div>'); /* ]]> */</script>
таким образом, пользователи JavaScript видят, что ничто, не js пользователи просто не вводит, одним словом,
если спаммер будет нацелен на Вас конкретно, то это не займет у них много времени для кодирования вокруг него, но для диска спаммерами это должно быть хорошо
Вы могли проверить - имеют JavaScript, который заполняет скрытое поле формы с определенным значением после загрузок страницы. Затем когда страница отправит назад на сервер, проверьте что скрытое поле формы математическое ожидание. Если это не там, который означает, что JavaScript не выполнился.
Относительно того, необходимо ли принять, это - спам, другая история в целом и та, которая не имеет никакого определенного ответа, действительно. У Вас мог просто быть a <noscript>
отметьте и имейте его, указывают пользователю, что их представление не возьмет, если они не включат JavaScript.
После того как у Вас есть выполнение JavaScript, однако, спаммеры будут просто использовать другое обходное решение для этого.:)
В том же духе добавление фиктивного поля и затем использование CSS для сокрытия его являются хорошим способом обмануть ботов. Если поле отправлено, Вы знаете, что нечеловек, вероятно, заполнил форму.
Особенно эффективный, если Вы маркируете/называете поле чем-то вроде URL или веб-сайта.
Я не могу помнить, где я видел этот метод, но ботам спама нравится заполнять формы. Вы рассмотрели помещение поля формы, которое скрыто с JavaScript (и говорит, не заполняют это поле, если у пользователя нет JavaScript). Таким образом, если что-то заполняет это поле, можно проигнорировать его как спам.
Тебе повезло с этим? Я думаю, что в некоторых текстовых браузерах реализована базовая поддержка JavaScript, так что, может быть, у спам-ботов тоже есть?
В противном случае я рассматриваю возможность использования капчи для пользователей без JavaScript и некоторой автоматической проверки JavaScript для других пользователей.