Как авторизоваться в сниппете?

Может кто поможет… В общем, есть файл php, в нём подключён класс modx. Мне нужно в этом файле получить содержимое страницы. Делаю это с помощью file_get_contents. Но проблема в том, что для доступа к этой странице нужно быть авторизованным. Как можно авторизоваться в коде? Если это вообще возможно с помощью file_get_contents… Пример кода:

<?php

require dirname(dirname(dirname(__FILE__)))."/config.core.php";

if(!defined('MODX_CORE_PATH')) require_once '../../../config.core.php';
require_once MODX_CORE_PATH.'config/'.MODX_CONFIG_KEY.'.inc.php';
require_once MODX_CORE_PATH.'model/modx/modx.class.php';
$modx = new modX();

$modx->initialize( 'web' );

$url = $modx->makeUrl(13683, 'web', array('order_id' => 116), 'http');

$text = file_get_contents($url);
На запрашиваемой странице только сниппет вызывается. Но если я поменяю последние строки на такой код и вызову сниппет прямо в коде:

$text = $modx->runSnippet('bill', array('order_id' => 116));
то в $text вместо полностью обработанного содержимого, часть с плейсхолдерами, а часть обработана… Фигня какая-то. В данном случае авторизация почему-то не требуется.
Николай
01 октября 2015, 11:41
modx.pro
1 364
0
Поблагодарить автора Отправить деньги

Комментарии: 2

Сергей Шлоков
01 октября 2015, 20:20
+1
Вот пример подключения и авторизации.
то в $text вместо полностью обработанного содержимого, часть с плейсхолдерами, а часть обработана…
Скорее всего запрос идет через ajax. В этом случае парсятся теги только текущей страницы. Поэтому их нужно парсить самостоятельно.
    Николай
    01 октября 2015, 22:40
    0
    Вот пример подключения и авторизации.
    Пробовал, похоже, это работает только в описанном случае, когда создаётся ресурс с помощью процессора. А при запросах file_get_contents и подобных, запрашиваемая страница ведь не получает никаких данных об авторизации. В общем, проблему решил так. Получаю значение сессии, и запрашиваю другую страницу с помощью CURL, где прописываю сессию. И всё работает.
    Скорее всего запрос идет через ajax. В этом случае парсятся теги только текущей страницы. Поэтому их нужно парсить самостоятельно.
    В том то и дело, что нет там никакого ajax, обыкновенные плейсхолдеры, обыкновенные чанки. Почему часть распарсилась, а часть нет, непонятно)
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2