У меня возникла проблема с веб-приложением php. Он перестает работать после 10-20 часов без причины, потому что $_GET
не определен.Неопределенная переменная _GET
Запрос выглядит следующим образом:
http://host/index.php?id=1
индексный файл имеет лил фрагмент кода, как:
if (isset($_GET['id']) && is_numeric($_GET['id'])) {
$id = intval($_GET['id']);
} else {
die('wrong id');
}
var_dump из $_GET
возвращается NULL
. Параметр var_dump $_SERVER
показывает, что REQUEST_METHOD
- это GET, а QUERY_STRING
- id = 1. A var_dump()
из $_REQUEST
показывает id => 1, так что это только $_GET
, что не работает.
Когда это происходит, это происходит для всех веб-приложений на сервере и для всех пользователей. После перезапуска веб-сервера все работает снова в течение нескольких часов ...
Система Windows 2008 R2, Apache 2.4.18 32 Bit/PHP 7.0.4 32 бит.
Похоже, есть что-то неправильно на сервере? – Epodax
Alankar More в соответствии с руководством по php.net «Эта функция была DEPRECATED с PHP 5.3.0 и удалена с PHP 5.4.0». Поэтому он не должен иметь отношения к установке PHP 7.0.4. Кроме того, это в основном php-production.ini по умолчанию с некоторыми незначительными изменениями (пути, время выполнения, расширения gd2, mbstring, oci8, charset и настройки даты/времени). – aLpenbog
Я знаю, что это очевидный вопрос, но есть ли что-нибудь в журнале ошибок Apache/PHP? Что произойдет, если вы попробуете [$ HTTP_GET_VARS] (http://www.php.net/manual/en/reserved.variables.get.php) (а не суперглобальный и устаревший) вместо '$ _GET'? – Egg