Forum Webscript.Ru

Программирование => PHP => Тема начата: Andruha от 12 Августа 2002, 07:53:48

Название: Помогите чайнику. Проблема с передачей параметров.
Отправлено: Andruha от 12 Августа 2002, 07:53:48
Я новичок в php, только осваиваю. Такой вот вопрос:
Мой скрипт обрабатывает переменную, которая ему передается по урл, типа
script.php?abc=123.
А если я запрашиваю script.php без параметров, то
выдается ошибка в том месте, где скрипт должен ее обработать.
Undefined variable: abc.
Вообще логично...
Но как мне решить эту проблему? Может определить, был ли передан параметр, если нет, то присвоить значение "по умолчанию"?
Пользуюсь php 4.2.2.
Прошу извинить за возможно глупый вопрос, видимо где-то не дочитал документацию...
Заранее спасибо.
Название: Помогите чайнику. Проблема с передачей параметров.
Отправлено: я... от 12 Августа 2002, 09:55:31
супер вопрос! лучшего не встречал!
ладно, это офф...
все равно никто не ответит, слушай сюда:
там, где у тебя стоит обработка переменной, можешь поставить такой узел:
if(!$abc)$abc=0;
но можно и по-другому извращаться, можешь тем-же узлом обойти часть, программы, где она с этой переменной работает...
А вообще BAD QUESTION, imho... =(
Название: Помогите чайнику. Проблема с передачей параметров.
Отправлено: Andruha от 12 Августа 2002, 10:45:31
Хм... Сорри, конечно, но вообще-то с самого начала был именно такой вариант... В том-то вся и херня, что ошибка все равно вылезает ссылаясь именно на эту строчку, хотя так вроде быть не должно. Хотелось бы найти такое решение, чтобы ошибки небыло (вариант с отключением отображения ошибок не рассматривается :)).
Может это глюк конкретной версии php (4.2.2)?
Название: Помогите чайнику. Проблема с передачей параметров.
Отправлено: Alexandr от 12 Августа 2002, 11:57:55
if (!isset($abc)) $abc=0;
//если переменная $abc не определена, то присваем = 0;
Название: Помогите чайнику. Проблема с передачей параметров.
Отправлено: Alexandr от 12 Августа 2002, 12:00:15
[off]
я...
Цитировать
супер вопрос! лучшего не встречал!
ладно, это офф...
все равно никто не ответит, слушай сюда:

не надо понтов. Я думаю ок. 30% начинающих сталкивались с такой лажей.
[/off]
Название: Помогите чайнику. Проблема с передачей параметров.
Отправлено: Меняздесьдавнонет от 12 Августа 2002, 12:02:27
Это не глюк, это фича.
Название: Помогите чайнику. Проблема с передачей параметров.
Отправлено: GotZfild от 12 Августа 2002, 12:06:25
Цитировать
вариант с отключением отображения ошибок не рассматривается

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

error_reporting  =  E_ALL & ~E_NOTICE
Название: Помогите чайнику. Проблема с передачей параметров.
Отправлено: Unregistered от 12 Августа 2002, 12:10:20
[OFF]Alexandr и Andruha, сорри если вас обидел... хреного мне, но это личное...[/OFF]
Название: Помогите чайнику. Проблема с передачей параметров.
Отправлено: я... от 12 Августа 2002, 12:11:21
[OFF]забыл подписаться, how ever... =((([/OFF]
Название: Помогите чайнику. Проблема с передачей параметров.
Отправлено: Дмитрий Попов от 12 Августа 2002, 20:58:27
Andruha

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

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

Все...

Ошибка будет отключена только на эту строчку (оператор). Этот прием пиличен, в отличие от редактирования PHP.ini, и, мало того, повсеместно используется, как самый удобный, и быстрый.
Название: Помогите чайнику. Проблема с передачей параметров.
Отправлено: Макс от 12 Августа 2002, 21:14:19
Цитировать
if(!@$abc)$abc=0;
 через error_reporting() удобнее. Один раз прописал и на весь скрипт. И не надо везде собак прописывать/удалять
Название: Помогите чайнику. Проблема с передачей параметров.
Отправлено: Дмитрий Попов от 12 Августа 2002, 21:31:06
Макс ...

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

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

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

См. подпись.
Название: Помогите чайнику. Проблема с передачей параметров.
Отправлено: Макс от 12 Августа 2002, 21:45:11
Цитировать
Я(да и не только я ) всегда рекомендую выставлять error_reporting на максимум, а режим менять только после разработки (при выкладывании на сервер).
Вот именно поэтому и стоит использовать error_reporting() вместо многочисленных собак. При разработке поставил на максимум а перед открытием проэкта только одну строку изменить чтоб на 0 поставить
Название: Помогите чайнику. Проблема с передачей параметров.
Отправлено: Дмитрий Попов от 13 Августа 2002, 18:53:17
Макс

Угу... А во время разработки все-время читать эту надпись?
Название: Помогите чайнику. Проблема с передачей параметров.
Отправлено: Макс от 13 Августа 2002, 19:03:22
Цитировать
Угу... А во время разработки все-время читать эту надпись?
Мне они они не мешают (наоборот помогают в отладке). К тому же я стараюсь писать чтобы и при error_reporting(E_ALL); их было поменьше, так что проблем не вижу
Название: Помогите чайнику. Проблема с передачей параметров.
Отправлено: Дмитрий Попов от 13 Августа 2002, 19:06:46
Макс
Ладно, здесь мы не содемся во взглядах (каждый делает так, как ему удобнее .`-))