Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.08.2010, 14:56   #1
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию Не могу авторизоваться на сайте(WinInet)

Помогите пожалуйста с авторизацией на сайте.

Есть сайт hockeyarena.net. На нём форма

Код HTML:
<form name="login" method="post" action="index.php?p=security_log.php" target="">
   <INPUT TYPE="text" id='nick' NAME="nick" SIZE="15" class="nice">
   <INPUT TYPE="password" NAME="password" SIZE="15" class="nice">
   <input name="submit" type="submit" value="Зайти в свою команду" class="button">
</form>
С помощью браузера прошел авторизацию и проследил в снифере, получил вот что

Цитата:
Host=www.hockeyarena.net
User-Agent=Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8
Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language=en-us,en;q=0.5
Accept-Encoding=gzip,deflate
Accept-Charset=ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive=115
Connection=keep-alive
Referer=http://www.hockeyarena.net/ru/index.php
Cookie=__utma=229377541.1911289248. 1266001033.1281940038.1281942470.27 6; __utmz=229377541.1269606385.98.3.ut mccn=(referral)|utmcct=/away.php|utmcmd=referral; halang=ru; PHPSESSID=5v8pc0h6gddhvijfh7v11c14c 4; __utmc=229377541; __utmb=229377541\n"
Content-Type=application/x-www-form-urlencoded
Content-Length=143
POSTDATA=nick=Ozerich&password=1234 5678&submit=%D0%97%D0%B0%D0%B9%D1%8 2%D0%B8+%D0%B2+%D1%81%D0%B2%D0%BE%D 1%8E+%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD %D0%B4%D1%83

и результат 301 Moved Permanently(переадресация на другую страницу)

Пишу код на С++ с использованием WinInet

Код:

char PARAMS[144] = "nick=Ozerich&password=12345678&submit=%D0%97%D0%B0%D0%B9%D1%82%D0%B8+%D0%B2+%D1%81%D0%B2%D0%BE%D1%8E+%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%83";

char HEADERS[] = 
"Host: www.hockeyarena.net\n"
"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8\n"
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\n"
"Accept-Language: en-us,en;q=0.5\n"
"Accept-Encoding: gzip,deflate\n"
"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\n"
"Keep-Alive: 115\n"
"Connection: keep-alive\n"
"Referer: http://www.hockeyarena.net/ru/index.php?p=security_log.php\n"
"Cookie: __utma=229377541.1911289248.1266001033.1281940038.1281942470.276; __utmz=229377541.1269606385.98.3.utmccn=(referral)|utmcct=/away.php|utmcmd=referral; halang=ru; PHPSESSID=5v8pc0h6gddhvijfh7v11c14c4; __utmc=229377541; __utmb=229377541\n"
"Content-Type: application/x-www-form-urlencoded\n"
"Content-Length: 143";

int main(int argc, char **argv)
{
    bool ok = false;

    //Инициализация WinInet
    HINTERNET hInternet = InternetOpen(AGENT,INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0);
    int k = sizeof(HEADERS);
    if(hInternet != NULL)
    {
        //открытие HTTP сессии
        HINTERNET hConnect = InternetConnect(hInternet, "www.hockeyarena.net", INTERNET_DEFAULT_HTTP_PORT,
            NULL, NULL, INTERNET_SERVICE_HTTP,0 , 1);
        if(hConnect != NULL)
        { 
            //Открытие запроса
            HINTERNET hRequest = HttpOpenRequest(hConnect, "POST","ru/index.php?p=security_log.php",NULL,NULL,0,
                INTERNET_FLAG_KEEP_CONNECTION,1);
            if(hRequest != NULL)
            {
                //Отправка запроса
                bool bSend = HttpSendRequest(hRequest, HEADERS, sizeof(HEADERS) , PARAMS, sizeof(PARAMS));
                if(bSend)
                {
                    ofstream fout("index.html", ios::out|ios::binary);
                    if(fout.is_open())
                    {
                        for(;;)
                        {
                            char szData[1024];
                            DWORD dwBytesRead;
                            bool bRead = InternetReadFile(hRequest,szData,sizeof(szData) - 1,&dwBytesRead);
                            if(bRead == false || dwBytesRead == 0)
                                break;
                            szData[dwBytesRead] = 0;
                            fout << szData;
                            ok = true;
                        }
                    }
                }
                InternetCloseHandle(hRequest);
            }
            InternetCloseHandle(hConnect);
        }
        InternetCloseHandle(hInternet);
    }
    if(ok)
        system("start index.html");
    return 0;
}
Запускаю программу и отслеживаю с помощью снифера, результат 400 Bad Request. Если вместо HEADERS передавать NULL то возвращает 200 ОК но надо еще как то переадресовать дальше!
Нужна помощь!
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TidHTTP - не могу залогиниться на сайте Usov Работа с сетью в Delphi 17 30.10.2009 05:43
Авторизоваться на IP.B Kottik Работа с сетью в Delphi 19 21.08.2009 23:13
Не могу сделать несколько переходов на своем сайте fanny Помощь студентам 4 26.09.2008 18:13
Как авторизоваться на сайте? AngelOfDeath Работа с сетью в Delphi 5 22.09.2008 12:35
Не могу авторизоваться на HTTPS Yuran Работа с сетью в Delphi 11 18.04.2008 14:19