POST запросы и авторизация.

 
0
 
Delphi, Kylix & Pascal
ava
okupa | 27.03.2013, 14:53


procedure TForm1.Button1Click(Sender: TObject);
var
auth:tstringlist;
bufer:string;
begin
auth:= tstringlist.Create;
auth.add('login='+edit1.Text);
auth.add('passw='+edit2.Text);
bufer:=idhttp1.post('http://chatter.ru/cgi/login', auth);
memo1.Lines.Add(bufer);
end;

end.



Что делаю нетак?
неприходит результат со страницы...
Kommentare (9)
ava
Frees | 28.03.2013, 12:22 #
а что у тебя в ответе, проверил твой код получил


<html>
<script type="text/javascript">alert('Ошибка авторизации: \x0Aнеправильный логин или пароль')</script>
<head>
 <meta http-equiv="Content-type" content="text/html; charset=windows-1251" />
 <meta http-equiv="Content-Language" content="ru" />
 <title>Ошибка авторизации - Chatter.RU</title>
 <style type="text/css">
BODY,TD {font-family: Arial;}
 </style>
<script language="JavaScript" type="text/javascript">/* <![CDATA[ */
    if (window.captureEvents) {
        window.captureEvents(Event.CLICK | Event.KEYPRESS | Event.MOUSEMOVE);
        window.onclick = presentHandler;
        window.onkeypress = presentHandler;
        window.onmousemove = presentHandler;
    } else {
        document.onclick = presentHandler;
        document.onkeypress = presentHandler;
        document.onmousemove = presentHandler;
    }
    fired = 0;

    function presentHandler(e) {
        if (fired) return true;
        fired = 1;

        var xmlhttp = getXmlHttp()
        xmlhttp.open('GET', '/hit/079DE4B6060184B58C889608978A68BD/MTM2NDQ2MjQ4MV81MTY0MzE3MTA=', true);
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4) {
                if(xmlhttp.status == 200) {
                    i = 1;
                }
            }
        };
        xmlhttp.send(null);
        return true;
    }

    function getXmlHttp(){
        var xmlhttp;
        try {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (E) {
                xmlhttp = false;
            }
        }

        if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
            xmlhttp = new XMLHttpRequest();
        }
        return xmlhttp;
    }
/* ]]> */</script></head>
<body>
<table width="100%" height="100%">
<tr>
 <td align="center">
 <table cellspacing="2" cellpadding="20" bgcolor="#FF0000">
 <tr><td align="center" style="padding: 5px 20px 5px 20px"><font face="Arial" color="#FFFFFF"><b>ОШИБКА АВТОРИЗАЦИИ</b></font></td></tr>
 <tr><td align="center" bgcolor="#FFFFFF">неправильный логин или пароль</td></tr>
 </table>
 <br><a href="/"><font color="#0000FF">Назад</font></a>
 </td>
</tr>
</table>
</body>
</html>

ava
Frees | 28.03.2013, 12:25 #
а что у тебя в ответе, проверил твой код получил


<html>
<script type="text/javascript">alert('Ошибка авторизации: \x0Aнеправильный логин или пароль')</script>
<head>
 <meta http-equiv="Content-type" content="text/html; charset=windows-1251" />
 <meta http-equiv="Content-Language" content="ru" />
 <title>Ошибка авторизации - Chatter.RU</title>
 <style type="text/css">
BODY,TD {font-family: Arial;}
 </style>
<script language="JavaScript" type="text/javascript">/* <![CDATA[ */
    if (window.captureEvents) {
        window.captureEvents(Event.CLICK | Event.KEYPRESS | Event.MOUSEMOVE);
        window.onclick = presentHandler;
        window.onkeypress = presentHandler;
        window.onmousemove = presentHandler;
    } else {
        document.onclick = presentHandler;
        document.onkeypress = presentHandler;
        document.onmousemove = presentHandler;
    }
    fired = 0;

    function presentHandler(e) {
        if (fired) return true;
        fired = 1;

        var xmlhttp = getXmlHttp()
        xmlhttp.open('GET', '/hit/079DE4B6060184B58C889608978A68BD/MTM2NDQ2MjQ4MV81MTY0MzE3MTA=', true);
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4) {
                if(xmlhttp.status == 200) {
                    i = 1;
                }
            }
        };
        xmlhttp.send(null);
        return true;
    }

    function getXmlHttp(){
        var xmlhttp;
        try {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (E) {
                xmlhttp = false;
            }
        }

        if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
            xmlhttp = new XMLHttpRequest();
        }
        return xmlhttp;
    }
/* ]]> */</script></head>
<body>
<table width="100%" height="100%">
<tr>
 <td align="center">
 <table cellspacing="2" cellpadding="20" bgcolor="#FF0000">
 <tr><td align="center" style="padding: 5px 20px 5px 20px"><font face="Arial" color="#FFFFFF"><b>ОШИБКА АВТОРИЗАЦИИ</b></font></td></tr>
 <tr><td align="center" bgcolor="#FFFFFF">неправильный логин или пароль</td></tr>
 </table>
 <br><a href="/"><font color="#0000FF">Назад</font></a>
 </td>
</tr>
</table>
</body>
</html>

ava
okupa | 28.03.2013, 15:18 #
Цитата (Frees @ 28.3.2013,  12:25)
а что у тебя в ответе, проверил твой код получил





<html>

<script type="text/javascript">alert('Ошибка авторизации: \x0Aнеправильный логин или пароль')</script>

<head>
  <meta http-equiv="Content-type" content="text/html; charset=windows-1251" />
  <meta http-equiv="Content-Language" content="ru" />
  <title>Ошибка авторизации - Chatter.RU</title>
  <style type="text/css">
  BODY,TD {font-family: Arial;}
  </style>

<script language="JavaScript" type="text/javascript">/* <![CDATA[ */
  if (window.captureEvents) {
    window.captureEvents(Event.CLICK | Event.KEYPRESS | Event.MOUSEMOVE);
    window.onclick = presentHandler;
    window.onkeypress = presentHandler;
    window.onmousemove = presentHandler;
  } else {
    document.onclick = presentHandler;
    document.onkeypress = presentHandler;
    document.onmousemove = presentHandler;
  }
  fired = 0;


  function presentHandler(e) {
    if (fired) return true;
    fired = 1;


    var xmlhttp = getXmlHttp()
    xmlhttp.open('GET', '/hit/079DE4B6060184B58C889608978A68BD/MTM2NDQ2MjQ4MV81MTY0MzE3MTA=', true);
    xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState == 4) {
     if(xmlhttp.status == 200) {
      i = 1;
     }
    }
    };
    xmlhttp.send(null);
    return true;
  }


  function getXmlHttp(){
    var xmlhttp;
    try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    try {
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
     xmlhttp = false;
    }
    }


    if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
    }
    return xmlhttp;
  }

/* ]]> */</script></head>

<body>

<table width="100%" height="100%">

<tr>
  <td align="center">
  <table cellspacing="2" cellpadding="20" bgcolor="#FF0000">
  <tr><td align="center" style="padding: 5px 20px 5px 20px"><font face="Arial" color="#FFFFFF"><b>ОШИБКА АВТОРИЗАЦИИ</b></font></td></tr>
  <tr><td align="center" bgcolor="#FFFFFF">неправильный логин или пароль</td></tr>
  </table>
  <br><a href="/"><font color="#0000FF">Назад</font></a>
  </td>

</tr>

</table>

</body>

</html>


Спасибо за ответ. Я сам в свойствах IDHTTP непроставил нужные значения для заголовка)
Теперь ответ приходит (авторизовался или нет).
но с куками чтото нето, всмысле когда авторизовываюсь приходит ответ что авторизовался,  делаю запрос

memo1.lines.Add(idhttp1.get('http://chatter.ru/chat/'));


после вторизации удачной и приходит ответ что типа нужно авторизоваться, слетает авторизация почемуто....
idHTTP cookie manager присвоил idCookiemanager в свойствах, AllowCookies- True



Подскажите, пожалйста, что нетак делаю...
ava
Frees | 28.03.2013, 16:23 #
А тут чтобы понять как сохранять авторизацию надо валидный логин пароль, и смотреть какие данные с сервера приходят и что уходит, когда с браузера логинишся.
ava
okupa | 28.03.2013, 16:34 #
Цитата (Frees @ 28.3.2013,  16:23)
А тут чтобы понять как сохранять авторизацию надо валидный логин пароль, и смотреть какие данные с сервера приходят и что уходит, когда с браузера логинишся.

Разобрался уже с куки менеджером....

Ошибка была в запросе


memo1.lines.Add(idhttp1.get('http://chatter.ru/chat/'));


добавал www


memo1.lines.Add(idhttp1.get('http://www.chatter.ru/chat/'));


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

Спасибо за ответы)
Надеюсь поможете еще в дальнейшем т.к. только начинаю писать клиента этого) и столкнусь еще с проблемами.
ava
okupa | 29.03.2013, 14:19 #
чтото непойму как работает этот чат, делаю post запрос на вход в комнату, приходит ответ что зашел типа, но в комнате невидно ника....

Такое ощущение что нужно постоянно и очень-очень часто делать запросы чтобы видеть переписку в чате.

Неразберусь по какому принципу работает этот чат...

может кто знает??? 
ava
okupa | 29.03.2013, 20:29 #
никто незнает???
ava
okupa | 30.03.2013, 18:40 #
этот чат на ajax помойму, я в этом неразбираюсь...

подскажите как со скриптами работать? может компонент есть какой?
ava
Akella | 31.03.2013, 16:37 #
Есть IE, chromiun, gecko
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
ava  Akella   Frees   okupa
advanced
Absenden