Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Global variables


Автор: VVp 20.2.2004, 17:31
Народ, кто может толком объяснить, чем так опасен subj?
Я так понимаю все ведь дело лишь в "кривизне" рук программиста. Если скрипт написан правильно, опасности ведь никакой нет? Или я не прав?

Автор: Master 20.2.2004, 17:36
прав.

Автор: nicka 23.2.2004, 12:51
А что это - subj???

Автор: [xoodo] 23.2.2004, 13:33
subj == subject == предмет == тема сообщения == ... И. т. д. и т. п.

Чтоб оффтопика не было, скажу, что сам всегда избегаю глобальных переменных где только можно. С локальными проще, чисто по-человечески проще отслеживать, что, куда и откуда ноги растут... Старая привычка: переменная должна быть доступна только там, где она реально нужна, и нигде более.

Автор: nicka 23.2.2004, 15:07
А какая связь между subj и глобальными переменнымиconfused.gif

Автор: [xoodo] 23.2.2004, 17:01
Потому что тема называется "ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ".
Код
$subj = "ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ";
print $subj;
print "ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ";

Результат одинаковый. Следовательно, когда глазу передается копия переменной $subj, значит, передается строка "ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ".

Автор: MuToGeN 24.2.2004, 00:01
Модератор: хватит флеймить

Автор: Master 24.2.2004, 00:47
Это кому как...
Я никогда не пренебрегал возможностью использовать глобалы....
так писанины меньше и понять потом все проще.

А что касается опасности, то как уже говорили... это исключительная криворукость, а не проблема глобалных переменных.

Автор: VVp 24.2.2004, 14:32
Вот я тоже никогда не пренебрегаю использованием ГП, мне кажется так нагляднее, а все, что связано с безопастностью идет через сессии. Вроде бы проблем никогда не было.

Автор: nicka 26.2.2004, 15:06
а что переменные сессии и глобальные переменные не одно и тоже?

Цитата

$subj = "ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ";
print $subj;
print "ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ";


И откуда я знала что он эту сою глобальную переменную сохранил в $subj??

Автор: Vaulter 26.2.2004, 16:10
тут скорее не опасность, а не удобство
пишешь на одной системе с глоб переменными, закачиваешь на другой хост. а там, ОПА, и не включены глоб переменные...
облом )

Автор: IZ@TOP 26.2.2004, 18:55
Цитата
тут скорее не опасность, а не удобство
пишешь на одной системе с глоб переменными, закачиваешь на другой хост. а там, ОПА, и не включены глоб переменные...
облом )
, что значит не включеныconfused.gif Это регистрация из массивов, переменных, может быть отключена, а все $_GET, $_POST, $_ETC включены всегда smile.gif

nicka, все дело в том, что если ты пишеш в названии темы, суть вопроса целиком, то вместо того что бы писать в самом сообщении то же самое, ты просто ссылаешся на название темы словом subj (можно так же САБЖ, СУБЖ... кому как нравится)...

Автор: Vaulter 26.2.2004, 21:31
Iz@top
я про register_globals ;)

Автор: VVp 27.2.2004, 14:54
>>Vaulter
Собственно вопрос и возник при переносе с одного хоста на другой, конечно несложно в начале скрипта взять все переменные из _POST, но, согласись, не самое приятное занятие, по крайней мере, когда их больше 10.

Автор: Vaulter 27.2.2004, 18:36
VVp
это можн сделать так:
Код

@extract($_POST, EXTR_SKIP);


Автор: Cheba 28.2.2004, 18:57
Цитата
@extract($_POST, EXTR_SKIP);
Вот изза этого и хакают сайты. ;)

Автор: -=::BlackCat::=- 28.2.2004, 19:20
Цитата
Вот изза этого и хакают сайты. ;)


поподробней пожалуйста biggrin.gif

Автор: Vaulter 29.2.2004, 03:50
Cheba
согласен, см выше ;)

Автор: nicka 29.2.2004, 11:49
Iz@top,
Цитата
nicka, все дело в том, что если ты пишеш в названии темы, суть вопроса целиком, то вместо того что бы писать в самом сообщении то же самое, ты просто ссылаешся на название темы словом subj (можно так же САБЖ, СУБЖ... кому как нравится)...
,
теперь ясно, это ответ

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)