Страница 1 из 1
Вход на сайт с помощью php
Добавлено: Ср окт 08, 2014 7:55 pm
nick7zmail
Извиняюсь, если было, но в гугле в справке по пхп не нашел...точнее нашел нечто подобное, но не то =).
Вообщем вопрос - можно ли сделать вход на сайт (ну и понятное дело - вытащить инфу) , где нужно вводить логин и пароль? То есть не как в мд выдается логин и пароль во всплывающем окне, а именно в http форме.
Re: Вход на сайт с помощью php
Добавлено: Чт окт 09, 2014 10:28 am
sergejey
Re: Вход на сайт с помощью php
Добавлено: Пн окт 27, 2014 8:59 pm
nick7zmail
Долго бился над этим примером...даже залогинится не могу, не то что данные какие то запросить - при запуске скрипта с использованием curl вылетает страница в ромбиках с вопросами. Не скрин не код пока не могу прислать, завтра выложу. Может библиотеки самой не хватает? У кого нибудь есть рабочие примеры??
Re: Вход на сайт с помощью php
Добавлено: Вт окт 28, 2014 12:50 am
LutsenkoDenis
есть

Re: Вход на сайт с помощью php
Добавлено: Ср окт 29, 2014 10:38 am
nick7zmail
LutsenkoDenis писал(а):есть

Уважаемый LutsenkoDenis, я так полагаю примеры у Вас в системе? В таком случае можно ссылочку на коннект?
Re: Вход на сайт с помощью php
Добавлено: Чт окт 30, 2014 2:00 am
LutsenkoDenis
Краткая инструкция:
Я положил созданный в п.1 файл в папку /lib, т.к. в этом случае класс подгрузится в систему автоматически.
Если не положить файл в папку /lib, то перед использованием необходимо его подключить: requere_once('путь к файлу');
1. Создать файл http_request.class.php следующего содержания:
Код: Выделить всё
<?php
/**
* http_request short summary.
*
* http_request description.
*
* @version 1.0
* @author LDV
*/
class http_request
{
/**
* Path to cookie file
* @var string
*/
var $cookie;
/**
* Web page url
* @var string
*/
var $url;
/**
* Data to post request
* @var string
*/
var $postData;
var $proxy;
var $proxyStatus;
var $useSSL = false;
var $userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11";
/**
* Set cookie file for store logn session
* @param string $cookieFile
* @return boolean
*/
function SetCookieFile()
{
$fp = fopen($this->cookie, "w");
fclose($fp);
if (!file_exists($this->cookie))
{
DebMes("Can't create cookie file");
return false;
}
return true;
}
/**
* Get page content
* @return mixed
*/
function GetPageContent()
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // возвращает веб-страницу
if($this->proxyStatus == 'on' && $this->proxy !== '')
{
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE); //
curl_setopt($ch, CURLOPT_PROXY, $this->proxy); //
}
if ($this->cookie !== '' && is_file($this->cookie))
{
curl_setopt($ch, CURLOPT_COOKIEFILE, $this->cookie);
}
if ($this->useSSL)
{
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
}
curl_setopt($ch, CURLOPT_URL, $this->url);
ob_start();
return curl_exec($ch);
ob_end_clean();
curl_close();
}
/**
* WebsiteLogin
* @param string Page Url
* @param string Cookie file
* @param string Data for post request
* @param string proxy
* @param string $proxyStatus on/off
* @return
*/
function GetAuthPageContent()
{
$login = curl_init();
curl_setopt($login, CURLOPT_COOKIEJAR, $this->cookie);
curl_setopt($login, CURLOPT_COOKIEFILE, $this->cookie);
curl_setopt($login, CURLOPT_USERAGENT, $this->userAgent);
curl_setopt($login, CURLOPT_TIMEOUT, 40); // таймаут ответа
curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE); // возвращает веб-страницу
if($this->proxyStatus == 'on')
{
curl_setopt($login, CURLOPT_HTTPPROXYTUNNEL, TRUE); //
curl_setopt($login, CURLOPT_PROXY, $proxy); //
}
curl_setopt($login, CURLOPT_URL, $this->url);
curl_setopt($login, CURLOPT_HEADER, TRUE); // не возвращает заголовки
curl_setopt($login, CURLOPT_USERAGENT, $this->userAgent); // useragent
curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE); // переходит по редиректам
curl_setopt($login, CURLOPT_POST, TRUE); //
curl_setopt($login, CURLOPT_POSTFIELDS, $this->postData); //
if ($this->useSSL)
{
curl_setopt($login, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($login, CURLOPT_SSL_VERIFYHOST, FALSE);
}
ob_start();
return curl_exec($login);
ob_end_clean();
curl_close($login);
unset($login);
}
function Test()
{
return "test!";
}
}
2. В том месте, где нужно получить страницу защищенную паролем использовать следующий код:
Код: Выделить всё
// обращаемся к классу
$wr = new http_request();
// сайт использует SSL (true/false)
$wr->useSSL = true;
// печенька(cookie) в которую сохраняются параметры сессии.
$wr->cookie = "cookie2.txt";
//урл сайта на который нужно войти
$wr->url = "https://mySite.org/";
// данные, необходимые для входа на сайт. Передаются post-запросом.
$wr->postData = 'login=demo&pass=123456';
// создание печеньки
$wr->SetCookieFile();
//осуществляем вход на сайт
$wr->GetAuthPageContent();
// получаем контент сайта. Если необходимо получить данные с любой страницы, а не только с главной, то нужно заново указать его
$pageContent = $wr->GetPageContent();
// выводим полученный контент. дальнейшую обработку полученной страницы не привожу,т.к. это индивидуально для каждой страницы.
print_r($pageContent);