Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (13) « Первая ... 10 11 [12] 13  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Авторизация с помощью CURL, На примерах
apdate  
[x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 350
Пользователь №: 40396
На форуме: 2 года, 8 месяцев, 11 дней
Карма: -2




прописал вот так


<?php
error_reporting(E_ALL);
if (isset($_POST['submit']))
{
if(empty($_POST['username']))
{
echo 'no login';
}
elseif(empty($_POST['password']))
{
echo 'no pass';
}
else
{
$login = $_POST['username'];
$password = $_POST['password'];
// echo $login;
// echo $password;

}
}

// логин и пароль
$login = $login; // Логин
$pass = $password; // Пароль

// Создаем подключение

if( $curl = curl_init() ){
//echo('hello1');
// Нужно загрузить главную страницу

curl_setopt($curl,CURLOPT_URL,'https://billing.apdate.by/billmgr?');

// Нужно помнить кукисы!
curl_setopt($curl, CURLOPT_COOKIESESSION, TRUE);
curl_setopt($curl, CURLOPT_COOKIEFILE, "cookiefile");

// Скачанный код возвращаем в переменную а не в поток
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);

// "Следовать туда, куда зовут". Если сервис выдает 302 код, мы следуем по этой ссылке
curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true);

// Таймаут, если сервис не отвечает больше 30 секунд, выходим
curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,30);

// Активируем GZIP сжатие трафика
curl_setopt($curl,CURLOPT_ENCODING,'gzip,deflate');

// напишем в юзер-агент неправду
curl_setopt( $curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1' );

// Если все ок, в $html вернется html код главной страницы
// if( $html = curl_exec($curl) ){

///echo('hello2');
// Указываем куда отправлять запрос
curl_setopt($curl,CURLOPT_URL,'https://billing.apdate.by/billmgr?');

// Указываем подключению, что слать нужно не GET (по умолчанию), а POST запросы
curl_setopt($curl,CURLOPT_POST,false);

// Отправляется массив, он сам его "разберет"
$send_form = array(
'username' => $login,
'password' => $pass,
'func' => 'auth'
);

curl_setopt($curl,CURLOPT_POSTFIELDS, $send_form );

$return_curl_info = curl_getinfo($curl);
$result = curl_exec($curl);
$return_curl_info = curl_getinfo($curl);

// вывести результат
var_dump($result);

echo "============= INFO ==============<br>\n";
var_dump($return_curl_info );

// Закрываем подключение, очищаем память
curl_close($curl);
// }
}


?>

толку нет но на экране появилась инфа

что дальше делать авторизации как небыло так и нет (
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
apdate  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 350
Пользователь №: 40396
На форуме: 2 года, 8 месяцев, 11 дней
Карма: -2




вот инфа
bool(false) ============= INFO ==============
array(22) { ["url"]=> string(34) "https://billing.apdate.by/billmgr?" ["content_type"]=> NULL ["http_code"]=> int(0) ["header_size"]=> int(0) ["request_size"]=> int(0) ["filetime"]=> int(-1) ["ssl_verify_result"]=> int(0) ["redirect_count"]=> int(0) ["total_time"]=> float(0.032) ["namelookup_time"]=> float(0) ["connect_time"]=> float(0.032) ["pretransfer_time"]=> float(0) ["size_upload"]=> float(0) ["size_download"]=> float(0) ["speed_download"]=> float(0) ["speed_upload"]=> float(0) ["download_content_length"]=> float(-1) ["upload_content_length"]=> float(-1) ["starttransfer_time"]=> float(0) ["redirect_time"]=> float(0) ["certinfo"]=> array(0) { } ["redirect_url"]=> string(0) "" }
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
apdate  
[x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 350
Пользователь №: 40396
На форуме: 2 года, 8 месяцев, 11 дней
Карма: -2




немного переделал код (нашел на форуме реализацию авторизации в ispmanager
поменял адреса вроде стало думать немного дольше но всеравно толку мало
вот новый код

<?php
error_reporting(E_ALL);
if (isset($_POST['submit']))
{
if(empty($_POST['username']))
{
echo 'no login';
}
elseif(empty($_POST['password']))
{
echo 'no pass';
}
else
{
$login = $_POST['username'];
$password = $_POST['password'];
// echo $login;
// echo $password;

}
}

$pass=$password;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://billing.apdate.by/billmgr?out=xml&func=auth&username='+$login+'&password='+$pass);
curl_setopt($curl, CURLOPT_HEADER, 1); //выводим заголовки
curl_setopt($curl, CURLOPT_POST, 1); //передача данных методом POST
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //теперь curl вернет нам ответ, а не выведет
$res = curl_exec($curl);
//если ошибка то печатаем номер и сообщение
if(!$res) {
$error = curl_error($curl).'('.curl_errno($curl).')';
echo $error;
}
else {
//тут засада - надо разобрать ответ в xml и получить оттуда id процесса
$id = '1234567890';
$curl1 = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://billing.apdate.by/billmgr?auth='+$id);
curl_exec($curl1);
curl_close($curl1);
}
curl_close($curl);

?>

вот то что на экране
Could not resolve host: 0; Host not found(6)
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
walerus  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чтобы все !
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2333
Пользователь №: 26852
На форуме: 6 лет, 3 месяца, 10 дней
Карма: 127




apdate
Тебе нужно в начале - авторизироваться, а потом делать какие то манипуляции. И не нужно два раза инициализировать курл, достаточно одного(это я про последний пример) и ты не написал что он возвращает... В общем, если не боишься, пиши логин/пасс, ссылку на биллинг, что нужно получить и т.д... в ПМ или на почту(в профиле), будет время - гляну что куда.

ps:
не доглядел...
Could not resolve host: 0; Host not found(6)

дословный перевод
Не удалось разрешить хост: 0; Сервер не найден (6)
т.е. он не знает не находит сервер(урл), который ты указываешь

Это сообщение отредактировал walerus - 17.01.2017 - 16:38
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
apdate  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 350
Пользователь №: 40396
На форуме: 2 года, 8 месяцев, 11 дней
Карма: -2




в общем я все это на денвере тестил система ошибки валила по последнему примеру ошибки не выдает но и не логит там надо еще запрашивать ид сессии вроде как (
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
apdate  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 350
Пользователь №: 40396
На форуме: 2 года, 8 месяцев, 11 дней
Карма: -2




//если ошибка то печатаем номер и сообщение
if(!$res) {
$error = curl_error($curl).'('.curl_errno($curl).')';
echo $error;
}
else {
//тут засада - надо разобрать ответ в xml и получить оттуда id процесса
$id = '1234567890';
$curl1 = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://93.84.114.156/billmgr?auth='+$id);
curl_exec($curl1);
curl_close($curl1);
}
curl_close($curl);

здесь надо как то из ответа получить что то ))) затем адресоваться на урл по
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
apdate  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 350
Пользователь №: 40396
На форуме: 2 года, 8 месяцев, 11 дней
Карма: -2




в общем сейчас выводит
string(324) "HTTP/1.1 404 Not Found Server: nginx/1.10.1 Date: Wed, 18 Jan 2017 06:14:11 GMT Content-Type: text/html Content-Length: 169 Connection: keep-alive
404 Not Found

что это значит?
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
apdate  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 350
Пользователь №: 40396
На форуме: 2 года, 8 месяцев, 11 дней
Карма: -2




в общем не получается у меня (

сделаю обычный переход на сайт

спасибо кто пытался помочь (
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
walerus  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чтобы все !
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2333
Пользователь №: 26852
На форуме: 6 лет, 3 месяца, 10 дней
Карма: 127




apdate
Цитата
что это значит?
Апдейт, скажите честно Вы на сколько хорошо разбираетесь в:
1) Ответы сервера
2) HTML
3) PHP
по десятибалльной шкале, где:
1 это совсем нуб,
10 я Гуру !!

Вам же ответ показан - "404 запрашиваемая страница - не найдена".

Я выше написал - давайте доступ, буду смотреть, так мы будем изучать долго PHP, HTML и ответы сервера.

Изучите работу с курлом, там все просто, для начала, попробуйте открыть страницу гугла или сразу то, что Вам нужно, например "https://DOMAIN/billmgr?func=whoami", если все получится, дальше будет "дело техники".

Почитать про Curl, можно тут или тут Сделайте пример своего кода, с вызовом "https://DOMAIN/billmgr?func=whoami" и покажите что у Вас получилось.
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
apdate  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 350
Пользователь №: 40396
На форуме: 2 года, 8 месяцев, 11 дней
Карма: -2




то что 404 это не найдена страница это ежу понятно )

дело в том что у меня стоит сертификат оттого не производило запросов от того и была ошибка 404

авторизацию сделал так

$authIdResponse=simplexml_load_string(file_get_contents("https://$ip/billmgr?out=xml&func=auth&username=$login&password=$password", false, stream_context_create($arrContextOptions)));
header("location: https://$ip/billmgr?auth=".$authIdResponse->auth."");

теппреь авторизирет и возвращает мне ответы теперь я могу делать запросы и тепреь я получаю .$authIdResponse->auth. (ид сессии авторизации) в биллинге

НО теперь самый интересный вопрос )))

оцениваю себя скорее всего билже к 3 )))

структура сайта такова

index.html
на данной странице выводится информация в виде групп услуг
привыборе конкретной группы услуги система открывает другую страницу вот из этих

usluga_1.html
usluga_2.html
usluga_3.html
usluga_4.html

так же есть два файла
login.php
reg.php
в файлах

index.html
usluga_1.html
usluga_2.html
usluga_3.html
usluga_4.html
имеются модальные формы авторизации и регистрации юзера на биллинге

так же в хидере всех этих файлов есть кнопка "Войти"

но мне необходимо добится следующего

1. если человек авторизирован тогда в место кнопок "Войти - зарегистрировать" выводить
Перейти в личный кабинет - а лучше всего писать ФИО и рядом кнопка войти

2. если не авторизирован то показывать кнопки Войти - зарегистрироваться

итак я знаю что при авторизации биллинг передает id сессии ($authIdResponse->auth)

как нме не проходя при переходе на другу страницы сайта каждый раз авторизацию запомнить эту переменную?
$authIdResponse->auth
что бы потом исходя из условия показывать необходимую информицию?
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
apdate  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 350
Пользователь №: 40396
На форуме: 2 года, 8 месяцев, 11 дней
Карма: -2




странно на главной странице в самом верху написал

<?php
session_start();
?>

затем в теле этой же странице написал

<?php
// Проверяем, пусты ли переменные логина и id пользователя
if (empty($_SESSION['id']))
{
// Если пусты, то мы не выводим ссылку
echo "<a href='#autorizations' class='nav-itemd'>Войти0</a>";
}
else
{

// Если не пусты, то мы выводим ссылку
echo "<a href='#autorizations' class='nav-itemd'>Войти1</a>";
}
?>

в файле авторизации написал

в самом верху

session_start();

код запроса авторизации а потом
получаю идентификатор и записываю его в сессию

$_SESSION['id']=$authIdResponse->auth;//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь
echo "Вы успешно вошли на сайт! <a href='index.php'>Главная страница</a>";

перехожу на главную но сессия пустая что не так делаю?
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
apdate  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 350
Пользователь №: 40396
На форуме: 2 года, 8 месяцев, 11 дней
Карма: -2




как узнаю что сессия пустая?
вижу в место
Войти1

вижу
Войти0
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
apdate  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 350
Пользователь №: 40396
На форуме: 2 года, 8 месяцев, 11 дней
Карма: -2




идентификатор сессии (session_id()) на обоих страницах одинаковый (
но там где я заполняю сессию потом там же смотрю ее все ок но когда перехожу на главную сессия пустая (
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
apdate  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 350
Пользователь №: 40396
На форуме: 2 года, 8 месяцев, 11 дней
Карма: -2




и еще если присваиваю
  $_SESSION['id']='ПриветМир';//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь
// echo $_SESSION['id'];

echo "Вы успешно вошли на сайт! <a href='index.php'>Главная страница</a>";
и после перехожу на главную то на главной вижу эти значения а если присваиваю

$_SESSION['id']=$authIdResponse->auth;

т огда на главной пусто

хотя если смотрю значение

echo $authIdResponse->auth; на странице формирование все ок выводит
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
apdate  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 350
Пользователь №: 40396
На форуме: 2 года, 8 месяцев, 11 дней
Карма: -2




не кто не подскажет почему сессии не работают?
если я в место переменной укажу что либо свое то все ок передаетс я а если подстовляю переменную то не передается (
переменная не пустая!
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (13) « Первая ... 10 11 [12] 13  Ответ в темуСоздание новой темыСоздание опроса