[Resolvido] file_get_contents - POST - PHP - Portugal-a-Programar
[Resolvido] file_get_contents - POST
Por Triple, 11 de Junho de 2007 em PHP
É 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:
echo file_get_contents("http://123.com/login.php?username=123&password=123" , FALSE);
Agora como faço isto utilizando o POST?
Usando cURL ou sockets (criando tu próprios os pacotes). Tens exemplos na secção. Procura por fsockopen ou curl_setopt
Crias uma pagina de login, que quando o login e feito com sucesso faz algo do tipo:
e depois na pagina que queres fazer o file_get_contents poes:
if ($_SESSION['logado'] != true) {
//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.
Aqui tens exemplos:
fsockopen() -> http://www.portugal-a-programar.pt/forums/topic/0-find-topic/?do=findComment&comment=102534
cURL -> http://www.portugal-a-programar.pt/forums/topic/0-find-topic/?do=findComment&comment=48612
Tentei usar isto assim:
$n_cliente = "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';
$url = "http://www.megashares.com/index.php?d01=b21cfba";
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:
ppl esqueçam lá problema resolvido ^^ hostei isto noutro servidor e já funciona. 5* Thanks ^^
O erro era a falta da extensão no servidor.
Se está resolvido, ainda bem.
NoobKiller 0
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 ? :|
ninguém me responde é que o codigo da jeito so n da jeito é usa lo sem o perceber ou melhor sem perceber o porque de usar 3 vezes a mesma parte do codigo :s
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.
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
São pedidos diferentes e tem que se fazer para cada request tudo como se fosse a 1a vez.
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