| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Notice: Undefined variable: PHP_SELF in .... |
| Автор: клоп 28.2.2006, 10:09 | ||
Есть кусок кода (файл test.php)
Не могу понять как побороть сыпящиеся ошибки: Notice: Undefined variable: PHP_SELF in c:\program files\apache group\apache\htdocs\test.php on line 3 Notice: Undefined variable: PHP_SELF in c:\program files\apache group\apache\htdocs\\test.php on line 6 Notice: Use of undefined constant PHP_SELF - assumed 'PHP_SELF' in c:\program files\apache group\apache\htdocs\test.php on line 6 Соответственно если в php.ini ставлю error_reporting = E_ALL & ~E_NOTICE то ничего не видно но в errorlog Апача они все равно пишуться, раздувая размер файла. |
| Автор: Ivushka 28.2.2006, 10:22 |
| клоп есть кнопка КОД и поиск рулит http://forum.vingrad.ru/index.php?showtopic=85004&hl=$_server |
| Автор: клоп 28.2.2006, 10:44 | ||
Поиск рулит! Я видел этот топик и пытался менять $PHP_SELF на $_SERVER['PHP_SELF'], но тогда ссылки переставали работать |
| Автор: Guedda 28.2.2006, 10:52 | ||
Напиши, как ты использовал
??? |
| Автор: Ivushka 28.2.2006, 11:13 | ||
| клоп объясни что ты хочеш сделать для обычного перехода по ссылкам не нужен этот код
|
| Автор: клоп 28.2.2006, 11:47 | ||||||||
Хочу чтобы скрипт отслеживал действия пользователя и согласно им выводил на страницу ту или иную инфу. Грубо говоря сайт в одной странице, отслеживается переменная переданная методом GET и выводиться инфа соответствующая значению этой переменной. В моем примере (1-й пост) все это работает но сыпятся ошибки которые я не могу побороть. Может быть я делаю все не так, есть другие проверенные методы .. Добавлено @ 11:49
Я просто тупо вставлял $_SERVER['PHP_SELF'] вместо $PHP_SELF, в следствии чего ссылки переставали работать. |
| Автор: smartov 28.2.2006, 11:52 | ||
| клоп, ну ты приколист Зачем по-твоему есть массив $_GET? Именно для того чтобы получать переменные get (точно так же есть массив $_POST). И весь твой код сводится к
|
| Автор: Ivushka 28.2.2006, 11:55 | ||
| клоп ты когда делаеш ссылку с параметрами то значения параметров передаються на страницу и не надо их ловить GET или POST при передачи параметров ссылкой их просто ловят
выведет "asidlijsdfkl 0" |
| Автор: клоп 28.2.2006, 12:28 | ||||||
smartov огромное спасибо!!! Все работает без малейших ошибок. Правда пришлось еще определить както переменную перехода по ссылке =В начало= (пытался пометить красным в цитате). А кусок кода
Я выловил его в инете про который было написано что если в php.ini - register_globals = Off то вставляй его и все заработает. Задумываться сильно не стал. Попробывал, получилось. Даже создал сайт www.severstalbasket.ru применив эту непонятную уже сейчас затею, которую нужно будет переделывать, благо у хостера error_log не пишется. |
| Автор: клоп 28.2.2006, 13:25 | ||
smartov как уже писал все работает без ошибок, но при первом запуске файла test.php пока не была нажата ни одна ссылка, выкидывается предупреждение-ошибка: Notice: Undefined index: do in c:\program files\apache group\apache\htdocs\test.php on line 6 |
| Автор: Ivushka 28.2.2006, 13:33 | ||
|
| Автор: krulik 28.2.2006, 13:34 | ||
Может так написать:
ЗЫ: пока я писал этот пост то уже появилось сообщение от Ivushka.Сорри |
| Автор: CyClon 28.2.2006, 14:01 | ||
ИМХО самый красивый и безопасный вариант для навигации. |
| Автор: клоп 28.2.2006, 14:24 | ||
| Я сейчас попарился и сваял законченный (благодаря Вам мои коллеги) вариант навигации. Ошибок и сообщений нет вообще. При желании можно сделать проверку, где если юзер в уже на данной ссылке то эта ссылка на странице превращается в обычный раскрашенный текст. Код (берите на здоровье):
Насчет безопасности не знаю, может кто знающий поделится в этом плане. |
| Автор: Ivushka 28.2.2006, 14:27 |
| Зачепятельно что работает) только я бы всеже сделала через case))) |
| Автор: smartov 28.2.2006, 17:28 | ||||
| Это верно. Твой кусок
лучше выглядел бы
@ перед $_GET['do'] подавит ошибку если переменная не предопределена. |
| Автор: клоп 28.2.2006, 17:29 | ||
Вариант 2:
Или возвращаясь к первому посту в этом топике, прописать в начале test.php error_reporting (E_ALL ^ E_NOTICE); В итоге ошибки писаться в error_log Апача не будут, даже если в php.ini выставлено error_reporting = E_ALL display_errors = On |