Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou tendo problemas com o Smarty.
eu criei os seguintes arquivos: index.php, layout.php e download.php
no arquivo index.php está o seguinte codigo:
if(!isset($_REQUEST['page'])):
$smarty->assign ('mid', 'index.php');
else:
$smarty->assign ('mid', $_REQUEST['page'].'.php');
endif;
$smarty->display('layout.php');
no arquivo layout.php está esse codigo:
<li><a href="index.php?page=download">Download</a></li>
<div id="conteudo">
{include file=$mid}
</div>
e no arquivo download.php está apenas:
<p>Download</p>
quando eu clico no link download na pagina layout.php aparece o seguinte erro:
>
Warning: Smarty error: unable to read resource: "download.php" in C:\Arquivos de programas\xampp\htdocs\ragnaup\lib\Smarty\libs\Smarty.class.php on line 1093
estou aprendendo a programar a pouco tempo e queria saber se alguem pode me ajudar nesse problema.
Os codigos completos são esses:
Index.php:
<?
include 'config.php';
if(!isset($_REQUEST['page'])):
$smarty->assign ('mid', 'index.tpl.php');
else:
$smarty->assign ('mid', $_REQUEST['page'].'.php');
endif;
$smarty->display('layout.tpl.php');
?><ul>
<li><a href="index.php">Home</a></li>
<li><a href="index.php?page=download">Download</a></li>
</ul>
<div id="conteudo">
{include file=$mid}
</div>
Download.php:
<p>Download</p>
Erro de grafia!
Você está incluindo o arquivo download.php e criou um arquivo chamado Download.php com o "D" em caixa alta!
Não sei como está a configuração de pastas mas esse arquivo "download.php" deve estar dentro da pasta de templates.
provavelmente é o que o amigo acima comentou.
observando o seu codigo.. tem um erro grave nesse trecho
$smarty->assign ('mid', $_REQUEST['page'].'.php');
isso está suscetível a diversas falhas e até mesmo segurança..
faça uma tratamento da requisição antes de executá-la dessa forma
Quer dizer que na pasta templates pode haver arquivos com a extensao php?
Nao entendi o codigo que voce postou, colocas o conteudo todo das paginas pra o pessoal entender melhor o problema.
Acho que quando aparece esse tipo de erro é porque voce nao setou o smarty corretamente pra trabalhar com a aplicação.
Voce colocou esse codigo no começo de cada arquivo php, como caminho certo dos arquivos aonde esta o smarty no seu pc? Por exemplo:
E ao final voce indicou o template, os arquivos tpl, corretos pra cada arquivo php. Por exemplo:$smarty->display('index.tpl');
Dá uma lida no manual que explica bem como instalar direito e evitar esses problemas.