2014-08-04 5 views
0

Мне нужна помощь в понимании того, почему использование форм не работает на определенных веб-сайтах. Here - пример, а код ниже. Я пытаюсь заполнить текстовую область, но это не сработает. Я уверен, что есть простое правило, которое я забываю, любая помощь будет оценена по достоинству.Заполнение веб-формы с использованием метода Post

<form action="http://www.boxer.senate.gov/en/contact/policycomments.cfm" method="post" target="_blank" > 
<input type="submit" name="firstName" value="test"> 
</form> 
+0

errr ... вы пытаетесь затопить вложенный почтовый ящик сенатора? :-) – Leo

+0

Я думаю, вам нужно использовать firebug, чтобы увидеть, что отправляется при отправке формы на сайт, поэтому вы можете найти все необходимые переменные и заголовки, используемые в обычной форме. – Leo

+0

конечно нет! Мне просто интересно, как заполнять поля, и этот сайт был уникальным примером, где он не работал. –

ответ

0

Поскольку определенные веб-сайты отклоняют опубликованные данные, которые не были получены с их сервера. Причина, по которой они делают это, заключается в уменьшении количества спама. В HTML нет ничего плохого.

# block comment spam by denying access to no-referrer requests 
RewriteEngine On 
RewriteCond %{REQUEST_METHOD} POST 
RewriteCond %{HTTP_REFERER} !.*yourwebsite.com.* [OR] 
RewriteCond %{HTTP_USER_AGENT} ^$ 
RewriteRule ^(.*)$ ^http://the-site-where-you-want-to-send-spammers.com/$ [R=301,L] 

Простым методом будет форма из двух частей.

+0

Это имеет смысл, спасибо. Разве это не должно быть стандартом? Кажется, что существует немало сайтов, которые не мешают этому. Кроме того, что вы подразумеваете под формой из двух частей? –

+0

Twitter, безусловно, хочет разрешить это, потому что он получает другие веб-сайты для отправки им трафика. Форма из двух частей будет представлять страницу 1, а затем отправить страницу 2. Page 2 появляется только сообщение со страницы 1, а скрытое текстовое поле может застраховать его от одного и того же пользователя. Проблема с методом referer в сообщении - это HTTPS-серверы, которые не предоставляют референт. – Wayne

1

необходимо использовать язык для возврата данных.

Если вы отправляете эту форму в файл .php ... затем в PHP указать:

$firstName = $_POST['firstName']; 
$echo $firstName; 

Это напечатает «тест» в окне документа.

Смежные вопросы