Сентябрь 17, 2024
Теги: Отладка, Решение проблем
Для решения различных проблем, связанных с сессией, можно воспользоваться скриптом для вывода и сохранения параметров сессии.
Данный скрипт выводит общие параметры сессии и cookies в битрикс, а также выводит ту же информацию с последнего обновления страницы, и сохраняет текущую в файл, располагаемый в папке скрипта.
<?php
require($_SERVER['DOCUMENT_ROOT'].'/bitrix/header.php');
$APPLICATION->SetTitle("Test");
\Bitrix\Main\Loader::includeModule('sale');
ob_start();
echo 'date = '.date('r')."<br><br>";
if(\Bitrix\Main\Loader::includeModule('sale'))
{
// идентификатор владельца корзины в модуле магазина
echo 'fuser = '.\Bitrix\Sale\Fuser::getId()."<br><br>";
}
echo 'bitrix_sessid = '.bitrix_sessid()."<br><br>";
echo 'session_id = '.session_id()."<br><br>";
echo '$_SESSION = '.var_export($_SESSION,true)."<br><br>";
echo '$_COOKIE = '.var_export($_COOKIE,true)."<br><br>";
$f = ob_get_contents();
ob_end_clean();
echo "<table><tr>";
echo '<td style="vertical-align:top;"><pre>';
echo $f;
echo '</pre></td>';
clearstatcache();
$handle = fopen(__DIR__."/file.txt", "r");
if($handle)
{
$text=fread($handle, filesize(__DIR__."/file.txt"));
fclose($handle);
}
echo '<td style="vertical-align:top;"><pre>';
echo $text;
echo '</pre></td>';
clearstatcache();
$handle = fopen(__DIR__."/file.txt", "w");
fwrite($handle, $f);
fclose($handle);
echo '</tr></table>';
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
Аналогичный скрипт, но без использования cms битрикс:
<?php
session_start();
ob_start();
echo 'date = '.date('r')."<br><br>";
echo 'session_id = '.session_id()."<br><br>";
echo '$_SESSION = '.var_export($_SESSION,true)."<br><br>";
echo '$_COOKIE = '.var_export($_COOKIE,true)."<br><br>";
echo 'session.save_path = '.var_export(ini_get('session.save_path'),true)."<br><br>";
$f = ob_get_contents();
ob_end_clean();
echo "<html><body><table><tr>";
echo '<td style="vertical-align:top;"><pre>';
echo $f;
echo '</pre></td>';
clearstatcache();
$handle = fopen(__DIR__."/fileclean.txt", "r");
if($handle)
{
$text=fread($handle, filesize(__DIR__."/fileclean.txt"));
fclose($handle);
}
echo '<td style="vertical-align:top;"><pre>';
echo $text;
echo '</pre></td>';
clearstatcache();
$handle = fopen(__DIR__."/fileclean.txt", "w");
fwrite($handle, $f);
fclose($handle);
echo '</tr></table></body></html>';