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

garfield

retirar informação de outra pagina é possivel?

18 mensagens neste tópico

olá a todos  :) tenho uma dúvida e não sei se é possível realizar.

a empresa onde estou estagiar fez uma parceria com uma outra onde pretende que o "meu" site fique actualizado com os conteúdos do outro site.

eu no inicio pensava que isso se pudesse fazer por rss feeds mas acho que não é possível

eu estive a ler aqui no fórum nuns post com cerca de um ano e foi dito que poderia ser considerado um ataque :)>

encontrei este código

<?php
// Para o PHP 5 e superior
$handle = fopen("http://www.example.com/", "rb");
$contents = stream_get_contents($handle);
fclose($handle);
?> 

em http://pt2.php.net/manual/pt_BR/function.fread.php

e fiquei baralhada, será que me podem tirar esta dúvida?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É possível sim. A questão dos ataques pode ter a com o mau uso do script. Por exemplo, supõe que esse script inclui uma página da internet, que é recebida pelo método GET.

<?php
// Para o PHP 5 e superior
$handle = fopen($_GET['pagina'], "rb");
$contents = stream_get_contents($handle);
fclose($handle);
?> 

O que acontece? O url dá para mudar é bastante dinâmico, mas se alguém descobrir, pode explorar isso da seguinte forma:

oTeuScript.php?pagina=www.google.pt

oTeuScript.php?pagina=www.virus.com/downloadVirus.js

oTeuScript.php?pagina=../../../../../../../../../../../etc/passwd

Ou seja, podem ser abertos ficheiro locais (no servidor) ou de outro servidor. A segurança, é certificar que a página apenas acede ao domínio pretendido, sem ter opção de mudar esse domínio.

Quanto ao RSS, ele deve ser apresentado da forma standard, por isso não deverás ter dificuldade em fazer o respectivo parsing (até porque existe bibliotecas que o fazem, embora não esteja bem dentro do assunto).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ou seja, podem ser abertos ficheiro locais (no servidor) ou de outro servidor. A segurança, é certificar que a página apenas acede ao domínio pretendido, sem ter opção de mudar esse domínio.

obrigado pela ajuda  :) se entendi bem o que me diseste tenho que colocar o caminho directo ao servidor de forma a que nao seja possível mudar o url, é isso ou entendi tudo mal :-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

obrigado pela ajuda  :) se entendi bem o que me diseste tenho que colocar o caminho directo ao servidor de forma a que nao seja possível mudar o url, é isso ou entendi tudo mal :-[

É isso mesmo.

<?php
// Para o PHP 5 e superior
$handle = fopen("www.site.com/aPagina/queQuero/aceder.php", "rb");
$contents = stream_get_contents($handle);
fclose($handle);
?>

Se o caminho estiver no link, não deve haver problema.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

vou experimentar  :) obrigado pelo esclarecimento :)

espero um dia também conseguir ajudar o p@p  :biggrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

webservices muito mais seguro e viavel

Até podem ser, mas sai mais caro visto ser necessário comprar as licenças à microsoft...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Até podem ser, mas sai mais caro visto ser necessário comprar as licenças à microsoft...

?! Não percebi essa de pagar à Microsoft...
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

?! Não percebi essa de pagar à Microsoft...

ele está a referir-se aos webservices da framework .net , ou seja, da Microsoft :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ele está a referir-se aos webservices da framework .net , ou seja, da Microsoft :P

Sim, pensava que estavam a falar desses.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Duvido que fosse isso, PHP não tem NADA a ver com .NET :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para alem de que, podes muito bem fazer webservices em PHP.

E sim, Webservices é muito melhor que andar a fazer parse a strings... ou um criar um xml remoto... nao sei...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

desde já queria agradecer a todos os que de alguma forma ajudaram :P

eu estive realmente a pesquisar a melhor forma de fazer a ligação a outra pagina e comecei por tentar ligar a um xml local e apesar de conseguir ler o xml não o consigo formatar como quero. (estou a colocar a dúvida aqui porque não sabia se deveria ou não criar um novo tópico ;))

o código que tenho é o seguinte:

<?php

//funcao para mostrar os dados do documento xml
function FuncDados($parser, $dados) {
echo $dados;
}

//funcao inicial do xml
function FuncInicial($parser,$elemento){
if($elemento=="teste"){
	echo"<table> <tr> <td> ";
}
else if($elemento=="dados_pessoais"){
	echo"<tr><td>";
}
else if($elemento=="nome"){
	echo"<tr><td>";
}
else if($elemento=="morada"){
	echo"<tr><td>";
}
}

//criar um parser
$parser=xml_parser_create();

//funcao final do xml
function FuncFinal($parser,$elemento){
if ($elemento=="teste"){
	echo "</td> </tr>";
}
else if($elemento=="dados_pessoais"){
	 echo "</td></tr>";
}
else if($elemento=="nome"){
	 echo "</td></tr>";
}
else if($elemento=="morada"){
	 echo"</td></tr></table>";
}
}

//definir funcoes de manipulacao
xml_set_element_handler($parser,"FuncInicial","FuncFinal");
xml_set_character_data_handler($parser,"FuncDados");

//abre arquivo xml para leitura
$handle=fopen("teste.xml", "r");

//inicia analise do documento xml
while($dados=fread($handle,4096)){
xml_parse($parser,$dados);
}

//liberta a memoria usada pelo parser
xml_parser_free($parser);
?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não percebi qual é a duvida.

eu quero inserir o xml dentro de uma tabela, mas isso não está a acontecer, o ficheiro aparece mas todo na mesma linha.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens de trocar os paragrafos por <br /> (acho que é isto que queres):

$xml = str_replace("\n", "<b />", $xml);

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