Ir para conteúdo

Arquivado

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

paulo.chagas

Perdendo sessão ao efetuar login

Recommended Posts

Bom dia galera, estou efetuando login com cURL, que me retorna mensagem de logado, até aí tudo bem!

Aí, preciso direcionar pra outro arquivo php (teste.php) e efetuar um post com cURL novamente, mas me retorna uma msg de usuário não autenticado, como se perdesse sessão.

Pelo que pesquisei, eu preciso pegar as informações de cookie gravadas ao efetuar o login no segundo arquivo php (teste.php), o arquivo de cookie está sendo com as informações (cookies.txt).

Mas até agora não consegui o feito rsrs...peço ajuda a vcs...abaixo o código que direciono após o login

$etiqueta = 'DW420776655BR';
$url = 'http://svp.correios.com.br/app/conferencia/objetos/carrega_plp.php';


$ch = curl_init();
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
curl_setopt($ch, CURLOPT_COOKIEFILE, './cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR,  './cookie.txt');


$html_form = curl_exec($ch);


if ($html_form) {
$documento = new DOMDocument;
$documento->loadHTML($html_form);
$inputs = $documento->getElementsByTagName('input');


foreach ($inputs as $input){
$post[$input->getAttribute('name')] = $input->getAttribute('value'); 
}
$post['etiqueta'] = $etiqueta;


curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($post));
$retorno = curl_exec($ch);


echo '<pre>';
print_r (curl_getinfo($ch));
echo '</pre>';
}else{
echo curl_error($ch);
}
curl_close($ch);

Compartilhar este post


Link para o post
Compartilhar em outros sites

De uma olhada na resposta do link abaixo. Para o login funcionar, você precisa vincular seu user_agent (browser ou qualquer outra coisa) com a sessão criada. Sem esse vínculo, não tem como localizar uma sessão existente.

http://stackoverflow.com/a/21170579

Compartilhar este post


Link para o post
Compartilhar em outros sites

De uma olhada na resposta do link abaixo. Para o login funcionar, você precisa vincular seu user_agent (browser ou qualquer outra coisa) com a sessão criada. Sem esse vínculo, não tem como localizar uma sessão existente.

http://stackoverflow.com/a/21170579

Fala Gabriel...

Logar eu consigo, mas preciso chamar oura url, e quando chamo essa outra, me retorna msg que somente usuários autenticados podem acessar...sendo que já fiz login, então é algum problema de manter sessão, de acessar cookies...por aí, é o que eu acho

Compartilhar este post


Link para o post
Compartilhar em outros sites

Conforme já mencionado, você precisa criar uma conexão entre o seu user_agent e a sessão criada. Somente logar não é suficiente.

Teste o código do link e traga-nos os resultados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Conforme já mencionado, você precisa criar uma conexão entre o seu user_agent e a sessão criada. Somente logar não é suficiente.

Teste o código do link e traga-nos os resultados.

Rodei o código do link com meu login e senha, não retornou nada Gabriel, nem logou...vou te passar meu código que eu consigo logar com login e senha, se puder rodar pra tu ver, e tbm vou passar a url que eu tenho que passar depois de logado

Se quiser testar os links com o login e senha via browser fique a vontade, verá que o segundo link retorna dados

Se puder me dar uma ajuda ficarei muito grato!

URL a ser chamada depois de logado:

http://svp.correios.com.br/app/conferencia/objetos/carrega_plp.php?etiqueta=DW420776655BR

Codigo que consigo Logar:

<?php

$usuario = '03390742999';
$senha = 'Agf@2015';

$url = 'https://apps.correios.com.br/cas/login'; 

$ch = curl_init();
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');

$html_form = curl_exec($ch);

if ($html_form) {
	$documento = new DOMDocument;
	$documento->loadHTML($html_form);
	$inputs = $documento->getElementsByTagName('input');
	
	foreach ($inputs as $input){
		$post[$input->getAttribute('name')] = $input->getAttribute('value'); 
	}
	$post['username'] = $usuario;
	$post['password'] = $senha;
	
	curl_setopt($ch,CURLOPT_POST,true);
	curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($post));
	$retorno = curl_exec($ch);
	echo $retorno;
	
}else{
	echo curl_error($ch);
}
curl_close($ch);

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodei o código do link com meu login e senha, não retornou nada Gabriel, nem logou...vou te passar meu código que eu consigo logar com login e senha, se puder rodar pra tu ver, e tbm vou passar a url que eu tenho que passar depois de logado

Se quiser testar os links com o login e senha via browser fique a vontade, verá que o segundo link retorna dados

Se puder me dar uma ajuda ficarei muito grato!

URL a ser chamada depois de logado:

http://svp.correios.com.br/app/conferencia/objetos/carrega_plp.php?etiqueta=DW420776655BR

Codigo que consigo Logar:

<?php

$usuario = '03390742999';
$senha = 'Agf@2015';

$url = 'https://apps.correios.com.br/cas/login'; 

$ch = curl_init();
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');

$html_form = curl_exec($ch);

if ($html_form) {
	$documento = new DOMDocument;
	$documento->loadHTML($html_form);
	$inputs = $documento->getElementsByTagName('input');
	
	foreach ($inputs as $input){
		$post[$input->getAttribute('name')] = $input->getAttribute('value'); 
	}
	$post['username'] = $usuario;
	$post['password'] = $senha;
	
	curl_setopt($ch,CURLOPT_POST,true);
	curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($post));
	$retorno = curl_exec($ch);
	echo $retorno;
	
}else{
	echo curl_error($ch);
}
curl_close($ch);

?>

Penso que só pode ser cookies, mas como implementar nao sei

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.