| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Безопасность переменных |
| Автор: Aliance 1.9.2005, 22:54 | ||
Безопасно ли такое применение кода:
Т.е. я назвал переменную так же, как получаемую в массиве от формы, это правильно? Точнее безопасно? И лучше избегать такого или нет? |
| Автор: Mont 2.9.2005, 05:27 |
| Если REGISTR_GLOBALS - on, и ты перед использованием этой переменной ей ничего не присваиваешь, то проблемы могут быть. А если ты ей присваиваешь какое-либо значение перед тем как испльзовать ее где-либо в скрипте, то ничего страшного ИМХО. |
| Автор: -=Ustas=- 2.9.2005, 08:14 |
| Нежелательно использовать имена переменных, которые находяться в массвие _POST или _GET. Потому как будет путаница у разных хостеров. |
| Автор: Alone 2.9.2005, 11:52 |
| -=Ustas=- Это почему же? |
| Автор: -=Ustas=- 2.9.2005, 13:13 |
| Да потому, что если REGISTR_GLOBALS - on, тогда объявление такой же переменной будет содержать значение из _POST или _GET. Поэтому имена лучше давать разные, чтоб потом самому не запутаться, но это уже как кому нравиться. |
| Автор: Cheba 2.9.2005, 13:25 |
| Но ведь приведенный выше код делает "мягкую" эмуляцию того самого REGISTR_GLOBALS = on. Только он еще и присваивает значение по умолчанию, так сказать. Именно в данном случае совершенно ничего страшного не случится при любом значении REGISTR_GLOBALS. |
| Автор: -=Ustas=- 2.9.2005, 13:38 |
| Я говорю не за вышеприведенный случай, а вообще, в принципе! |
| Автор: Aliance 2.9.2005, 15:45 | ||
Именно! Кроме того, у меня r_g off и при чем здесь другой хостер? Меня мой волнует |
| Автор: Mal Hack 2.9.2005, 16:16 |
| Вообще по хорошему var является зарезервированным словом. Затем... Зачем заводить лишнюю переменную? Работай сразу с $_POST массивом. Проверяя элементы через isset() |
| Автор: Aliance 2.9.2005, 16:49 |
| Я var как пример привел, есесно у меня не оно Ввожу переменную чтобы проверить, ввел ли юзер что-то. А если не ввел - подставляю значение по умолчанию. А isset() я негативно отношусь, наверное потому что до сих пор не понимаю ее предназначения |
| Автор: Mal Hack 2.9.2005, 16:59 | ||
Проверка существования переменной. |
| Автор: Kefir 3.9.2005, 12:25 |
| кстати, не знаю насчёт isset - иногда лучше empty. Т.к. переменная может быть создана, но быть пустой. Т.е. для проверки нужно ли ставить дефолтовые значения лучше использовать if(empty($foo)) $foo = $default_foo; Так будут ловиться ловится случаи и неустановленной и пустой переменной. |
| Автор: -=Ustas=- 3.9.2005, 12:37 | ||
А вот тут ты ошибаешься. Если переменная не установлена, и ты ее будешь проверять на пустое значение то у тебя в любом случае выскачит ошибка, типа undefined varable, и поэтому придется постоянно глушить - `@`, ИМХО. |
| Автор: Aliance 3.9.2005, 15:35 |
| Так можно сперва isset() а потом empty() проверить |
| Автор: Mal Hack 3.9.2005, 16:20 | ||
Не будет варнинга, проверь. empty проверяет как существование переменной, так и значение, если переменная задана. |