Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.08;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.067 c
15-1172053340
IMHO
2007-02-21 13:22
2007.04.08
Сталин был велик?


15-1173627016
Petr V.Abramov
2007-03-11 18:30
2007.04.08
PL/SQL Developer и Oracle 10.2.0.2


2-1173797301
koha
2007-03-13 17:48
2007.04.08
Интересный вопрос


3-1169051639
Kerk
2007-01-17 19:33
2007.04.08
[FireBird] Вставка строк в таблицу


15-1173813639
MsGuns
2007-03-13 22:20
2007.04.08
Гребенщиковский "Аэростат"