Как авторизоваться в сниппете?
Может кто поможет… В общем, есть файл 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 вместо полностью обработанного содержимого, часть с плейсхолдерами, а часть обработана… Фигня какая-то. В данном случае авторизация почему-то не требуется.
Поблагодарить автора
Отправить деньги
Комментарии: 2
Вот пример подключения и авторизации.
то в $text вместо полностью обработанного содержимого, часть с плейсхолдерами, а часть обработана…Скорее всего запрос идет через ajax. В этом случае парсятся теги только текущей страницы. Поэтому их нужно парсить самостоятельно.
Вот пример подключения и авторизации.Пробовал, похоже, это работает только в описанном случае, когда создаётся ресурс с помощью процессора. А при запросах file_get_contents и подобных, запрашиваемая страница ведь не получает никаких данных об авторизации. В общем, проблему решил так. Получаю значение сессии, и запрашиваю другую страницу с помощью CURL, где прописываю сессию. И всё работает.
Скорее всего запрос идет через ajax. В этом случае парсятся теги только текущей страницы. Поэтому их нужно парсить самостоятельно.В том то и дело, что нет там никакого ajax, обыкновенные плейсхолдеры, обыкновенные чанки. Почему часть распарсилась, а часть нет, непонятно)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.