Автор Тема: CGI переменные  (Прочитано 3917 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Evgeny

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 272
  • +0/-0
  • 0
    • Просмотр профиля
CGI переменные
« : 24 Июня 2002, 14:14:17 »
Привет всем.
Начал писать свой первый php-скрипт, и возник такой вопрос. Как получить значения CGI-переменных, переданных в скрипт.
Большое спасибо.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
CGI переменные
« Ответ #1 : 24 Июня 2002, 14:41:03 »
Эти переменные называются не CGI. CGI вообще к РНР имеет очень маленькое отношение.

Эти переменные находятся в массивах, которые называются
$HTTP_метод передачи данных_VARS
метод бывает POST или GET
то есть, если ты в форме указывал

то в script.php массив $HTTP_POST_VARS будет соджержать все поля формы. ключ массива - имя поля, значение - значение.
если было поле
и в него введено число 20, то обратиться ты можешь так
echo $HTTP_POST_VARS[\'age\'];
это напечатает 20.

Оффлайн Evgeny

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 272
  • +0/-0
  • 0
    • Просмотр профиля
CGI переменные
« Ответ #2 : 24 Июня 2002, 15:16:03 »
Понятно, спасибо.
А как перебрать все ключи и значения массива $HTTP_POST_VARS?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
CGI переменные
« Ответ #3 : 24 Июня 2002, 15:42:14 »

Оффлайн Evgeny

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 272
  • +0/-0
  • 0
    • Просмотр профиля
CGI переменные
« Ответ #4 : 24 Июня 2002, 16:02:06 »
В описании формы, если указать enctype="text/plain", (метод - POST), то массив $HTTP_POST_VARS пуст. Почему?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
CGI переменные
« Ответ #5 : 24 Июня 2002, 16:36:18 »
не знаю.
а если enctype не указывать?

Оффлайн Evgeny

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 272
  • +0/-0
  • 0
    • Просмотр профиля
CGI переменные
« Ответ #6 : 24 Июня 2002, 17:16:04 »
Цитировать
не знаю.
а если enctype не указывать?

Если не указывать, то всё в порядке, работает.
Работает также, если enctype указать и метод GET использовать.
И ещё вопрос. Как узнать, существует ли элемент массива с данным ключом.
В Перле это было бы например:

if (exists $arr{\'key1\'})
{  ...
}

И как можно узнать, является ли пустым значение массива, ассоциированное с данным ключём.
Опять же пример из перла (в нём я немного сильнее :))

if ($arr{\'key1\'})
{  ...
}

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
CGI переменные
« Ответ #7 : 24 Июня 2002, 17:56:23 »
http://www.php.net/isset
http://www.php.net/empty

индекс массива берется в квадраиеых скобках
if (isset($arr[\'key\']))

а с enctype я так думаю, такое дело.
такого типа - текст/плайн - не существует, и поэтому вместо $HTTP_POST_VARS берется что-то вроде $RAW_HTTP_HEADERS - точно название не помню.
Ну, а гету енктайп вообще по барабану.

Оффлайн Evgeny

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 272
  • +0/-0
  • 0
    • Просмотр профиля
CGI переменные
« Ответ #8 : 24 Июня 2002, 19:43:19 »
Да, обойдусь без энктайпа,
спасибо за помощь.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28