Переменная в адресной строке

Статус
В этой теме нельзя размещать новые ответы.

LEXAlForpostl

Мой дом здесь!
Регистрация
21 Май 2008
Сообщения
766
Реакции
228
Здравствуйте.
Есть скрипт
PHP:
<?
echo $id+1;
?>
$id надо определять в адресной строке index.php?id=5
Но скрипт у меня выводит 1, хотя должен вывести 6. Что не так делаю?
 
ну так нет у тебя инициализации переменной данными из запроса
PHP:
<?
$id=(int)$_GET['id']; 
echo $id+1; 
?>
или включай register_globals , что категорически не советую
 
а чем
PHP:
extract ($_GET)
плох? если можно с примерами
 
diavolic

PHP:
 $user = 'user'; // типа  прошла регистрация и определили к какой группе пользователей принадлежит посетитель 
/*
 много кода 
*/
extract ($_GET);

if($user == "admin" )// бредовая проверка привилегий 
    echo 'это админ .. даем ему доступ к ресурсам ';    
 else
    echo 'это юзер .. ничего ему не даем ';

ну и если, к примеру, посетитель будет простым юзером, но пройдет по ссылке ?user=admin то в данном примере он получит доступ к админским ресурсам...

короче через вызов extract ($_GET); можно легко перезатереть уже определенные переменные

в ф-цию extract вторым параметром можно передать константу EXTR_SKIP благодаря которой уже существующие переменные сохранят свое прежнее значение ..... но всеже лучше использовать вариант $id=(int)$_GET['id'];
здесь наглядно видно откуда инициализируется переменная в коде, + ее тип... да и такие переменные будут сосредоточены в одном месте что улучшит читаемость кода, а не так что где-то вверху сделали extract ($_GET); по центру extract ($_POST); а в конце кода используют $id .. - и догадайся откуда она взялась ...
 
расскажите мне как можно переписать уже определенные переменные, если extract у меня идет самой первой строкой в скрипте, до конфига и прочего? ведь определение переменных идет ниже извлечения переменных из запроса
 
входные данные в строке $_GET['id']=1;
?id=1
extract($_GET);
$id=$id+1;
---
проблемы невижу )
если это константа то НИКАК на то она и константа
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху