Я пытаюсь создать программу с Javascript, которую я могу использовать для автоматического входа на веб-сайты. Веб-сайт, на котором я тестирую это ATT, так как я пытаюсь войти и посмотреть на мой счет за мобильный телефон. Когда я запускаю программу, указанную ниже, я перехожу на страницу ATT, где говорится, что в настоящее время они выполняют техническое обслуживание, и пытается повторить попытку позже. Я знаю, что это неверно, так как мне удалось войти через несколько секунд. У меня нет большого опыта работы с javascript, и большая часть этого кода была взята из других онлайн-источников, поэтому я не уверен, что мне не хватает чего-то, что нужно включить, или это просто факт, что ATT использует некоторые другой тип входа, с которым не работает этот код. Я попытался просмотреть исходный код страниц и не увидел ссылки на какую-либо форму, не зная, имеет ли это значение для данной конкретной ситуации.

Вот код:

<HTML>
    <HEAD>
      <TITLE>Login</TITLE>
      <script>
         <!--
           function login() {
           document.form1.action="https://www.att.com/";
           document.form1.submit();
          }
         //-->
      </script>
   </HEAD>
   <BODY onLoad="login()">
      <FORM NAME="form1" id=form1 METHOD="POST">
        <INPUT TYPE="hidden" NAME="userid" VALUE="Username">
        <INPUT TYPE="hidden" NAME="password" VALUE="Password">
        <input type="hidden" name="reqURI" value="/rhwc/smu">
      </FORM>
   </BODY>
</HTML> 
-3
Jcmoney1010 17 Дек 2015 в 22:01

3 ответа

Лучший ответ

Вы можете сделать это, я попробовал, и это работает:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=10" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
<title>Test</title>
</head>
<body>
<form method="post" action="https://www.att.com/olam/loginAction.olamexecute">
Username:<input type="text" name="wireless_num"/>
Password:<input type="password" name="pass"/>
<input type="hidden" value="YES" name="rememberme"/>
<input type="hidden" value="dotComLogin" name="actionEvent"/>
<input type="submit" value="Submit"/>
</form>
<script>
</script>
</body>
</html>
1
brso05 17 Дек 2015 в 19:22

Атрибуты id и name не совпадают. Это атрибут name поля ввода, который будет отправлен вместе со значением, которое вы вводите.

Если вы осмотрите поле User ID, вы увидите следующий HTML-код:

<input id="userid" class="text" name="wireless_num" ...>

В своем коде вы вводите имя пользователя под именем «идентификатор пользователя». Тем не менее, он должен быть представлен под 'wireless_num'.

0
Block 17 Дек 2015 в 19:06
  1. Неправильные имена
    name элементов <input> не совпадают с именами на сайте ATT. Сервер не будет ожидать ваших имен и не будет обрабатывать данные в этих полях.

  2. Неправильные действия (вероятно)
    Я почему-то сомневаюсь, что серверный скрипт, который обрабатывает логины на сайте ATT, находится на домашней странице. Скорее всего, это /login или /log-in и т. Д. Если вы поместите форму в неправильный скрипт, то никакие данные не будут обработаны, и вы не войдете в систему.

1
ArtOfCode 17 Дек 2015 в 19:06