nginx + php 7 + filtro_input + Homestead

1

Eu preciso validar o URL, então o próximo código está funcionando perfeitamente com o php e o apache:

$url = filter_input(INPUT_GET, 'url', FILTER_SANITIZE_URL)

Exemplo: com esta URL: plantilla_mvc.net ////// driver / metodo ///// argumentos

está sendo transformado para: / controlador / metodo / argumentos ( sem ////// )

MAS com nginx não está funcionando .

Então eu tentei:

$ url = filter_input (INPUT_SERVER, 'REQUEST_URI', FILTER_SANITIZE_URL);

Mas filter_input NÃO funciona com INPUT_SERVER

como posso resolver este problema?

Obrigado pela sua ajuda

    
por Byron2017 17.10.2016 / 02:10

1 resposta

0

Parece um problema conhecido, consulte o link

Because of a PHP confirmed bug, filter_input( INPUT_SERVER, 'anything' ) would return null on some implementations of FCGI/PHP 5.4 ( and probably older versions as well ). https://bugs.php.net/bug.php?id=49184

Use workaround mentioned in https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=730094:

if (filter_has_var(INPUT_SERVER, "SERVER_NAME")) {
        $servername = filter_input(INPUT_SERVER, "SERVER_NAME",
FILTER_UNSAFE_RAW, FILTER_NULL_ON_FAILURE);
    } else {
        if (isset($_SERVER["SERVER_NAME"]))
            $servername = filter_var($_SERVER["SERVER_NAME"],
FILTER_UNSAFE_RAW, FILTER_NULL_ON_FAILURE);
        else
            $servername = null;
    }
    
por 01.06.2017 / 18:54

Tags