Para fazer uma requisição POST utilizando Curl no PHP, precisamos de poucas linhas de código.
Requisição POST seria o envio de variáveis (similar ao submit de um form com method post) para uma URL de destino.
Vamos ao código
Primeira parte do código:
$url = 'http://destino.com.br/salvar_teste.php'; $vars = 'nomedavariavel1=valorvar1&nomedavariavel2=valorvar2';
Temos a variavel “url”, com endereço de destino e “vars”, com os valores a serem enviados.
Observe bem a ordem da String, aonde temos o nome da variável, igual, valor da variável e o “e” comercial para concatenar com outra variável se necessário.
Segunda parte:
$ch = curl_init( $url ); curl_setopt( $ch, CURLOPT_POST, 1); curl_setopt( $ch, CURLOPT_POSTFIELDS, $vars); curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt( $ch, CURLOPT_HEADER, 0); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec( $ch ); curl_close($ch);
Defino alguns valores para meu Curl, necessários para requisição
E no “curl_exec”, realizo o envio.
Se você deseja recuperar o retorno da página de destino, que pode ser um “json” por exemplo, adicione essa “curl_setopt” antes do curl_exec.
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true);
Retorno você recupera na variável “response”.
Se o retorno for um JSON, você pode estar utilizando a função “json_decode” para transformar a String em um Array.
Observações:
- Verifique se a extensão do Curl foi carregada corretamente utilizando o phpinfo(), caso alguma das funções não sejam encontradas.
- Você pode utilizar o protocolo “https”.
- Manual com todas as opts que podem ser configuradas na requisição: http://us2.php.net/manual/pt_BR/function.curl-setopt.php
Por Segurança:
- Filtre os dados que serão enviados.
- Valide na URL de Destino a origem da requisição.

