Ir para conteúdo

Arquivado

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

vdepizzol

Problemas com Eval()

Recommended Posts

Olá,

 

Tenho um script para executar códigos PHP armazenados no banco de dados que não está funcionando muito bem....

 

$query = "SELECT * FROM `tabela`";$result = mysql_query($query) or die("Error: " . mysql_error());while($row = mysql_fetch_assoc($result)) {	eval($row['codigo']);}

Ao executar, por exemplo o seguinte código (colocando-o na tabela do bd), o eval() não funciona.

 

$query = "SELECT * FROM `modulo_publicidade_campanhas`";$result = mysql_query($query) or die("Error: " . mysql_error());while($row = mysql_fetch_assoc($result)) {	$query2 = "SELECT * FROM `modulo_publicidade_propagandas` WHERE (`cid`='".$row['id']."' AND (validade > NOW() OR validade = '0000-00-00 00:00:00')) ORDER BY RAND() LIMIT 0,1";	$result2 = mysql_query($query2) or die("Error: " . mysql_error());	$row2 = mysql_fetch_assoc($result2);		$query3 = "UPDATE `modulo_publicidade_propagandas` SET `visualizacoes`=visualizacoes+1 WHERE `id`='".$row2['id']."'";	$result3 = mysql_query($query3) or die("Error: " . mysql_error());		if($row2['tipo'] == "imagem") {		if($row2['link'] != "") {			$output = '<a href="'.$row2['link'].'"><img src="'.SITE_INDEX."modulos/publicidade/".$row2['arquivo'].'" alt="'.corrigir_acentos($row2['nome']).'" /></a>';		} else {			$output = '<img src="'.SITE_INDEX."modulos/publicidade/".$row2['arquivo'].'" alt="'.corrigir_acentos($row2['nome']).'" />';		}	} elseif($row2['tipo'] == "flash") {		$tamanho = getimagesize(SITE_PASTAS."modulos".DIRECTORY_SEPARATOR."publicidade".DIRECTORY_SEPARATOR.$row2['arquivo']);		$output = '<object type="application/x-shockwave-flash"  data="'.SITE_INDEX."modulos/publicidade/".$row2['arquivo'].'" width="'.$tamanho[0].'" height="'.$tamanho[1].'" title="'.corrigir_acentos($row2['nome']).'">	<param name="movie" value="'.SITE_INDEX."modulos/publicidade/".$row2['arquivo'].'" />	<param name="quality" value="high" /></object>';	} elseif($row2['tipo'] == "codigo") {		$output = $row2['codigo-fonte'];	} else {		$output = '';	}	$tpl->set('publicidade_'.$row['atalho'], $output);	unset($output);}

Ao colocar o mesmo código PHP fora do eval(), ele funciona!

 

Alguém tem alguma explicação de como resolver esse problema???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei o problema!!!!!

 

A tag $row e $result estavam se confundindo com o código do eval()!

 

Troquei para

 

$inlinea_temp_query = "SELECT * FROM `tabela`";$inlinea_temp_result = mysql_query($inlinea_temp_query) or die("Error: " . mysql_error());while($inlinea_loop = mysql_fetch_assoc($inlinea_temp_result)) {	$temp_inlinea_codigo = str_replace("$", "\$", $inlinea_loop['codigo']);	eval($temp_inlinea_codigo);}

e funcionou!!!

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.