Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];

Вниз

не присваеваится значение переменной.   Найти похожие ветки 

 
php-er   (2007-03-11 12:25) [0]

Привет, на странице есть ссылка view.php?razd=1, на странице view.php не существет такой перемненной!! Почему? Пишу там - echo $razd - ничего не выводится..Помогите.


 
Юрий ©   (2007-03-11 12:36) [1]

http://www.phpfaq.ru/all#globals


 
clickmaker ©   (2007-03-11 12:41) [2]

глобальные переменные - это не есть очень хорошо.
Почему бы явно к ней не обращаться?
$v = $_GET["razd"];


 
Юрий ©   (2007-03-11 12:42) [3]

> [2] clickmaker ©   (11.03.07 12:41)
> глобальные переменные - это не есть очень хорошо.

Это не есть уже правильно. ;)


 
php-er   (2007-03-11 12:43) [4]

ух ты, спасибо.


 
Real ©   (2007-03-11 20:40) [5]


> Это не есть уже правильно. ;)

Да, и почему же?


 
ПЧЁЛ   (2007-03-11 20:43) [6]

Ещё
print_r($_REQUEST);
print_r($_GET);
print_r($_POST);
подскажет много интересного.


 
Юрий ©   (2007-03-11 21:18) [7]

По умолчанию register_globals установлен в off, начиная с версии 4.2.0.
http://ru2.php.net/manual/ru/security.globals.php
К тому же, использование его сейчас, считается устаревшим подходом.


 
Real ©   (2007-03-11 21:40) [8]


> По умолчанию register_globals установлен в off, начиная
> с версии 4.2.0.
> http://ru2.php.net/manual/ru/security.globals.php
> К тому же, использование его сейчас, считается устаревшим
> подходом.

Устаревший подход и неправильный подход - это не синонимы. Использование глобальных переменных - да, потенциально более опасно и хостеров чаще всего отключено. Если разработчик не уделяет внимания фильтрации данных приходящих извне (которые можно передать скрипту необязательно через параметры в строке запроса) то его не спасет и отключение глобальных переменных.


 
Юрий ©   (2007-03-11 21:48) [9]

> [8] Real ©   (11.03.07 21:40)
> Устаревший подход и неправильный подход - это не синонимы.

Неправильный подход, потому что у "хостеров чаще всего отключено", и отключено не просто так, к тому же, лишняя работа. ИМХО.

PS. Не буду спорить, у каждого свой взгляд.


 
php-er   (2007-03-12 06:40) [10]

Хорошо, если это не слишком хорошо, подскажите как лучше?
есть 19 тематических разделов, пользователь выбирает ссылку и попадает в один из них, на этой странице (одна страница) переменная принимает значение, переданное ей из адресной строки, а она в свою очередь - учавствует в параметризованном вызове select-a всех записей с указанным значением раздела.Конечно, можно удалить данную переменную из строки, но я в скрипте прроверяю ее существование, да и если указать значение, в базе которого нет, запрос не вернет ведь записей.
Может сделать 19 каталогов, в каждом из которых есть страница, где явно присваетвается значение раздела, а затем подгружается скрипт запроса?
Вообщем, подскажите, какие есть еще варианты?


 
Юрий ©   (2007-03-12 12:03) [11]

> [10] php-er   (12.03.07 06:40)
> Хорошо, если это не слишком хорошо, подскажите как лучше?

Обсуждение не относилось к $v = $_GET["razd"];
Делайте как сказал clickmaker, через $_GET.

> [10] php-er   (12.03.07 06:40)
> да и если указать значение, в базе которого нет, запрос
> не вернет ведь записей.

На это надеяться не стоит. Например запрос:
view.php?razd=1; drop table mypages;
В вашем коде:
select * from mypages where id=$_GET["razd"]
Получается:
select * from mypages where id=1; drop table myusers;

Так что проверка нужна. :)


 
Юрий ©   (2007-03-12 12:08) [12]

> [11] Юрий ©   (12.03.07 12:03)
> На это надеяться не стоит. Например запрос:
> view.php?razd=1; drop table mypages;

Конечно же:
view.php?razd=1; drop table myusers;


 
php-er   (2007-03-12 13:35) [13]


> Конечно же:
> view.php?razd=1; drop table myusers;

спасибо...
только откуда злоумышленник узнает имя таблицы?
Получается мне нужно проверять переменную, не равно ли она одному значению из 19?


 
Юрий ©   (2007-03-12 13:38) [14]

> [13] php-er   (12.03.07 13:35)
> Получается мне нужно проверять переменную, не равно ли она
> одному значению из 19?

Просто проверяйте, является ли она числом, или приводите к числу:
$id = intval($_GET["razd"]);



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.057 c
2-1174455382
User_OKA
2007-03-21 08:36
2007.04.08
Алгоритм


2-1174406514
Lexa11_2002
2007-03-20 19:01
2007.04.08
Как в DLL добавить формы


2-1173945275
niko_
2007-03-15 10:54
2007.04.08
Загрузка в память какой то части файла


6-1161536281
-=Germe$=-
2006-10-22 20:58
2007.04.08
....


2-1173859619
AHTOH
2007-03-14 11:06
2007.04.08
Работа с файлами в NT/XP с ограниченными правами





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский