Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Регистр Глобалс


Автор: anrs 27.7.2009, 03:08
Приветствую всех . 

Когда включён register_globals код работает нормально : 

if ($href) 
{
include_once "db/list_$href.txt";
}


Когда его выключаю , то $href перестаёт воспрениматься . Как сделать , чтобы с выключеным регистр глобал работало ? 

Благодарю . 

Автор: ruX 27.7.2009, 04:23
про register_globals вообще забудь.
$href это видимо переменная которую ты передаёшь?
вот и используй $_REQUEST['href'].
Лучше, если знаешь каким способом передаёшь переменную(GET || POST), можно воспользоваться массивами $_GET['href'], $_POST['href'] соответственно

Подробнее http://php.net/manual/en/reserved.variables.request.php

Если уж совсем никак, и хочется получить переменные не обращаясь к суперглобальным массивам тебе может вот http://www.php.net/manual/en/function.import-request-variables.php

Автор: Ипатьев 27.7.2009, 09:22
Код приемлемый для новичка, но с точки зрения безопасности и использования просто ужасен.

Код

$href = basename($_GET['href']); //обязательная проверка, чтобы нам не написали лишнего. 
$filename = "db/list_".$href.".txt";
if (!is_readable($filename)) { //проверить, существует ли файл
  header("Status: 404 Not Found"); //впрочем, этот код не сработает, поскольку над ним километр HTML
  exit;                                                //разумеется
}
readfile($filename); //если это просто текст, то и исполнять его не надо. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)