Мы сделали расширение в typo3 (версия 6.2). В какой-то момент мы делаем вызов ajax, где мы хотим сохранить некоторые значения. Для того, чтобы проверить, если пользователь вошел в систему мы используемFE пользовательская сессия недоступна в инструментах разработчика. Режим устройства
$GLOBALS['TSFE']->fe_user->user['userid']
идента для двух testusers больше, чем 0. (отредактированный) PHP, что называется, выглядит так:
<?php
$var = $GLOBALS['TSFE']->fe_user->user['userid'];
if($var > 0) {
echo "var = ".$var."\n";
echo "var > 0 - logged in!";
}else{
echo "var = ".$var."\n";
echo "var < 1 - not logged in.";
}
?>
Наша проблема заключается в том, что, когда мы смотрим на страницу-источник, мы можем увидеть содержимое из if-условие:
var = 1 (or: var = 2)
var > 0 - logged in!
когда мы смотрим на консоли (F12), мы можем увидеть содержимое из else- Колорадо :
var =
var < 1 - not logged in.
Переменная пуста здесь? Апач error.log дает уведомление:
Trying to get property of non-object in .....
Может кто-нибудь объяснить, что происходит? Если это не объект, то как переменная установлена в 1 (или 2)?
function functionName (sd) {var dat = JSON.stringify (sd); $ .ajax ({url: "path/to/php" type: "GET", data: {dat: dat}, Я попробовал D), и он сказал, что «User IS logged» в источнике страницы, и " Пользователь не зарегистрирован "в консоли ... –
@DavidLamhauge вы должны предоставить более подробную информацию о том, что вы сделали, также щелкните на панели ** Сеть ** по запросу Ajax и покажите мне, что он возвращает. С моей точки зрения ваш запрос не выполняется должным образом, и что JS показывает, что какое-то зарегистрированное состояние является просто ошибкой – biesior
Вызывается php-файл, который предназначен для сохранения данных, которые я хочу сохранить, и запускался как исходный PHP файл. $ GLOBALS ['TSFE'] вернул NULL, но после того, как я включил php-файл в мой основной файл controller.php, $ GLOBALS ['TSFE'] вернул правильный «uid». Теперь моя забота заключается в том, что она перекликается с разными значениями в исходном коде и в консоли браузера. Если это потому, что они используют разные пользовательские агенты, тогда нет причин беспокоиться ... - или? –