Здравствуйте! Возникла проблема с обработкой ошибок с помощью файла .htaccess. Код файла .htaccess: Код (Text): ErrorDocument 401 /errors/error.php?id=401 ErrorDocument 403 /errors/error.php?id=403 ErrorDocument 404 /errors/error.php?id=404 ErrorDocument 500 /errors/error.php?id=500 Код файла error.php: PHP: <?php if (!$id) $id = 404; // ассоциативный массив кодов и описаний $a[401] = "Требуется авторизация"; $a[403] = "Пользователь не прошел аутентификацию, доступ запрещен"; $a[404] = "Документ не найден"; $a[500] = "Внутренняя ошибка сервера"; $a[400] = "Неправильный запрос"; ?> <h1><i><?=$id?></i> <?=$a[$id]?></h1> Не знаю, почему, но код никак не реагирует на окончания типа "?id=404" и не видит переменную $id. Ошибка: Notice: Undefined variable: id in C:\xampp\htdocs\errors\error.php on line 3
Вы изучаете пхп по очень древнему манускрипту. Ранее существовала практика автоматического объявления переменных для всех ключей суперглобальных массивов. То есть $_GET['id'] можно было найти в $id. Потом эту практику признали небезопасной и начали рекомендовать её не использовать. Потом отключили по умолчанию. Что делать? Объявить переменную $id. Можно сразу ей присвоить значение $_GET['id'], а можно и скастовать тип переменной - (int). Или даже заюзать filter_input() с соответствующими опциями тонкой настройки.