Включил отображение ошибок, выбило ошибку Notice: Undefined index: act in на строку: Код (Text): if(isset($_POST['act'])) $act=htmlspecialchars($_POST['act']); else $act=htmlspecialchars($_GET['act']); Как ее убрать?
ну, я про то и говорю. Скрипт проверяет POST, но не проверяет GET. Можно к примеру обратиться к $_REQUEST, либо добавить условие isset($_GET['act'])
слушай, здесь не школа. купи/скачай книжку типа "php для чайников" Добавлено спустя 1 минуту 41 секунду: всеобъемлющая документация по PHP, в т.ч. на русском языке на сайте php.net
Тебе дали ответ и пример, но судя по твоим вопросам проблемы даже с базовым синтаксисом языка. Посему сначала книжка.
я изменил код на : Код (Text): if(isset($_POST['act'])) $act=htmlspecialchars($_POST['act']); elseif(isset($_GET['act'])){ $act = htmlspecialchars($_GET['act']); } но теперь вылезли ошибки Notice: Undefined variable: act in на case 'menu':
Код (PHP): if (isset($_POST['act'])) $act=htmlspecialchars($_POST['act']); elseif (isset($_GET['act'])) $act = htmlspecialchars($_GET['act']); else $act = ''; Notice: Undefined variable - это уведомление возникает, т.к. ты обращаешься к переменной которая не существует. Точно так же сначала у тебя возникало уведомление о том что нет ключа массива. Отсюда и проверка на существование isset() - есть, значит работаем, нет - значит пропускаем. Вариантов тут не много: 1. Объявлять все переменные, следить за ними, что бы числовая переменная в середине скрипта не стала массивом, давать понятные имена и вообще обращаться бережно и аккуратно. Что гуд. 2. Забить на notice ибо пхп)
Ошибка в тексте. В оригинале он такой: "Зачем, например, учить географию, если есть извозчики" Обычно на этом цитату заканчивают. Однако далее Митрофанушка продолжил: "— это-таки и наука не дворянская" Вот так. Не дворянская это занятие - читать ману. Пусть извозчики прочтут и расскажут. Добавлено спустя 21 минуту 46 секунд: Для тех кто затрудняется с ответом на вопрос закоренелого халявщика "а зачем тогда нужны форумы" он таков: форумы нужны для обмена идеями и решениями. Например вместо Код (Text): if(isset($_POST['act'])) $act=htmlspecialchars($_POST['act']); else if(isset($_GET['act'])) $act=htmlspecialchars($_GET['act']); перечисляете все переменные которые надо проверить и где: Код (Text): $keys = array('post'=>'act', 'get'=>'act', 'post'=>'defect', 'get'=>'noeffect'); // и проверяете в цикле // в котором будут созданы одноименные ключам массива // переменные как переменные foreach($keys as $func => $arg) ${$arg} = htmlspecialchars($func($arg)); // и значения которых будут либо равны значениям // соответствующих элементов выбранного массива // либо null что укажет на отсутствие такого элемента в массиве // что выполняется в соответствующих запросу функциях function post($arg) { return(array_key_exists($arg, $_POST) ? $_POST[$arg] : null; } function get($arg) { return(array_key_exists($arg, $_GET) ? $_GET[$arg] : null; } Перечисление всех ожидаемых ключей дает возможность оперировать полученным набором данных легко и просто: if($noeffect) { if(!$act) redirect('home');