Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Diego Rinno

Como obter os Headers de um POST com PHP

Recommended Posts

Boa noite, pessoas!

 

Então, existe alguma forma de eu obter os Headers de uma requisição POST PHP? Deixa eu tentar explicar melhor: preciso restringir o acesso de uma página apenas a usuários que possual uma AccessKey, então pensei em enviar a AcessKey como um Header e recuperá-lo na página que recebe o POST para poder tratar a requisição e verificar se usuário possui as credenciais válidas. Meu código que faz o POST tá assim:

$url = "https://www.mywebsite.com/teste.php";
$postdata = http_build_query(
    array(
        'userCONTENT' => 'example',
        'userIDcredencials' => 'example'
    )
);
$opts = array('http' =>
    array(
        'method' => 'POST',
        'header' => "Content-type: application/x-www-form-urlencoded\r\n" .
"Accept-language: en\r\n" .
"AccessKey: 1234567890\r\n",
        'content' => $postdata
    )
);
$context  = stream_context_create($opts);
$result = file_get_contents($url, false, $context);
echo $result;

 

Só que não sei o que fazer na página teste.php pra ela recuperar o header, tentei assim:

$url = "http://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
echo "<pre>";
print_r(get_headers($url, 1));
echo "</pre>"

Mas aí ele não retorna o AccessKey, só isso:

Array
(
    [0] => HTTP/1.1 200 OK
    [Date] => Sat, 06 Jun 2015 21:25:04 GMT
    [Server] => Apache
    [Vary] => Accept-Encoding,User-Agent
    [Connection] => close
    [Content-Type] => text/html
)

Tem como fazer o que eu to querendo? Pra exemplificar, queria que me retornasse algo assim:

Array
(
    [0] => HTTP/1.1 200 OK
    [Date] => Sat, 06 Jun 2015 21:25:04 GMT
    [Server] => Apache
    [Vary] => Accept-Encoding,User-Agent
    [Connection] => close
    [Content-Type] => text/html

    [AccessKey] => 1234567890

)

Quanta burrice a minha, mais fácil enviar como um parâmetro no POST junto com os outros dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pior que sim, a questão é que na realidade seria uma espécie de API pra pessoa obter uma resposta do meu servidor de acordo com cada requisição enviada, aí não tem como fazer com sessão (infelizmente) :/

 

Meu único problema real com enviar a AcessKey por parâmetro no POST é a questão da chave ser secreta, então eu queria alguma forma de evitar que ela pudesse ser acessada por terceiros, mas dá pra fazer com o POST normalmente...


Explicando melhor: a pessoa faz transações no sistema que eu criei (isso já funciona perfeitamente), aí, dependendo do plano que ela contratou, ela pode enviar uma requisição automática toda vez que uma transação for concluída e meu servidor responde com o status da transação. A famosa "resposta automática". Por isso não teria como fazer por sessão, não tem acesso direto ao script, roda tudo em segundo plano.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.