Ir para conteúdo

Arquivado

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

h4v3st

cURL Login+Envio de form

Recommended Posts

Boa tarde pessoal, tudo bem? Surgiu uma necessidade aqui no trabalho e faz muito tempo que não mexo com php. Preciso logar em um site (externo - não tenho acesso ao fonte), acessar uma página que contem um form e enviar conteudo para esse form ser executado. O objetivo disso é automatizar um processo nosso de compra.

 

De início, com uns exemplos que peguei cheguei nesse code:

<?php

$URL = "xxx";
$POST = http_build_query(array(
 'EditUsuario' => 'yy',
 'EditSenha' => 'zz'
));

$ch = curl_init( $URL );
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $POST);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$response = curl_exec($ch);

if ( curl_getinfo($ch, CURLINFO_HTTP_CODE) != 200 )
 die( 'Falha na autenticação.' );

echo $response;

curl_close($ch);

?>

Esse code acima me trouxe o seguinte cabeçalho:

HTTP/1.1 200 OK Connection: close Date: Tue, 10 Mar 2015 18:10:48 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET Content-type: text/html Content-Length: 1601 

A primeira pergunta, com esse cabeçalho o login foi feito 100% né? E agora qual seria meu proximo passo p/ chegar na pagina que contem o form e enviar conteudos para esse form?

 

Agradeço a atenção!

Compartilhar este post


Link para o post
Compartilhar em outros sites

É bem provável que o login tenha falhado. O sistema retornou status 200, mas nenhum conteúdo. Está estranho isso

 

Considerando que é um sistema de login, deveria vir um cookie n0 cabeçalho HTTP. Esse cookie deveria ser enviado junto com todas as requisições subsequentes, para identificar você na aplicação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo tem ideia do que posso fazer? To bem perdido! rs

 

@off, voce trabalha ou trabalhou com Protheus? Tem um beraldo desenvolvedor advpl rs..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo tem ideia do que posso fazer? To bem perdido! rs

Ao efetuar o login pelo navegador, o que é retornado? Seu script deveria retornar a mesma coisa.

É difícil saber qual é o problema, pois envolve uma aplicação desconhecida por nós. Se esse site enviar status 200 e conteúdo vazio em caso de um erro qualquer, não temos como saber o motivo.

 

Tente efetuar login, usando o navegador, com dados inválidos, campos vazios etc, para ver como a aplicação se comporta.

 

 

@off, voce trabalha ou trabalhou com Protheus? Tem um beraldo desenvolvedor advpl rs..

Não sou eu, não.

Tem Beraldo em todo lugar por aí, principalmente Paraná em São Paulo (interior) :lol:

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.