[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: как получить изменённую скриптами страницу?
Страницы: 1, 2
sapphire08
Цитата (Altai @ 11.12.2015 - 20:17)
Мне на другом форуме дали рабочий авторизатор. Вот код:

Огромнейшее спасибо!!! Работает, только с кодировкой в хроме у меня проблема, но это разберусь исправлю.
Еще раз спасибо!
Invis1ble
отличные программисты! только на фл ру! спешите!

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Игорь_Vasinsky
Цитата
только с кодировкой в хроме у меня проблема,

Цитата
отличные программисты! только на фл ру! спешите!


в такой последовательности ваще охеренно - как пиар ход смотрится biggrin.gif

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
sapphire08
Хаха, остроумно) но я по образованию не программист, этим не зарабатываю, а освоил "для себя" на уровне "допиливания" opencart и написания несложных парсеров. А вот парсеры для сбора инфы - это уже другая история, зачем мне.

Не все участники php форумов - фрилансеры и программисты wink.gif
Игорь_Vasinsky
sapphire08
а чё отмазываешься ?
а ну давай свой линк на профиль!

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Nikel
Цитата (Altai @ 11.12.2015 - 20:17)
sapphire08
Мне на другом форуме дали рабочий авторизатор. Вот код:
Только что проверил, всё работает

Спасибо что поделились, всё утро промудохался с авторизацией.
Обернул логин в еще одну функцию, для удобства нескольких авторизаций.


login('https://www.fl.ru', 'логин', 'пароль');

function login($site, $login, $password) {

/* получаем сессию */
$result = getURL($site);
$cookie = $result['set_cookie'];

/* формируем post запрос */
$post = array(
'autologin' => '1',
'login' => $login,
'passwd' => $password,
'u_token_key' => preg_replace('/(^.+TOKEN_KEY = \')(\w+)(\'.+$)/s', '$2', $result['content']) // получаем TOKEN_KEY
);

/* авторизуемся */
$result = getURL($site . '/login/', $cookie, $post);

/* сохраняем полученные куки, для последующих запросов на сайт... */
$cookie = $result['set_cookie'];

/* для наглядности успешной авторизации - выводим в браузер страницу с проектами */
echo $result['content']; // [можно убрать]
}

function getURL($url, $cookie = false, $post = false, $timeout = 30, $maxRedirs = 3)
{
$ch = curl_init();
$header[] = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: 300";
$header[] = "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3";
$header[] = "Pragma: ";
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0");
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
if ($cookie) {
if (is_array($cookie)) {
foreach($cookie as $key => $value ) {
$cookieString[] = "{$key}={$value}";
};
$cookie = implode('; ', $cookieString);
}
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
}
if ($post){
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
$content = curl_exec($ch);
$response = curl_getinfo($ch);
curl_close ($ch);
if ($content) {
preg_match_all('/^Set-Cookie:\s*([^;]*)/mi', $content, $match);
$setCookie = array();
if ($match[1]) {
foreach($match[1] as $setCookieString) {
parse_str($setCookieString, $setCookieUnit);
$setCookie = array_merge($setCookie, $setCookieUnit);
}
$cookie = is_array($cookie) ? array_merge($cookie, $setCookie) : $setCookie;
}
}

if (($response['http_code'] == 301 || $response['http_code'] == 302) AND $maxRedirs)
if ($response['redirect_url'])
return getURL($response['redirect_url'], $cookie, $post, $timeout, --$maxRedirs);
if ($content) {
return array(
'set_cookie' => $cookie,
'response' => $response,
'content' => $content
);
} else
return
false;
}

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.