Включение register globals

Тема в разделе "Как сделать...", создана пользователем toty, 5 мар 2012.

  1. toty

    toty Постоялец

    Регистр.:
    1 авг 2011
    Сообщения:
    106
    Симпатии:
    2
    Подскажите как можно из PHP.ini включить его, если хостинг не поддерживает управление опциями PHP из .htaccess.

    А еще подскажите, как отказаться от подобного кода минимальными вложениями, как бы много всяких переменных в Globa даже сессия там идут...?
    PHP:
    <?
        GLOBAL 
    $p;
    if(
    $p == "users"):
        include(
    "mod/users.php");
    ?>
    <li><a href="?p=users">Пользователи</a></li>
     
  2. Inviseble_Demon

    Inviseble_Demon

    Регистр.:
    11 дек 2008
    Сообщения:
    482
    Симпатии:
    350
    Перечитайте вопрос... Там ответ - никак.

    Максимум можно написать аналог подобных деаний но это зло как и register globals
    Зачем вам вообще этот изврат !? Неужели так сложно получать данные из переменных $_GET $_POST !?
     
  3. toty

    toty Постоялец

    Регистр.:
    1 авг 2011
    Сообщения:
    106
    Симпатии:
    2
    Нет не сложно, переписывать не хочется, то что было написано давно и не мной:)
    А что через PHP.ini который в корне, подобное не заработает?

    К тому же как-то не понятно, что делать с
    http://$SERVER_NAME/index.php?p=adm&action=main&sname=smain где много переменных передается. Пробовал так, не все работает:
    PHP:
    if(isset($_GET['p']) && is_string($_GET['p']) $p stripslashes($_GET['p']);
    {
    if(isset(
    $_GET['action']) && is_string($_GET['action']))
    {
    $action stripslashes($_GET['action']);
    }
     
    if(
    $action == false):
    echo 
    $action;
    endif;
     
    if(isset(
    $_GET['sname']) && is_string($_GET['sname']))
    {
    $sname stripslashes($_GET['sname']);
    }
     
    echo 
    $sname;
    }
     
  4. DrakonHaSh

    DrakonHaSh

    Регистр.:
    29 июн 2010
    Сообщения:
    358
    Симпатии:
    122
    доступ к изменению register globals через .htaccess вроде как не разрешен.

    а вообще вам в гугл с вопросом эмуляция register_globals
    =>
    Следующее эмулирует register_globals установленную в On.
    PHP:
    <?php
    // Emulate register_globals on
    if (!ini_get('register_globals')) {
        
    $superglobals = array($_SERVER$_ENV,
            
    $_FILES$_COOKIE$_POST$_GET);
        if (isset(
    $_SESSION)) {
            
    array_unshift($superglobals$_SESSION);
        }
        foreach (
    $superglobals as $superglobal) {
            
    extract($superglobalEXTR_SKIP);
        }
        
    ini_set('register_globals'true);
    }
    ?>
     
  5. Milord

    Milord

    Регистр.:
    16 янв 2008
    Сообщения:
    256
    Симпатии:
    24
    Объясни, зачем тебе нужен эмулятор регистр глобалс если в версии пхп 5.4 он вообще удален
    Читай темуОшибка deprication или переход на версию php 5.3

    для включения на версии 5.3 тебе надо на хостинге вручную зайти в пхп и повключать регист глобалс
     
  6. toty

    toty Постоялец

    Регистр.:
    1 авг 2011
    Сообщения:
    106
    Симпатии:
    2
    Вот и я думаю, как бы от этого избавиться. Хостер не будет всем это включать, на виртуальном хостинге.
     
  7. Milord

    Milord

    Регистр.:
    16 янв 2008
    Сообщения:
    256
    Симпатии:
    24
    избавление одно переписывать код или понижать версию пхп
     
  8. DrakonHaSh

    DrakonHaSh

    Регистр.:
    29 июн 2010
    Сообщения:
    358
    Симпатии:
    122
    код, который я привел выше, при желании работает и на 5.4
     
  9. Da1VeR

    Da1VeR Постоялец

    Регистр.:
    22 фев 2012
    Сообщения:
    128
    Симпатии:
    21
    2toty

    А более конкретно зачем Вам register globals, что именно конкретно в Вашем проекте они используют, может можно просто другим путем обойти...
     
  10. toty

    toty Постоялец

    Регистр.:
    1 авг 2011
    Сообщения:
    106
    Симпатии:
    2
    Url + ЧПУ + Сессия