Автоматическая отправка формы.
<form name="authForm" id="authForm" method="post" action="www.servak.ru/index.asp">
<input type="hidden" name="ref" value="/">
<input type="hidden" maxlength="8" name="login" value="login">
<input type="hidden" maxlength="8" name="password" value="pass">
<input type="submit" name="submit1" >
</Form>
<script language="JavaScript" type="text/javascript">document.authForm.submit();</script>
Но, авторизация не проходит. Видимо, скрипт проверяет, отправлена ли форма кнопкой с именем
submit1
Как в скрипте передать такую байду?
<form name="authForm" id="authForm" method="post" action="www.servak.ru/index.asp">
<input type="hidden" name="ref" value="/">
<input type="hidden" maxlength="8" name="login" value="login">
<input type="hidden" maxlength="8" name="password" value="pass">
<input type="submit" name="submit1" >
</Form>
<script language="JavaScript" type="text/javascript">document.authForm.submit();</script>
Подробней напиши - ты это что же обходишь каким-то макаром эту кнопу - ...типа паука какого-то лепишь?!
А типа если послать запрос аля servak.ru/index.asp?submit1=true&... и тут еще куча всех этих переменных?
я не уверен, но попробуй..
Подробней напиши - ты это что же обходишь каким-то макаром эту кнопу - ...типа паука какого-то лепишь?!
А типа если послать запрос аля servak.ru/index.asp?submit1=true&... и тут еще куча всех этих переменных?
я не уверен, но попробуй..
Нет не жука, просто нужно с одного сайта перейти на другой, минуя процесс авторизации.
Предложеный подход, ты прав, неверен.
Есть форма, автоматически отправляющая имя пользователя и пароль скрипту удалённого сервера:
<form name="authForm" id="authForm" method="post" action="www.servak.ru/index.asp">
<input type="hidden" name="ref" value="/">
<input type="hidden" maxlength="8" name="login" value="login">
<input type="hidden" maxlength="8" name="password" value="pass">
<input type="submit" name="submit1" >
</Form>
<script language="JavaScript" type="text/javascript">document.authForm.submit();</script>
Но, авторизация не проходит. Видимо, скрипт проверяет, отправлена ли форма кнопкой с именем
submit1
Как в скрипте передать такую байду?
Попробуй так:
[COLOR=blue]<form name="authForm" id="authForm" method="post" action="www.servak.ru/index.asp"> <input type="hidden" name="ref" value="/"> <input type="hidden" maxlength="8" name="login" value="login"> <input type="hidden" maxlength="8" name="password" value="pass"> <input type="submit" name="submit1" >[COLOR=red]<script language="JavaScript" type="text/javascript">document.authForm.submit();</script>[/COLOR]</form>[/COLOR]
.
<input type="hidden" name="ref" value="/">
<input type="hidden" maxlength="8" name="login" value="login">
<input type="hidden" maxlength="8" name="password" value="pass">
[COLOR=red]<script language="JavaScript" type="text/javascript">document.authForm.submit();</script>[/COLOR]
</form>
а, что б под Netscape пахало, надо делать [COLOR=red]document.forms.["authForm"].submit()[/COLOR]
:}
Одна можь быть неувязочка, может быть скрипт на "том ресурсе" и ПОСЛЕ АВТОРИЗАЦИИ проверяет "referrer"`a, что в принципе маловероятно=) Наверное запихивает куку куда надо, или что-то в этом роде.. В общем ершение должно быть, 99%.. Думаю, примерно такое, как я предложил..=)
еслибы пораскинул мозгами и провел опыты то понялбы что:
1. при сабмите формы с помощью js реферрер передается
2. Метод получение страници как ты предложил вообще почти никогда не подходит.
2.1. Тот удаленный скрипт(тот кому нужно отправить данные и пройти авторизацию) ставит куки, наверняка, для дальшейшей работы.(хотя на это ты обратил внимание)
2.2. Если удаленный скрипт возращает не только заголовки и голый HTML но и подгружает рисунки, стили и прочее тебе либо нужно стаить <base либо править пути(они наверняка относительные хотябы сервера) либо их получать самим, если ты будеш править <base или пути еще не факт что удаленный сервер их(риссунки и прочее) отдаст(стандартная защита от хотлинка)
2.3. изменится IP я лично в таком случае считаю что сесиия потерена(хотя нужно не забывать о AOL)
3. проблемма скорее всего в том что во всех примерах вызывался submit() формы , а при этом значение кнопки submit не передовался(он передается только когда на неё кликают) поэтому нужно либо вызывать click() на кнопке либо создовать скрытое поля с именем и изначением данной кнопки
хотя моё мнение(не относящиеся к данному топику) отслеживать значения submit-кнопок очень плохая практика, череватая проблеммами
В принципе, сказал я все правильно, а ты указал на случаи, где этот метод "не подойдет".. Просто разжевывать всё "от и до" желания не было, зачем этот форум тогда нужен?=) Я считаю лучше просто подтолкнуть человека, а он, далее, если захочет, разузнает все нюансы и подробности, и сделает все как надо.. Если не поленится=)
"Но", касающееся ип-а, это да, может все попортить.. Ну, так надо сначала попробывать=) Может не отслеживает=) "Base" и все прочее подразумевались тут "3) получив ответ от ресурса, скрипт обрабатывает ответ, и выводит обратно юзеру..". Ну, а если не заработало бы, то нечего и дрыгаться=)
Самое нормальное решение - добавления hidden поля с нужными именем/значением, и все.
По поводу отслеживания значения submit - целиком и полность согласен=)
Удивительное свойство человека, пока не проявишь к нему агрессию, не покажет, что он вообще может=)
не тупость а банальное не знание(или не понимание) темы, пока они искали решение я молчал, разберутся не в первый раз,
пока ты не влез со своим '99%' методом решения, я решил вешатся, потом же будут говорить что им профи с code.net посоветовали
в данном случае твой способ почти 100% не подойдет, тем более есть более простые методы решения
если уж подталкивать человека, то в нужном направление а не куда ни будь
И почему вы все сразу кивнули на проверку субмита?=) Не понимаю..=) Вот ты, Alone, сам написал, что проверка на значение (наличие) субмит - темное дело..=) Ну так вот, раз уж оно темное, то его люди посообразительней не пользуют.. Я как пост увидел, сразу опдумал, наверное нужно авторизаваться на каком-нить серьезном ресурсе (или около того). Знач никаких субмитов.. А пчаму ж тогда не авторизует? Потому что "..." (имхо причины мы уже описали, хоть и не все).
И вообще, мне кажется тут не я/ты что-то от темы не понимаем, а ты не понимаешь меня, и я тебя, видимо..
Один про Фому, другой про Ерему=)
Кстати, сейчас перечитал на трезвую голову твой "тот-самый" пост.. И ничего не понял по поводу реферрера.. Само собой, что JS его передает, потому как браузер его должен (точнее так рекомендуют) передавать.. Я имел ввиду отослать НУЖНЫЙ реферрер.. То есть такой, какой отсылается при сабмите формы с оригинальной страницы логина удаленного ресурса. Да и ip вообще-то это спорный вопрос. Я вот его частенько не проверяю.. Потому как сам фанат диалапа, диалап штука не надежная, каждый раз заново логиница - неудобно, а куки - прошлый век..
В общем, разное у нас понимание устройства сессий и тому подобного.. Даже вот подход разный..=) Ты дожевал то, что они вот группой разбирали (проблема с submit), а я как бы другой метод решения привел.. Правда про 99% я явно переборщил, строго засомневавшись в submit`е=)
В общем, фигня это всё, ждем результата, надеюсь Ricon просигнализирует нам об успешном/неудачном решении проблемы.
Вместо
<input type="submit" name="submit1" >
я написал
<input type="hidden" name="submit1" >
Всё съелось и заработало.
Всем большое спасибо.