Что такое код import_request_variables

Какова правильная (безопасная) альтернатива PHP import_request_variables?

Полное раскрытие: я не программист PHP, скорее программист Javascript/Node, но я пытаюсь помочь другу исправить фатальную ошибку PHP на их сайте.

Я посмотрел его и import_request_variables() устарела.

Соответствующий фрагмент кода такой: я заметил, что разработчик, похоже, опробовал более современную форму (?) И отказался от нее.

Я нашел решение по переполнению стека здесь Php import_request_variable перестал работать, который предлагает использовать тот же метод извлечения

Это правильный метод для подражания? Я читал в других постах (например, здесь), что это может привести к ошибкам безопасности, как и документация PHP здесь

и что лучше всего импортировать переменные специально, но я не уверен, что я достаточно опытен в PHP, чтобы просмотреть весь код и выяснить, где каждая переменная используется.

Какой лучший способ решить эту проблему быстро и безопасно?

Спасибо за любую помощь!

Это код, где используются переменные, для чего это стоит

Экспорт и импорт

Директивы экспорт и импорт имеют несколько вариантов вызова.

В предыдущей главе мы видели простое использование, давайте теперь посмотрим больше примеров.

Экспорт до объявления

Мы можем пометить любое объявление как экспортируемое, разместив export перед ним, будь то переменная, функция или класс.

Например, все следующие экспорты допустимы:

Обратите внимание, что export перед классом или функцией не делает их Не найдена статья «function-expressions-arrows» . Это всё также объявление функции, хотя и экспортируемое.

Большинство руководств по стилю кода в JavaScript не рекомендуют ставить точку с запятой после объявлений функций или классов.

Поэтому в конце export class и export function не нужна точка с запятой:

Экспорт отдельно от объявления

Также можно написать export отдельно.

Здесь мы сначала объявляем, а затем экспортируем:

…Или, технически, мы также можем расположить export выше функций.

Импорт *

Обычно мы располагаем список того, что хотим импортировать, в фигурных скобках import <. >, например вот так:

Но если импортировать нужно много чего, мы можем импортировать всё сразу в виде объекта, используя import * as . Например:

На первый взгляд «импортировать всё» выглядит очень удобно, не надо писать лишнего, зачем нам вообще может понадобиться явно перечислять список того, что нужно импортировать?

Для этого есть несколько причин.

Современные инструменты сборки (webpack и другие) собирают модули вместе и оптимизируют их, ускоряя загрузку и удаляя неиспользуемый код.

Предположим, мы добавили в наш проект стороннюю библиотеку say.js с множеством функций:

Теперь, если из этой библиотеки в проекте мы используем только одну функцию:

…Тогда оптимизатор увидит, что другие функции не используются, и удалит остальные из собранного кода, тем самым делая код меньше. Это называется «tree-shaking».

Явно перечисляя то, что хотим импортировать, мы получаем более короткие имена функций: sayHi() вместо say.sayHi() .

Явное перечисление импортов делает код более понятным, позволяет увидеть, что именно и где используется. Это упрощает поддержку и рефакторинг кода.

Импорт «как»

Мы также можем использовать as , чтобы импортировать под другими именами.

Например, для краткости импортируем sayHi в локальную переменную hi , а sayBye импортируем как bye :

Экспортировать «как»

Аналогичный синтаксис существует и для export .

Давайте экспортируем функции, как hi и bye :

Теперь hi и bye – официальные имена для внешнего кода, их нужно использовать при импорте:

Экспорт по умолчанию

На практике модули встречаются в основном одного из двух типов:

  1. Модуль, содержащий библиотеку или набор функций, как say.js выше.
  2. Модуль, который объявляет что-то одно, например модуль user.js экспортирует только class User .

По большей части, удобнее второй подход, когда каждая «вещь» находится в своём собственном модуле.

Естественно, требуется много файлов, если для всего делать отдельный модуль, но это не проблема. Так даже удобнее: навигация по проекту становится проще, особенно, если у файлов хорошие имена, и они структурированы по папкам.

Модули предоставляют специальный синтаксис export default («эспорт по умолчанию») для второго подхода.

Ставим export default перед тем, что нужно экспортировать:

Заметим, в файле может быть не более одного export default .

…И потом импортируем без фигурных скобок:

Импорты без фигурных скобок выглядят красивее. Обычная ошибка начинающих: забывать про фигурные скобки. Запомним: фигурные скобки необходимы в случае именованных экспортов, для export default они не нужны.

Именованный экспорт Экспорт по умолчанию
export class User export default class User
import from . import User from .

Технически в одном модуле может быть как экспорт по умолчанию, так и именованные экспорты, но на практике обычно их не смешивают. То есть, в модуле находятся либо именованные экспорты, либо один экспорт по умолчанию.

Так как в файле может быть максимум один export default , то экспортируемая сущность не обязана иметь имя.

Например, всё это – полностью корректные экспорты по умолчанию:

Это нормально, потому что может быть только один export default на файл, так что import без фигурных скобок всегда знает, что импортировать.

Без default такой экспорт выдал бы ошибку:

Имя «default»

В некоторых ситуациях для обозначения экспорта по умолчанию в качестве имени используется default .

Например, чтобы экспортировать функцию отдельно от её объявления:

Или, ещё ситуация, давайте представим следующее: модуль user.js экспортирует одну сущность «по умолчанию» и несколько именованных (редкий, но возможный случай):

Вот как импортировать экспорт по умолчанию вместе с именованным экспортом:

И, наконец, если мы импортируем всё как объект import * , тогда его свойство default – как раз и будет экспортом по умолчанию:

Довод против экспортов по умолчанию

Именованные экспорты «включают в себя» своё имя. Эта информация является частью модуля, говорит нам, что именно экспортируется.

Именованные экспорты вынуждают нас использовать правильное имя при импорте:

…В то время как для экспорта по умолчанию мы выбираем любое имя при импорте:

Так что члены команды могут использовать разные имена для импорта одной и той же вещи, и это не очень хорошо.

Обычно, чтобы избежать этого и соблюсти единообразие кода, есть правило: имена импортируемых переменных должны соответствовать именам файлов. Вот так:

Тем не менее, в некоторых командах это считают серьёзным доводом против экспортов по умолчанию и предпочитают использовать именованные экспорты везде. Даже если экспортируется только одна вещь, она всё равно экспортируется с именем, без использования default .

Это также немного упрощает реэкспорт (смотрите ниже).

Реэкспорт

Синтаксис «реэкспорта» export . from . позволяет импортировать что-то и тут же экспортировать, возможно под другим именем, вот так:

Зачем это нужно? Рассмотрим практический пример использования.

Представим, что мы пишем «пакет»: папку со множеством модулей, из которой часть функционала экспортируется наружу (инструменты вроде NPM позволяют нам публиковать и распространять такие пакеты), а многие модули – просто вспомогательные, для внутреннего использования в других модулях пакета.

Структура файлов может быть такой:

Мы бы хотели сделать функционал нашего пакета доступным через единую точку входа: «главный файл» auth/index.js . Чтобы можно было использовать его следующим образом:

Идея в том, что внешние разработчики, которые будут использовать наш пакет, не должны разбираться с его внутренней структурой, рыться в файлах внутри нашего пакета. Всё, что нужно, мы экспортируем в auth/index.js , а остальное скрываем от любопытных взглядов.

Так как нужный функционал может быть разбросан по модулям нашего пакета, мы можем импортировать их в auth/index.js и тут же экспортировать наружу.

Теперь пользователи нашего пакета могут писать import from «auth/index.js» .

Запись export . from . – это просто более короткий вариант такого импорта-экспорта:

Реэкспорт экспорта по умолчанию

При реэкспорте экспорт по умолчанию нужно обрабатывать особым образом.

Например, у нас есть user.js , из которого мы хотим реэкспортировать класс User :

export User from ‘./user.js’ не будет работать. Казалось бы, что такого? Но возникнет синтаксическая ошибка!

Чтобы реэкспортировать экспорт по умолчанию, мы должны написать export , как в примере выше. Такая вот особенность синтаксиса.

export * from ‘./user.js’ реэкспортирует только именованные экспорты, исключая экспорт по умолчанию.

Если мы хотим реэкспортировать и именованные экспорты и экспорт по умолчанию, то понадобятся две инструкции:

Такое особое поведение реэкспорта с экспортом по умолчанию – одна из причин того, почему некоторые разработчики их не любят.

Итого

Вот все варианты export , которые мы разобрали в этой и предыдущей главах.

Вы можете проверить себя, читая их и вспоминая, что они означают:

  • Перед объявлением класса/функции/…:
    • export [default] class/function/variable .
  • Отдельный экспорт:
    • export .
  • Реэкспорт:
    • export from «module»
    • export * from «module» (не реэкспортирует export default ).
    • export from «module» (реэкспортирует только export default ).
  • Именованные экспорты из модуля:
    • import from «module»
  • Экспорт по умолчанию:
    • import x from «module»
    • import from «module»
  • Всё сразу:
    • import * as obj from «module»
  • Только подключить модуль (его код запустится), но не присваивать его переменной:
    • import «module»

Мы можем поставить import/export в начало или в конец скрипта, это не имеет значения.

То есть, технически, такая запись вполне корректна:

На практике импорты, чаще всего, располагаются в начале файла. Но это только для большего удобства.

Обратите внимание, что инструкции import/export не работают внутри <. >.

Условный импорт, такой как ниже, работать не будет:

…Но что, если нам в самом деле нужно импортировать что-либо в зависимости от условий? Или в определённое время? Например, загрузить модуль, только когда он станет нужен?

Мы рассмотрим динамические импорты в следующей главе.

Передача значений из текстового поля

Есть некая БД. (Курсач — Интернет-магазин). Я пытаюсь сделать апдейт на количество товаров в корзине, но как то не особо получается. т.е. открывается страничка с КОНКРЕТНЫМ товаром, всё кроме «Количества» у него статическое,=> Количество отображается в текстовом поле. (Количество, разумеется, хранится в базе атрибутом). На этой странице пользователь, по идее, может сменить изначально полученное запросом «Количество». И хотелось бы, чтоб после изменения, пользователь нажимал на кнопку «Сохранить». В этот момент, нужно передать имеющиеся UserId, TovId и НОВОЕ, введенное пользователем только что, количество. Затем на новой странице будет запросик на Апдейт по Айдишничкам и Количеству. Так вот, проблема в передачи нового количества. (Мда, написал я наверно не самым лучшим образом. Но код поможет в случае чего. ) Не могу я записать как получить текущее Вэлью из текстового поля прям перед отправкой.

Страница первая, на которой инфо о конкретном товаре. Вот в этой странице загвоздка.

PS. Главная проблема в отсутствии навыков написания. В логике вроде всё понятно.

Что такое код import_request_variables

(PHP 4 >= 4.1.0, PHP 5)

import_request_variables — Import GET/POST/Cookie variables into the global scope

Description bool import_request_variables ( string types [, string prefix] )

Imports GET/POST/Cookie variables into the global scope. It is useful if you disabled register_globals , but would like to see some variables in the global scope.

Using the types parameter, you can specify which request variables to import. You can use ‘G’, ‘P’ and ‘C’ characters respectively for GET, POST and Cookie. These characters are not case sensitive, so you can also use any combination of ‘g’, ‘p’ and ‘c’. POST includes the POST uploaded file information. Note that the order of the letters matters, as when using «gp», the POST variables will overwrite GET variables with the same name. Any other letters than GPC are discarded.

The prefix parameter is used as a variable name prefix, prepended before all variable’s name imported into the global scope. So if you have a GET value named «userid», and provide a prefix «pref_», then you’ll get a global variable named $pref_userid.

If you’re interested in importing other variables into the global scope, such as SERVER, cons >extract() .

// This will import GET and POST vars
// with an «rvar_» prefix
import_request_variables ( «gP» , «rvar_» );

oops, a typo in my comment:

The last line in the second example (the on using the extract() function) should read:

echo $_GET[‘var’]; # prints 1, so $_GET has been unchanged

import_request_variables() does not copy the request variables into local scope variables. Instead, it copies the *reference* to the request variable content to local variables Important implication: any change to the local variable means a changes to the respective request variable, too!

This is a clear difference to extract($_GET) which copies the content of the request variables into local variables.

To shed some light on the implication, cons >
echo $_GET[‘var’]; # prints: 1
import_request_variables();
echo $var; # prints 1
$var = 2;
echo $_GET[‘var’]; # prints 2 .

So, $_GET has changed as well!

On the other hand:

echo $_GET[‘var’]; # prints: 1
extract($_GET);
echo $var; # prints 1
$var = 2;
echo $_GET[‘var’]; # prints 2 .

Because of this, I recommend NOT using import_request_variables(), but extract($_GET); extract($_POST); extract($_COOKIE); instead, since this combination bears not these unexspected side effects.

PS: not to mention that you have to reconsider your coding style if any need to import_request_variables arises at all!

Call me crazy, but it seems to me that if you use this function, even WITH the prefix, then you might as well just turn register_globals back on.

Sooner or later, somebody will find a «hole» with your prefixed variables in an un-initialized variable.

Better to import precisely the variables you need, and initialize anything else properly.

import_request_variables does *not* read from the $_GET, $_POST, or $_COOKIE arrays — it reads the data directly from what was submitted. This is an important distinction if, for example, the server has magic_quotes turned on and you massage the data to run stripslashes on it; if you then use import_request_variables, your variables will still have slashes in them.

In other words: even if you say $_GET=»»; $_POST=»»; then use import_request_variables, it’ll still get all the request data.

If you change the contents of $_GET and you then want to bring this data into global variables, use extract($_GET, EXTR_PREFIX_ALL, «myprefix») instead.

Функция import_request_variables()

Цитата (Leklerk @ 22.8.2009, 11:40 )
все преимущества включенной register_globals
Цитата
это какие же?

Ну, я имел в виду, так сказать, «быстроту и удобство».

Правильно: при отключении register_globals ты получаешь быстроту и удобство.

В туалет когда тебе хотелось и ты долго терпел, а потом сходил — помнишь чувство? Вот после перехода с register_lobals или удаления import_request_variables из кода почувствуешь то же самое: станет удобнее и быстрее писать.

Какова правильная (безопасная) альтернатива PHP import_request_variables?

Полное раскрытие: я не программист PHP, а программист Javascript / Node, но я пытаюсь помочь другу исправить фатальную ошибку PHP на их сайте.

Я посмотрел его, и import_request_variables() устарел.

Соответствующий фрагмент кода такой — я заметил, что Разработчик, похоже, опробовал более современную форму (?) и отказался от нее.

Я нашел решение по переполнению стека здесь Php import_request_variable остановлен работающий , который предлагает использовать тот же метод извлечения

Это правильный метод для подражания? Я читал в других постах (например, здесь), что это может привести к ошибкам безопасности, как и в документации по PHP здесь

и что лучше всего импортировать переменные специально, но Я не уверен, что я достаточно опытен в PHP, чтобы пройти через весь код и выяснить, где каждая переменная используется .

Каков наилучший способ быстро и безопасно решить эту проблему?

Спасибо за любую помощь!

Это код, в котором используются переменные, для чего стоит

forum.lissyara.su

Нас мало, нас адски мало.

ATSlog

Модераторы: GRooVE, alexco

  • Отправить тему по email
  • Версия для печати
  • Перейти на страницу:

Re: ATSlog

Услуги хостинговой компании Host-Food.ru

Re: ATSlog

Re: ATSlog

Re: ATSlog

Re: ATSlog

пытаюсь настроить сабж в связке с TDA-600, вот логи:

Re: ATSlog

Re: ATSlog

Re: ATSlog

Re: ATSlog

Re: ATSlog

Re: ATSlog

только не ругайте, я не очено в php силён. но всёже, если заменить
import_request_variables(«gPc», «rvar_»);
на
extract($_REQUEST, EXTR_PREFIX_ALL|EXTR_REFS, ‘rvar’);
в
../atslog/users/index.html — 22 строка
../atslog/settings/index.html — 42 строка
../atslog/phonebook/index.html — 21 строка
../atslog/lines/index.html — 23 строка
../atslog/intern/index.html — 23 строка
../atslog/include/set/functions.php -118 строка
../atslog/include/set/commonData.php — 7 строка

то вроде как работает

Re: ATSlog

Re: ATSlog

Re: ATSlog

Re: ATSlog

только не ругайте, я не очено в php силён. но всёже, если заменить
import_request_variables(«gPc», «rvar_»);
на
extract($_REQUEST, EXTR_PREFIX_ALL|EXTR_REFS, ‘rvar’);
в
../atslog/users/index.html — 22 строка
../atslog/settings/index.html — 42 строка
../atslog/phonebook/index.html — 21 строка
../atslog/lines/index.html — 23 строка
../atslog/intern/index.html — 23 строка
../atslog/include/set/functions.php -118 строка
../atslog/include/set/commonData.php — 7 строка

то вроде как работает

Re: ATSlog

FreeBSD.org
Если порт никем не поддерживается, а вы активно его используете, пожалуйста, подумайте над тем, чтобы добровольно стать его сопровождающим. Во FreeBSD имеется более 4000 портов без поддержки, и это как раз та область, где всегда нужны добровольцы.

FreeBSP — надо. Нам всем, в смысле всем кто пользуется.

Re: ATSlog

Помогите состыковать AtsLog с АТС AVAYA IPO 500 по IP.
Установил по инструкции, произвёл необходимые настройки. Выполнил atslogmaster sart, процесс запустился. В лог файле atstart.log пишет что конект прошел нормально. Но в другие файлы ничего не пишет. Ни notwrite.log (параметр debug=yes), ни currentcalls.log, ни calls.log.
Пробовал подключится telnet-ом по IP и порту, в ответ приходят строки с датой, временем и номерами абонентов кто куда звонит.
В параметре atslogd_flags= пробывал указывать atslogd_flags=-t, тоже не помогло.

Что ещё можно попробовать ?

Re: ATSlog

Работает, но наполовину. Т.е. не всегда обрабатываются строки приходящие от АТС, почему, так закономерность и не отследил, вроде ничем не отличаются от тех строк, которые обрабатываются.

Вот то, что приходит от АТС:

Re: ATSlog

(\d<2>) — это типа число из двух знаков
(\d+) — это типа число из n знаков
\s — это пробел, если с знаком + то я так понял n число пробелов
(\w+) — это типа word слово или буквы
А вот как например понять вот эту запись ([\w|\d|\s]+) ? Что означает символ | ? Что означают такие скобки [ ] ?

Что такое код import_request_variables

Профиль
Группа: Участник
Сообщений: 189
Регистрация: 31.7.2009
Где: Челябинск

Репутация: нет
Всего: нет

Профиль
Группа: Участник
Сообщений: 393
Регистрация: 11.4.2009
Где: Ростов-на-Дону

Репутация: 20
Всего: 20

icewind
Дата 22.8.2009, 11:44 (ссылка) | (нет голосов) Загрузка .
Цитата(Leklerk @ 22.8.2009, 11:40 )
все преимущества включенной register_globals

Профиль
Группа: Участник
Сообщений: 189
Регистрация: 31.7.2009
Где: Челябинск

Репутация: нет
Всего: нет

Leklerk
Дата 22.8.2009, 11:48 (ссылка) | (нет голосов) Загрузка .
Цитата
это какие же?

Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37

Ипатьев
Дата 22.8.2009, 13:12 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43

nerezus
Дата 22.8.2009, 13:17 (ссылка) | (голосов:3) Загрузка .
Цитата
Ну, я имел в виду, так сказать, «быстроту и удобство».

Правильно: при отключении register_globals ты получаешь быстроту и удобство.

В туалет когда тебе хотелось и ты долго терпел, а потом сходил — помнишь чувство? Вот после перехода с register_lobals или удаления import_request_variables из кода почувствуешь то же самое: станет удобнее и быстрее писать.

Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54

SneG0K
Дата 22.8.2009, 15:40 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Участник
Сообщений: 189
Регистрация: 31.7.2009
Где: Челябинск

Репутация: нет
Всего: нет

Leklerk
Дата 22.8.2009, 16:40 (ссылка) | (нет голосов) Загрузка .
Цитата
Нет, неправильно.
Недостатки те же, что и у регистер глобалс

Но ведь префикс для того и добавляется, чтобы исключить или во всяком случае значительно уменьшить вероятность конфликта имён.
И хакеру труднее подобрать.

Цитата
Leklerk, если бы у гугля, одноклассников, контакта и прочей ерундени были включены регистер_глобалс.

SneG0K, то что регистер_глобалс это плохо я и сам знаю. Но я думал, что import_request_variables() лучше.

Это сообщение отредактировал(а) Leklerk — 22.8.2009, 16:45

Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где:

Репутация: 10
Всего: 12

NewDima
Дата 22.8.2009, 17:31 (ссылка) | (нет голосов) Загрузка .
Цитата(Leklerk @ 22.8.2009, 23:40)
SneG0K, то что регистер_глобалс это плохо я и сам знаю. Но я думал, что import_request_variables() лучше.

Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54

SneG0K
Дата 22.8.2009, 17:42 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43

nerezus
Дата 22.8.2009, 17:54 (ссылка) | (нет голосов) Загрузка .
Цитата
Любой сайт с регистер_глобалс можно взломать за 5 минут.

Спорим?)
Я напишу блог и ты попробуешь его взломать за пару дней.

Предлагай сумму спора.

Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где:

Репутация: 10
Всего: 12

NewDima
Дата 22.8.2009, 18:56 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54

SneG0K
Дата 22.8.2009, 18:56 (ссылка) | (нет голосов) Загрузка .
Цитата(nerezus @ 22.8.2009, 16:54 )
Спорим?)

Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54

SneG0K
Дата 22.8.2009, 19:30 (ссылка) | (нет голосов) Загрузка .

Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43

nerezus
Дата 22.8.2009, 19:42 (ссылка) | (нет голосов) Загрузка .
Цитата
А сорцы дашь посмотреть?

Могу и дать ) Что-то изменится?)

Цитата
Да, ну ладно. Мне с детства внушали, что регистер-глобалс зло)

Профиль
Группа: Участник
Сообщений: 189
Регистрация: 31.7.2009
Где: Челябинск

Репутация: нет
Всего: нет

Leklerk
Дата 22.8.2009, 19:44 (ссылка) | (нет голосов) Загрузка .
Цитата
Если так думал, то значит были причины. Изложи?
Google
Дата 13.11.2020, 08:47 (ссылка)
  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET
  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь
  • Темы «ищу скрипт», «подскажите скрипт» и т.п. будут переноситься в форум «Web-технологии»
  • Темы с именами: «Срочно», «помогите», «не знаю как делать» будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

import_request_variables

Import GET/POST/Cookie variables into the global scope

Description

Imports GET/POST/Cookie variables into the global scope. It is useful if you disabled register_globals, but would like to see some variables in the global scope.

If you’re interested in importing other variables into the global scope, such as $_SERVER , cons >extract .

This function has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 5.4.0.

Parameters

Using the types parameter, you can specify which request variables to import. You can use ‘G’, ‘P’ and ‘C’ characters respectively for GET, POST and Cookie. These characters are not case sensitive, so you can also use any combination of ‘g’, ‘p’ and ‘c’. POST includes the POST uploaded file information.

Note that the order of the letters matters, as when using «GP«, the POST variables will overwrite GET variables with the same name. Any other letters than GPC are discarded.

Variable name prefix, prepended before all variable’s name imported into the global scope. So if you have a GET value named «user >$pref_userid .

Although the prefix parameter is optional, you will get an E_NOTICE level error if you specify no prefix, or specify an empty string as a prefix. This is a possible security hazard. Notice level errors are not displayed using the default error reporting level.

Return Values

Returns TRUE on success or FALSE on failure.

Examples

Example #1 import_request_variables example

// This will import GET and POST vars
// with an «rvar_» prefix
import_request_variables ( «gp» , «rvar_» );

Что такое код import_request_variables

(PHP 4 >= 4.1.0, PHP 5)

import_request_variables — Import GET/POST/Cookie variables into the global scope

Description bool import_request_variables ( string types [, string prefix] )

Imports GET/POST/Cookie variables into the global scope. It is useful if you disabled register_globals , but would like to see some variables in the global scope.

Using the types parameter, you can specify which request variables to import. You can use ‘G’, ‘P’ and ‘C’ characters respectively for GET, POST and Cookie. These characters are not case sensitive, so you can also use any combination of ‘g’, ‘p’ and ‘c’. POST includes the POST uploaded file information. Note that the order of the letters matters, as when using «gp», the POST variables will overwrite GET variables with the same name. Any other letters than GPC are discarded.

The prefix parameter is used as a variable name prefix, prepended before all variable’s name imported into the global scope. So if you have a GET value named «userid», and provide a prefix «pref_», then you’ll get a global variable named $pref_userid.

If you’re interested in importing other variables into the global scope, such as SERVER, consider using extract() .

Илон Маск рекомендует:  Русский перевод файла "php ini"
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL
Правила форума «PHP»