Ir para conteúdo

POWERED BY:

Arquivado

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

Mecho com php e Html

[Resolvido] Pegar conteúdo da página mantendo sessão

Recommended Posts

Gente, é o seguinte... preciso pegar o conteúdo de uma página. Porém, essa página requer autenticação. Caso eu me autentique e consiga acessar a página normalmente via browser, eu não consigo fazer o mesmo via file_get_contents.

 

Exemplo:

Quando acesso a página http://www.example.com/restrita.php, se eu estiver logado, eu vejo a página.

 

Porém, se pego o conteúdo dessa página por php usando o file_get_contents e mando escrever ele, aparece como se eu não estivesse logado.

Creio que é por causa que as variáveis de sessão ou cookies não são mantidas. Tem algum jeito de mantê-las?

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu li os links. Inclusive, tirou uma outra dúvida que eu tava tendo.

Mas não é o que eu quero agora...

Quero tipo que preservar os dados da sessão do navegador que o usuário usa ao pegar o conteúdo de uma página. Se alguém pudesse dar um exemplo, eu ficaria grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu aprendi a usar cURL fuçando MUITO. No manual do PHP é cheio de exemplos, tantos exemplos "oficiais" quantos os enviados pelos usuários nos comentários.

 

http://br.php.net/manual/pt_BR/book.curl.php

http://br.php.net/manual/pt_BR/curl.examples-basic.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, eu li, testei, mas não consegui fazer o que eu quero. Eu consigo me autenticar, mas caso eu tenha um login e senha... não é isso que eu quero. Quero aproveitar a sessão do navegador. Vamos supor que eu estou logado em um site e acesso a minha página. Dai, ele vai pegar informações desse site como se eu tivesse logado.

 

Tem como isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, você não entende que isso que você quer faser é uma gambiarra?

 

Tente estudar cUrl, isso é a solução, mesmo que você não entenda cUrl agora isso não é desculpa para não ter trabalho com seu próprio código, nós começamos assim como você, aí colocamos o cérebro pra funcionar e estudamos muito cUrl, daí aprendemos como manusear a libcurl.

 

Desculpe se estou sendo meio grosseiro, mas todo mundo aqui já falou que você deve usar cUrl e que esta é a solução, talves assim você entenda...

 

Abraços!!!

Imagem PostadaImagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu dei uma boa estudada em cURL nesses últimos dias. Aprendi várias coisas, inclusive, como me autenticar em um site tendo um login e uma senha.

 

Mas não consegui achar nada sobre como manter as sessões do browser. Não tenho nem uma luz por onde começar.

Não precisam me dar códigos prontos, mas pelo menos, me deem uma idéia de qual função que vou usar (creio que será a curl_setopt), e se for a curl_setopt, me deem pelo menos uma idéia sobre qual opção poderei usar ou algo parecido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamo tentar explicar.

 

Quando você está usando o navegador real e se depara com uma autenticação, dependendo da programação feita no site, há, em linhas gerais, o seguinte processo ocorrendo ou ocorrerá:

 

Tela de Login http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Preenche Informações http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Envia Informações http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Verifica Informações

 

Essa é a interação usuário-site.

 

Depois desse ponto, caso as credenciais estejam corretas, ocorre a interação site-browser:

 

Registro de Cookie e/ou Sessão (site) http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Verificação de Privacidade http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Efetivação da Requisição de Registro

 

Isso varia de browser para browser. Os cookies no IEca ainda são armazenados em arquivos de texto. Já no Firefox é num pequeno banco de dados SQLITE. Após essa etapa, retorna-se à interação usuário-site, onde há o redirecionamento à área interna, protegida pela autenticação.

 

Para se autenticar programaticamente, você cria um arquivo físico e acessível pelo seu programa PHP e o indica como COOKIEFILE, da cURL.

 

Então você executa a requisição cURL da Ação de Login pelo seu programa, enviando, via POST, as suas credenciais e o(s) cookie(s) será(ão) gravado(s) nele.

 

Dessa forma, TODA requisição que você precisar fazer, basta apontar esse mesmo arquivo de cookie e o site vai ler a partir dele as informações, ao invés do padrão do browser.

 

MAS, isso tem um incoveniente.

 

Você precisa TER as credenciais de acesso. Se você não tem e quer fazer tal requisição, posso imaginar que outra pessoa com credenciais legítimas usou algum computador público à você mas se esqueceu de limpar as informações de autenticação.

 

E você está tentando capturar tal informação de acesso e usufruir dos recursos oferecidos à essa pessoa ilegítimamente.

 

Eu conheço uma forma de se fazer, aprendida nas minhas primeiras incursões à cURL. Mas dado o fator privacidade, não vou dizer, a menos que você me convença do contrário quanto as suas intenções, caso contrário seria crime.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Minhas intenções, é fazer a comunicação entre dois sites meus. Queria que quando alguém criasse uma conta em um dos dois, essa conta valesse para o outro site. Com mysql remoto, eu fiz isso. Agora, quero que se você está logado em um, não precisa se autenticar em outro. Daí, precisava apenas saber se o usuário já está logado em um. Com isso, criei uma página que verifica se o usuário está logado e escreve -1 caso ele não esteja e caso esteja, escreve o id do usuário. Daí, com esse id e o banco de dados mysql, eu iria manipular os dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

aproveitando o post do amigo acima,

 

não tem como utilizar esse recurso para pegar a pagina que o usuário esta no momento???

 

tipo, por exemplo?

 

$ch = curl_init($_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']);

tentei aqui e no apache travou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não porque isso vai retornar informações a respeito de onde o curl_init() está sendo invocado.

 

Uma vez que o browser está no cliente e não no servidor do script, segue quase o mesmo princípio do JavaScript.

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.