Перейти к содержанию

Curl запрос внутри админки


Рекомендуемые сообщения

Здравствуйте!

Есть не совсем логичная задача, но хочется ее реализовать именно так))) Не судите строго.

 

Находясь в админке, нужно сделать запрос на страницу в админке по url. Там будет pdf файл, который потом мы сохраним на сервер.

Выносить в паблик эти pdf файлы небезопасно.

 

т.е. у нас есть все данные, токен, сессия, куки и т.п.

Как правильно их передать через curl, что бы пройти авторизацию опенкарт 1.5.4.1

 

Может быть что то типа:

curl_setopt($ch, CURLOPT_COOKIE, 'PHPSESSID='.$_COOKIE["PHPSESSID"]);

 

Не работает ( Или это не возможно? И тут только проходить авторизацию по логину и паролю, далее сохранять куки и уже получать что нам надо?

 

Спасибо.

 

Изменено пользователем PVLDM
Ссылка на комментарий
Поделиться на другие сайты

Должно. Но не для входа, а для запросов к админке. Покажите код, которым делаете запрос.

Изменено пользователем Sig
Ссылка на комментарий
Поделиться на другие сайты

$url = 'https://site.ru/admin/index.php?route=home/common&token='.$this->session->data['token'];

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_COOKIE, 'PHPSESSID=' . $_COOKIE['PHPSESSID']);

$result = curl_exec($ch);
echo $result;
curl_close($ch);
Ссылка на комментарий
Поделиться на другие сайты

В 29.11.2023 в 09:54, PVLDM сказал:

Может быть что то типа:

curl_setopt($ch, CURLOPT_COOKIE, 'PHPSESSID='.$_COOKIE["PHPSESSID"]);

Попробуйте вот так:

curl_setopt($c, CURLOPT_COOKIE, 'PHPSESSID=' . $_COOKIE['PHPSESSID'] . '; path=/');

 

Можно попробовать ещё вариант - передать куки через заголовок:

$headers   = array();
$headers[] = 'Cookie: PHPSESSID=' . $_COOKIE['PHPSESSID'];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

 

Если не получается, то на принимающей стороне сделать так:

print_r($_GET);
print_r($_COOKIE);
die();

 

И посмотреть результат, там может станет понятнее, что именно не доходит.

 

 

А ещё у вас вот тут опечатка.

image.png

Ссылка на комментарий
Поделиться на другие сайты

В 29.11.2023 в 18:34, PVLDM сказал:

Спасибо! Помогло это исправление +

session_write_close();

Вообще сессия должна быть записана уже. Это же не первый заход.

Принудительная запись нужна только в том случае, когда надо прокинуть данные которые были созданы или изменены именно в эту сессию.

Логин к этим данным не относится.

Ссылка на комментарий
Поделиться на другие сайты

В 29.11.2023 в 21:25, PVLDM сказал:

Да, понимаю, но почему то без этого страница доооолго грузится и в итоге 502 ошибка (

А это уже окружение настроено на блокировку сессий и не даёт открыть вторую сессию, пока не завершён запрос из первой.

Закрытие, а потом запрос - это как раз обход этой блокировки.

Но после этого сессия уже не открыта, но имея id её можно опять открыть после выполнения запроса.

 

А зачем вообще всё делать таким извращённым способом?

Ссылка на комментарий
Поделиться на другие сайты

В 29.11.2023 в 20:30, mpn2005 сказал:

А зачем вообще всё делать таким извращённым способом?

Да понимаю, но решил сделать так. Разработали программу под винду, которая на локалке принимает GET запрос с ссылкой на пдф, имя принтера, формат печати и т.п. и без лишних слов печатает на нужной принтере, в нужном формате.

 

pdf там не очень хочется в паблик отдавать. Таких pdf модулей много, разных, и все переносить в паблик и мудрить с защитой не захотелось.

 

Решил сделать запрос из админки в админку через curl, сохранить файл и отдать его по прямой ссылке. Потом файл удаляется.

Так себя объяснил, но как есть. Да и на будущее, это может пригодиться.

 

Еще раз, спасибо за помощь!

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...