![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Эмулирует работу register_globals = on Это сообщение отредактировал(а) Fortop - 14.7.2008, 14:13 -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
Feldmarschall, результат: я имел ввиду ещё ошибку, помимо false
|
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
то есть, ты всегда пишешь
действительно, любую переменную надо проверять перед использованием. а то вдруг будет ошибка?! Добавлено через 4 минуты и 26 секунд получение значения REQUEST_METHOD - это $_SERVER['REQUEST_METHOD'] а код $method = $_SERVER['REQUEST_METHOD']; - это присвоение значения переменной. Когда пишут $var = что-то - это значит, что переменной $var присваивают значение. Я был уверен,что это известно любому программисту на пхп. "разница" - это одно. "неправильно" - это совсем другое. Я написал большой текст, в котором, как мне казалось, смог объяснить, почему переменные надо инициализировать. Теперь я понимаю, что ничего ровным счетом не объяснил. |
|||
|
||||
nicka47 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 23.3.2005 Где: Грузия Репутация: нет Всего: нет |
Feldmarschall, мне кажеться вы цепляетесь к словам. Не каждый может идеально крректно поставить вопрос, я и так стараюсь как могу четко и понятно обьяснить, что хочу спросить.
Присвоение значения переменной за 10 лет работы с сайтами я усвоила Добавлено через 1 минуту и 27 секунд
возможно, но некоторые вещи до меня доходят постепенно. Добавлено через 4 минуты и 9 секунд Fortop, но применительно конкретно к переменным сессии? Означает ли это, что если я по урл передам переменную ааа со значением, и при наличии данного кода , то $_SESSION['ааа'] будет иметь это значение? |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Если register_globals = on, то после этого кода значение из сессии затрет значение переменной $aaa. Вообще это не слишком правильный способ работы с переменными которые могут прийти извне. Кто мешает обращаться напрямую к элементам массива? -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
во-первых, не "и так". ты не нам одолжение делаешь, задавая вопросы, а себе. во-вторых, если у тебя не получилось - надо снова задать, постаравшись пояснить свою мысль. А не начинать оправдываться. а если поняла - то описать, что именно. чтобы в тех местах, в которых не поняла, тебя поправили. В чем заключался вопрос про реквест метод? Ты поняла разницу между "чем отличается" и "почему неправильно"? Кто тебе сказал, что if ($var) - неправильно? Какой там был контекст? |
|||
|
||||
nicka47 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 23.3.2005 Где: Грузия Репутация: нет Всего: нет |
Feldmarschall, знаете что, я не маленькая девочка, чтобы разговаривать со мной в подобном тоне, спасибо большое за попытки помочь, но больше прошу не утруждать себя сообщениями в моих темах.
Добавлено @ 16:24
Добавлено через 7 минут и 2 секунды - никто, просто отстала от жизни, и вот теперь пытаюсь догнать. А с непривычки все кажеться , что как же это ужасно неудобно длинно будет вместо обычного $aaa, обращаться к любой внешней переменной через массив. НО раз другого выхода нет, то придеться приучаться. Это сообщение отредактировал(а) nicka47 - 14.7.2008, 16:26 |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
во-первых, непонятно какой смысл сессий теряется ![]() во-вторых, я на PHP пишу меньше года ![]() Можешь обращаться и к переменной - никто не запрещает. Но рекомендуется проверять и инициализировать все переменные. И не пользоваться register_globals = on -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
skyboy |
|
||||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
удивительно. т.е. ты думаешь, что люди работают с $_POST/$_GET и при каждом обращении к элементам проверяем на isset и т.д.? сколько ведь писали про инициализацию переменных... конечно, лучше и правильнее работать с переменной, в которой данные единожды проверены и обработаны должным образом, чем каждый раз обращаться к "сырым" данным, полученным от пользователя. Но возлагать перенос "из $_POST в мою переменную" надо не на register_globals. и не на цикл, который делает то же, что и register_globals. должна быть не универсальная, а точная - проверка и инициализация. например, так(в $_POST['year'] - значение года, введенное пользователем):
меня удивляет, как это не пришло тебе в голову. |
||||
|
|||||
nicka47 |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 23.3.2005 Где: Грузия Репутация: нет Всего: нет |
в том, что если перемення поданная через урл будет затирать переменную сессии, то идентификация пользователя при логине теряет смысл... skyboy, да я собственно об этом твоем примере и сказала, что длинно и неудобно, с непривычки конечно. Ну представь просто, форма у меня на....ну на 20 допустим элементов, и вместо
я буду писать с каждой переменой сперва
это как раздует обьемы и время написания моего нынешнего кода я не жалуюсь, я просто уточняю, поскольку для меня это стало новостью, я задаю много вопросов по одному и тому же вопросу, чтобы снова не мимо не проехать. |
||||
|
|||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
С формой все гораздо проще...
|
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
о. да. а так - всего три строчки, зато никакой проверки на корректность значения не надо. и везде надо будет лепить isset перед использованием, потому что коль переменной $_POST['field'] не было получено, то и переменная $field твоим кодом не создастся. конечно, код
будет компактнее, чем одна инициализация. ога. |
|||
|
||||
Feldmarschall |
|
|||
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Ну. можно поступить и проще. ^E_NOTICE - и никаких вообще проблем...
Тут мы сталкиваемся с еще одной стороной этой проблемы. инициализация нужна программисту. Это очень тонкий момент, который важно понять. Что мы делаем это для себя, а не для тупого компилятора, чтобы отвязался. Если же только наведения красоты в error_log-е - право, выставления уровня отображения будет вполне достаточно... |
|||
|
||||
Fortop |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Все перепутано в датском королевстве. В твоем случае сессия затирает, а не сессию затирают.
Хоть 300. можешь создать простой массив, для всех данных которые могут прийти к тебе из формы. (более того из связанного с ним другого массива, можно саму форму генерировать автоматически, а не рисовать ее ручками).
дальше несложная функция
а уже после этого можешь пользоваться кодом аналогичным приведенному тобой
и работать как тебе привычно, но уже будучи твердо уверенной что данные у тебя везде правильные и корректные. Добавлено через 3 минуты и 9 секунд Если подобный, приведенному выше, код вынесешь в отдельный модуль, который будешь подключать в свои проекты... Это кардинально сократит объемы и время написания твоего нынешнего кода. Вкупе с кардинально возросшей же безопасностью. -------------------- Мир это Я. Живее всех живых. |
||||||||||
|
|||||||||||
nicka47 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 23.3.2005 Где: Грузия Репутация: нет Всего: нет |
а как насчет такого простого метода? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |