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

Тема в разделе "PHP", создана пользователем LEXAlForpostl, 14 сен 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    708
    Симпатии:
    225
    Здравствуйте.
    Есть скрипт
    PHP:
    <?
    echo 
    $id+1;
    ?>
    $id надо определять в адресной строке index.php?id=5
    Но скрипт у меня выводит 1, хотя должен вывести 6. Что не так делаю?
     
    Iwashka нравится это.
  2. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    ну так нет у тебя инициализации переменной данными из запроса
    PHP:
    <?
    $id=(int)$_GET['id']; 
    echo 
    $id+1
    ?>
    или включай register_globals , что категорически не советую
     
    Iwashka нравится это.
  3. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    а чем
    PHP:
    extract ($_GET)
    плох? если можно с примерами
     
  4. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    364
    Симпатии:
    117
    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 .. - и догадайся откуда она взялась ...
     
  5. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    расскажите мне как можно переписать уже определенные переменные, если extract у меня идет самой первой строкой в скрипте, до конфига и прочего? ведь определение переменных идет ниже извлечения переменных из запроса
     
  6. CrashX

    CrashX В прошлом XSiteCMS

    Регистр.:
    6 июн 2008
    Сообщения:
    682
    Симпатии:
    112
    входные данные в строке $_GET['id']=1;
    ?id=1
    extract($_GET);
    $id=$id+1;
    ---
    проблемы невижу )
    если это константа то НИКАК на то она и константа
     
Статус темы:
Закрыта.