Я проверил все 29 предыдущих сообщений, помеченных с помощью array_key_exists, и не могу найти ответ на конкретный вопрос, касающийся моей проблемы. Наш сервер был недавно обновлен, и мы перешли на PHP 5.2.17 (и да, я знаю, что он все еще позади, но мы исправляем проблемы, поскольку мы продолжаем продвигаться, и 5.3 вызвало слишком много проблем для одновременной обработки, пусть только 5.4).
Наши веб-страницы выдают сообщение об ошибке, связанное с array_key_exists:
[ОШИБКА] [2] [array_key_exists () [function.array-key-существующие]]: второй
аргумент должен быть либо массивом, либо объектом]
else if(array_key_exists("ACCOUNT", $_SESSION) && $_SESSION["ACCOUNT"] == $target){
// do nothing, we are a-ok
}
В приведенном выше коде (я думаю) мы проверяем, был ли сеанс уже установлен и существует для данной учетной записи. Если так, мы ничего не делаем. В противном случае мы устанавливаем сессию в другом операторе else после этого.
$_SESSION["ACCOUNT"]
устанавливается в куки. Значение «ACCOUNT» — это поддомен, который также используется для идентификации учетной записи в базе данных. Вот строки из куки, которые показывают, что аккаунт установлен. Учетная запись существует.
SESSION[ACCOUNTID] = 39
SESSION[ACCOUNT] = demo
SESSION[PAIDACCOUNT] = 0
Мой вопрос заключается в том, как теперь должна быть закодирована эта строка php, чтобы не выдавать эту ошибку?
Спасибо!
Вы должны использовать isset
вместо
else if(isset($_SESSION["ACCOUNT"]) && $_SESSION["ACCOUNT"] == $target){
// do nothing, we are a-ok
}
Других решений пока нет …