2014-09-07 4 views
0

У меня есть PHP-скрипт, который показывает некоторые переменные сервера, код выглядит следующим образом:PHP не filter_input работает

<?php 
$FILTEREDHOST = filter_input(INPUT_SERVER,'HTTP_HOST'); 
$FILTEREDSELF = filter_input(INPUT_SERVER,'PHP_SELF'); 

$SERVERHOST = $_SERVER['HTTP_HOST']; 
$SERVERSELF = $_SERVER['PHP_SELF']; 

var_dump($FILTEREDHOST); 
echo "</br>"; 
var_dump($FILTEREDSELF); 
echo "</br>"; 
var_dump($SERVERHOST); 
echo "</br>"; 
var_dump($SERVERSELF); 

В результате я получаю:

NULL 
string(9) "/test.php" 
string(17) "www.mysite.com" 
string(9) "/test.php" 

Почему $FILTEREDHOST возвращается NULL?

Мой PHP версии 5.5.16

ответ

1

HTTP_HOST не установлен, если браузер не отправлял его.

'HTTP_HOST' Содержание заголовка Host: из текущего запроса, если таковой имеется.

http://php.net/manual/en/reserved.variables.server.php

+0

почему браузер послал его здесь: $ SERVERHOST = $ _SERVER [ 'HTTP_HOST']; ?? –

+0

Я думаю, что это связано со странными побочными эффектами FastCGI. http://ch2.php.net/manual/en/function.filter-input.php#77307 –

+0

Ну, возможно, вы правы, я использовал предложенную функцию в этой ссылке, и я вижу содержимое переменной SERVER и HTTP_HOST настоящее. –

Смежные вопросы