| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Ошибка! Notice: Undefined index:... |
| Автор: ivanset 26.11.2005, 01:41 | ||||||
| Пишу свой первый php-сайт. При вызове сайта (на локалке через EasyPHP) на месте php-кода:
выдается ошибка: Notice: Undefined index: page in c:\program files\easyphp1-8\www\set company\index.php on line 203. Код менюшки:
Но сразу после перехода по ссылке (в меню) все работает! Я так понимаю, что по умолчанию значение в переменной $page пустое и поэтому ошибка, а далее, когда там занесено имя страницы, все ок. Тогда я зделал следующее:
... но всеравно не помогает. Помогите, плиз... |
| Автор: Mal Hack 26.11.2005, 01:44 |
| Ну дык, когда ты заходишь первый раз ты же не передаешь параметр page, а как следствие скрипт не знает такого элемента !! |
| Автор: R.M. 26.11.2005, 09:14 | ||||||
Mal Hack
Но по дефолту ведь стоит about.php ivanset поменяй строку
на
|
| Автор: Mal Hack 26.11.2005, 18:01 | ||||||
Мало ли что по дефолту стоит. Это уже другое дело. Варнинг на строке switch'a вылетает.
Бред. Надо условие делать. Пусть в этом конкретном варианте это и не так хорошо видно, но надо сразу учиться обрабатывать все исключения. |
| Автор: -=Ustas=- 26.11.2005, 19:01 | ||||||
При чем здесь по дефолту, если данной переменной не существует... Лучше уж тогда так:
Или же так:
|
| Автор: R.M. 27.11.2005, 10:52 | ||||
Если нету $_GET['page'] то он выдаст то что по дефолту в switch и выдаст ошибку што такой переменной нету, так зачем именно в этом случае так заморачиваца когда можно просто поставить @? Объясните |
| Автор: -=Ustas=- 27.11.2005, 11:20 |
| Куксикус, если переменной $_GET['page'] не существует, то программа в switch даже и не зайдет (пролетит мимо), поэтому, следовательно и дефолта никакого не будет!!! Блок из дефолта выполнится только в том случае, если переменная $_GET['page'] непринимает одно из значений, указанных в case, но значение имеет. Элементарные вещи, надо бы их уже понимать... |
| Автор: ivanset 27.11.2005, 12:54 | ||||||||
Куксикус Спасибо! Все работает!!! --------------------------------- Кстати, мне тут советовали другой способ: Вместо switch использовать:
Но по каким бы я ссылкам не кликал (менюшка), все равно грузится "inc/about.php" |
| Автор: -=Ustas=- 27.11.2005, 13:55 | ||||
Правильно, так и будет. Чтобы работало, надо:
|
| Автор: R.M. 27.11.2005, 17:55 |
| -=Ustas=- Я делал сайт по такому принципу, проверил прямо на нём, всё ок, даже если нету $_GET['page'] грузится дефолт |
| Автор: WhiteSpirit 27.11.2005, 20:27 |
| Если я не ошибаюсь @ не всегда хорошо, так как сообщения об ошибках накпливается в логе. а если использовать isset() то значение переменная устанавливается |
| Автор: Mal Hack 27.11.2005, 20:33 | ||||
|
| Автор: -=Ustas=- 27.11.2005, 22:08 | ||
Куксикус, глушить ошибки - это НИ ЕСТЬ ХОРОШО!!! И вообще, подобный стиль программирования, т.е. с применением заглушек, не достоен уважения... Если мне не веришь, то можешь спросить здесь у любого. |
| Автор: Mal Hack 27.11.2005, 22:39 |
| Ответ авторы темы был дан. Дабы не разводить флейм считаю дискуссию законченной. |