• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Triple

[Resolvido] file_get_contents - POST

15 mensagens neste tópico

Boas,

É assim eu perciso de obter o conteudo de uma determinada página... mas essa página tem um sistema de autenticação (Method = POST) e só quando estou logado com a minha conta é que consigo aceder à informação pretendida. Sei que se o metodo fosse GET podia fazer algo do género:

<php
echo file_get_contents("http://123.com/login.php?username=123&password=123" , FALSE);
?>

Agora como faço isto utilizando o POST?

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Usando cURL ou sockets (criando tu próprios os pacotes). Tens exemplos na secção. Procura por fsockopen ou curl_setopt

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crias uma pagina de login, que quando o login e feito com sucesso faz algo do tipo:

$_SESSION['logado'] = true;

e depois na pagina que queres fazer o file_get_contents poes:

<?php
session_start();

if ($_SESSION['logado'] != true) {
Header ("Location: login.php");
}

//o que queres que apareca pro filegetcontents, usando um echo

?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crias uma pagina de login, que quando o login e feito com sucesso faz algo do tipo:

$_SESSION['logado'] = true;

e depois na pagina que queres fazer o file_get_contents poes:

<?php
session_start();

if ($_SESSION['logado'] != true) {
Header ("Location: login.php");
}

//o que queres que apareca pro filegetcontents, usando um echo

?>

Não percebeste. Ele tem de estar logado num servidor que ele não controla para obter dados. :)
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tentei usar isto assim:

<?php
// Crie um ficheiro cookies.txt, no mesmo directório que este script, e dê-lhe permições de escrita.
// Editar as variaveis abaixo de acordo com o seu número de cliente e respectiva password usada no site da cabovisão.
$n_cliente = "xxxxx";
$password = "xxxxx";

// Não editar mais apartir daqui

$referer = "http://www.megashares.com/index.php?d01=b21cfba";
$post = 'lc_email='.$n_cliente.'&lc_pin='.$password.'&lc_signin=Sign-In'; 
$agent = "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)";
$cookies = "cookies.txt";

// Passo 1:	

$url = "http://www.megashares.com/index.php?d01=b21cfba";
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);
    $result = curl_exec ($ch);
    curl_close ($ch);

// Passo 2:

$url = "http://www.megashares.com/index.php?d01=b21cfba";

$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS,$post); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_REFERER, $referer);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);
    $result = curl_exec ($ch);
    curl_close ($ch); 

// Passo 3:

$url = "http://www.megashares.com/index.php?d01=b21cfba";

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_REFERER, $referer);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);
    $result = curl_exec ($ch);
    curl_close ($ch);
echo $result;
?>

Mas dame o seguinte erro:

Fatal error: Call to undefined function: curl_init() in c:\program files\easyphp1-8\www\post.php on line 17

Não percebo a utilização dos tres passos  :wallbash:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ppl esqueçam lá :) problema resolvido ^^ hostei isto noutro servidor e já funciona. 5* Thanks ^^

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O erro era a falta da extensão no servidor. ;)

Se está resolvido, ainda bem. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas, Triple posso fazer uma pergunta secalhar estupida :s ? é que não percebi o porque de repetires 3 vezes o mesmo codigo :s foi erro ou é so para demorar mais tempo a carregar :s não ficava mais leve a pagina fazeno so com 1 ? :|

obrigado fica bem ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ninguém me responde :P é que o codigo da jeito so n da jeito é usa lo sem o perceber :P ou melhor sem perceber o porque de usar 3 vezes a mesma parte do codigo :s

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O código não é exactamente igual. A página é a mesma, mas o que é enviado/recebido, difere em todos os 3 blocos. Olha lá com atenção. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

então e porque usar os 3 ? :S 1 codigo so não podia fazer o memso trabalho ? eu tou a dizer isso pk estou a tentar usar esse codigo so que as vezes consigo sacar bem e outras vezes saca-me um file todo manhoso com nºs e letras :s e taa a tentar perceber se seria dai :S como tambem é do megashare :s

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

São pedidos diferentes e tem que se fazer para cada request tudo como se fosse a 1a vez.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o gajo com quem tou a tratar disto esta a usar este codigo e na mesma pagina eta a usar um user agent, achas que esse tal download de ficheiro marado possa vir dai ? :s

é que as vezes saca bem outras nem por isso :s

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora