Тема: ошибка.как исправить? (WAP/WEB мастеру/Помощь мастерам) SimptomFD (2 Feb 2018 в 23:32) Код переписать, интерпритатор говорит, что код кривой. Для начала, нужно сделать проверку на наличие GET запроса, дополнительным условием поставить проверку на наличие данных в GET запросе. И только потом брать с него данные. Мр. Форум (2 Feb 2018 в 23:33) [red]Тему переместил Админ форума SimptomFD из раздела Баги (ошибки) движка в раздел Помощь мастерам[/red] Скиталец (3 Feb 2018 в 10:21) Код в студию. Kyzm1ch (4 Feb 2018 в 01:06) SimptomFD, какой код прописати? Zed (5 Feb 2018 в 16:14) <? $action= isset($_GET[\'action\'] ? htmlspecialchars(trim($_GET[\'action\'])) : NULL;?> Kyzm1ch (6 Feb 2018 в 15:46) --Цитата-- Zed (5 Feb 2018 в 16:14): <? $action= isset($_GET[\'action\'] ? htmlspecialchars(trim($_GET[\'action\'])) : NULL;?> ---------- Zed, какой код прописати в 23 строке ? Zed (6 Feb 2018 в 16:43) $action= isset($_GET[\'action\'] ? htmlspecialchars(trim($_GET[\'action\'])) : NULL; kantry (6 Feb 2018 в 19:34) --Цитата-- Zed (6 Feb 2018 в 16:43): $action= isset($_GET[\'action\'] ? htmlspecialchars(trim($_GET[\'action\'])) : NULL; ---------- Zed, красивее будет(и правильнее) $action = filter_input(INPUT_GET, \'action\', FILTER_DEFAULT); Zed (6 Feb 2018 в 19:41) --Цитата-- kantry (6 Feb 2018 в 19:34): Zed, красивее будет(и правильнее) $action = filter_input(INPUT_GET, \'action\', FILTER_DEFAULT); ---------- kantry, ну как было я так и оставил,от себя ничего не хочу добавлять. так то по идее если данные никуда не записываются,и не выводятся там вполне trim() хватит Svat (18 Feb 2018 в 05:51) Правильную подсказку, дал SimptomFD Попрошу обратить внимание - подсказку но не решение. Жаль... Правильный ответ дал kantry Как бы до этого, взаимопонимание не шло криво. Но тут он прав, кроме одного. Если человек использует htmlspecialchars То фильтровать надо так $action = filter_input(INPUT_GET, \'action\', FILTER_SANITIZE_FULL_SPECIAL_CHARS); Данный метод есть аналог функции htmlspecialchars Но... до этого, параметру filter.default_flags необходимо придать значение 0 О чём немного ниже... Сама же ошибка гласит - не существует индекс Не существует именно в $_GET[\'action\'] Проще, метод обьявлен, но пуст. Решений несколько. Но советую применить от kantry Широкий захват от 5.3.0 до PHP 7 Что в случае позволит, комфортно перейти на иной пакет php На заметку начинающим и не только... Есть замечательная панацея, это собака @ Если вы не желаете, боитесь или иная причина не использовать решение kantry Например незнание. Факт, решение kantry будет работать только с методом GET INPUT_ имеет ряд параметров INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER И не только... А так же типы фильтров FILTER_SANITIZE_EMAIL, FILTER_SANITIZE_NUMBER_INT и так далее... Которые в свою очередь опираются на настройки php.ini либо httpd.conf Что само за себя говорит - как бы не промахнуться. О чём писалось в начале. Не верные настройки и привет неприятности. А в свете последних событий, это имеет быть. В хостеры лезут не только криворуки но и кривоноги)) Которые кроме как желания обогатиться не чего больше не имеют. Ещё раз обращу внимание. Способ предоставленный kantry , есть прекрасное решение. Почему вы поймёте, на первых же шагах. Но использовать на авось нельзя. И если знаний пока нет, просто посадите собаку, вот так $action = htmlspecialchars(trim(@$_GET[\'action\'])); Это есть универсальное решение, которое можно использовать во всех местах возникновения подобной ошибки. Всем добра, пост сдал)) berserk2014 (2 Apr 2018 в 00:48) Svat, зачем @ глушить ошибки, через empty или isset выбрать и все. Svat (2 Apr 2018 в 06:16) --Цитата-- berserk2014 (2 Apr 2018 в 00:48): Svat, зачем @ глушить ошибки, через empty или isset выбрать и все. ---------- berserk2014, Ну скорее всего не глушить а подавлять, но это не важно. Могу задать тот же вопрос. А зачем так empty или isset ? Если можно так $action = filter_input(INPUT_GET, \'action\', FILTER_SANITIZE_FULL_SPECIAL_CHARS); А можно ещё и так $_GET[\'action\'] = \'NULL\'; $action = htmlspecialchars(trim($_GET[\'action\'])); В данном случае... Оператор подавления ошибок @ это универсальное и самое краткое решение. Нет, если тебе конечно надо ошибку обработать, и куда то вывести результат, тогда да... Но об этом не слова, автор темы просит - ошибка как исправить? Источник: http://www.dcms-social.ru/forum/20/44/62367/