Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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);Se existir o cookie você não deve fazer a verificação de novo
E como eu faço? Tem alguma idéia Vinicius?
Alguémmm!!! Por favooor!!! rsrs
Ta tenso isso, dias tentando
Ajudaaa, ainda nada, parei por um tempo e voltei, mas ta tenso
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.
>
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
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.
>
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);
?>>
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
Se existir o cookie você não deve fazer a verificação de novo