Ir para conteúdo

POWERED BY:

Arquivado

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

Rodolfo Richard

'echo' no banco de dados

Recommended Posts

Boa Tarde.
Sou novo aqui pessoal, e meio leigo em php - Ajudem um iniciante que curte programação kk.

Meu problema deve ser bem fácil de resolver:

Depois de muita pesquisa e estudo, consegui criar um site, com conexão ao banco de dados + área de administração com senha e tudo mais. E nesse tal banco de dados tenho as seguintes tabelas que podem ser alteradas: id - title - body - slug os valores contidos nestes, são trazidos para a tela sendo:
id = identificação obviamente.
title = Sendo a meta-tag <title> dentro do <head> da página solicitada.

body = conteúdo colocado dentro do body.

slug = seria a url amigável.

Até aí tudo bem, sem problemas, funciona tudo perfeitamente em seus devidos lugares.

Vamos ao problema...
todo o conteúdo dentro do body é lançado no banco de dados, e mostrado na pagina da seguinte maneira:

 

<? echo $pagina['body']; ?>

Beleza.. Maaaas, o meu problema é: preciso colocar, além do conteúdo do body, o seguinte código em uma das páginas:

<?php
$site = file_get_contents('site.php'); // << site.php é um nome qualquer 'exemplo'...
echo "$site";
?>
(todo esse código é para ficar dentro do banco de dados, para posteriormente ser 'puxada' na página pelo 'echo $pagina['body'];' )
Fora do 'echo $pagina['body'];' o comando funciona perfeitamente.... Mas colocando esse código no banco de dados, não funfa.
Por favor me ajudem galeros. Quem conseguir ganha uma trufa de morango daquelas que derrete na boca.
PS: Sei que esse não é o melhor jeito de construir um site, mas pelo conhecimento que eu tenho, e pelo 'tamanho' do site, já me é o suficiente!
Dicas serão bem vindas pessoal! afinal, estou aqui para aprender com vcs.

Abraç...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que você quer fazer é possível, mas arriscado.

Dá pra usar a função eval(), pra rodar um script PHP que está em uma string. Mas o perigo é grande. Um possível código malicioso inserido ali pode destruir todo o seu sistema.

 

Eu recomendo criar um placeholder. Por exemplo, no texto insira a string "%arquivo%". Ao exibir os dados, use str_replace pra trocar %arquivo% por outra string. É o que se costuma fazer em sistemas de template

 

ps: prefira usar as tags completas (<?php em vez de <?). Essas e outras 14 dias podem ser lidas aqui: http://www.ultimatephp.com.br/guia/

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que você quer fazer é possível, mas arriscado.

Dá pra usar a função eval(), pra rodar um script PHP que está em uma string. Mas o perigo é grande. Um possível código malicioso inserido ali pode destruir todo o seu sistema.

(...)

Intendi !

Esse ''possível código malicioso" que você diz, pode ser inserido em caso de invasão Por exemplo no banco de dados? Ou uma invasão no meu sistema de administração? Ou em ambos?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nem precisa invasão.

Imagine que esse campo da tabela armazena o conteúdo de um formulário. Basta o usuário digitar o código ali e pronto. Ele não precisou invadir nada, apenas explorou uma falha de segurança do seu sistema

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda não funcionou...

fiz o seguinte código:

<?php
$site = file_get_contents('site.php'); //url
$resfinal = str_replace("%arquivo%", "$site", "%arquivo%");
echo $resfinal;
?>
Funciona normal se for colocado no código fonte... Mas quando passo para o banco de dados não funciona!
( é puxado no body pelo <?php echo $pagina["body"]; ?> )

Foi isso que você me indicou que eu fizesse? ou fiz não entendi sua colocação e fiz algo errado?

No aguardo.

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.