Автор Тема: Помогите чайнику. Проблема с передачей параметров.  (Прочитано 5510 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Andruha

  • Гость
Я новичок в php, только осваиваю. Такой вот вопрос:
Мой скрипт обрабатывает переменную, которая ему передается по урл, типа
script.php?abc=123.
А если я запрашиваю script.php без параметров, то
выдается ошибка в том месте, где скрипт должен ее обработать.
Undefined variable: abc.
Вообще логично...
Но как мне решить эту проблему? Может определить, был ли передан параметр, если нет, то присвоить значение "по умолчанию"?
Пользуюсь php 4.2.2.
Прошу извинить за возможно глупый вопрос, видимо где-то не дочитал документацию...
Заранее спасибо.

Оффлайн я...

  • scum of the earth
  • Старожил
  • ****
  • Сообщений: 293
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.vlad.myths.ru
супер вопрос! лучшего не встречал!
ладно, это офф...
все равно никто не ответит, слушай сюда:
там, где у тебя стоит обработка переменной, можешь поставить такой узел:
if(!$abc)$abc=0;
но можно и по-другому извращаться, можешь тем-же узлом обойти часть, программы, где она с этой переменной работает...
А вообще BAD QUESTION, imho... =(
...вот такой я весёлый зверёк...
 Home page

Andruha

  • Гость
Хм... Сорри, конечно, но вообще-то с самого начала был именно такой вариант... В том-то вся и херня, что ошибка все равно вылезает ссылаясь именно на эту строчку, хотя так вроде быть не должно. Хотелось бы найти такое решение, чтобы ошибки небыло (вариант с отключением отображения ошибок не рассматривается :)).
Может это глюк конкретной версии php (4.2.2)?

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
if (!isset($abc)) $abc=0;
//если переменная $abc не определена, то присваем = 0;
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
[off]
я...
Цитировать
супер вопрос! лучшего не встречал!
ладно, это офф...
все равно никто не ответит, слушай сюда:

не надо понтов. Я думаю ок. 30% начинающих сталкивались с такой лажей.
[/off]
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Это не глюк, это фича.

Оффлайн GotZfild

  • Универсал
  • Старожил
  • ****
  • Сообщений: 456
  • +0/-0
  • 2
    • Просмотр профиля
    • http://myphp.dem.ru
Цитировать
вариант с отключением отображения ошибок не рассматривается

Почему? Если тебе просто необходимо подавить замечания (а они в большинстве случаев бесполезны), то в php.ini исправь

error_reporting  =  E_ALL & ~E_NOTICE
После трех дней без программирования жизнь становится бессмысленной.

Unregistered

  • Гость
[OFF]Alexandr и Andruha, сорри если вас обидел... хреного мне, но это личное...[/OFF]

Оффлайн я...

  • scum of the earth
  • Старожил
  • ****
  • Сообщений: 293
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.vlad.myths.ru
[OFF]забыл подписаться, how ever... =((([/OFF]
...вот такой я весёлый зверёк...
 Home page

Оффлайн Дмитрий Попов

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 264
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.programmist.spb.ru
Andruha

Есть такая хорошая вещб, как собака:

if(!@$abc)$abc=0;

Все...

Ошибка будет отключена только на эту строчку (оператор). Этот прием пиличен, в отличие от редактирования PHP.ini, и, мало того, повсеместно используется, как самый удобный, и быстрый.
 За Родину! За Россию!
SendMail для любого хостинга.

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Цитировать
if(!@$abc)$abc=0;
 через error_reporting() удобнее. Один раз прописал и на весь скрипт. И не надо везде собак прописывать/удалять
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Дмитрий Попов

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 264
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.programmist.spb.ru
Макс ...

Я(да и не только я ) всегда рекомендую выставлять error_reporting на максимум, а режим менять только после разработки (при выкладывании на сервер).

Код должен быть аккуратным!

И ошибок (даже логических) должно быть мало...

См. подпись.
 За Родину! За Россию!
SendMail для любого хостинга.

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Цитировать
Я(да и не только я ) всегда рекомендую выставлять error_reporting на максимум, а режим менять только после разработки (при выкладывании на сервер).
Вот именно поэтому и стоит использовать error_reporting() вместо многочисленных собак. При разработке поставил на максимум а перед открытием проэкта только одну строку изменить чтоб на 0 поставить
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Дмитрий Попов

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 264
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.programmist.spb.ru
Макс

Угу... А во время разработки все-время читать эту надпись?
 За Родину! За Россию!
SendMail для любого хостинга.

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Цитировать
Угу... А во время разработки все-время читать эту надпись?
Мне они они не мешают (наоборот помогают в отладке). К тому же я стараюсь писать чтобы и при error_reporting(E_ALL); их было поменьше, так что проблем не вижу
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28