Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Oi, tudo bem! Gostaria de saber como eu posso fazer uma página "index.php" dinâmica? Por exemplo passar os atributos das páginas internas via "$_GET" e verificar se existe ou não, se sim incluí-la através de "filtros" para melhor segurança da mesma.
Uma outra coisa, incluir páginas com o "include" é o modo mais correto, ou melhor seria com "include_once", "require", ou ainda com "require_once?
Quando acesso via localhost, e clico na pasta onde está o site ele me mostra alguns erros, isso acontece apenas na "index.php", já quando clico em "home.php" volta ao normal o layout e sem erros???
Esses são os erros que acontecem quando acesso direto pela pasta do EasyPHP/index.php e o outro é o erro referente ao "Preg_match":
"Notice: Undefined index: contents in C:\Program Files (x86)\EasyPHP-12.1\www\site-exemplo\index.php on line 41"
"Warning: preg_match(): Delimiter must not be alphanumeric or backslash in C:\Program Files (x86)\EasyPHP-12.1\www\site-exemplo\index.php on line 45"
Eu sei que a função "ereg" está "deprecated" e para substituir faço com o "preg_match", porém retorna esses erros que citei? Como seria a forma correta de trabalhar com ela?
Estou usando o com o "Mod_Rewrite" habilitado para utilizar "url's amigáveis" e o arquivo ".htaccess" está configurado assim:
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule (.+)$ index.php?contents=$1
As pastas e arquivos do meu projeto estão definidas assim:
Não sei se esse é o melhor código para a index em php, se alguém trabalha de outra forma, por favor peço para compartilhar o conhecimento!
*Obs.: Eu estou trabalhando com php procedural(por enquanto) sem MVC ou outros paradigmas e Frameworks!
Por favor se alguém puder ajudar ficarei grato desde já!
Estou utilizando o EasyPHP 5.4.6(creio que seja a mais recente), Win7 Ultimate-64bits.
Segue o código que estou utilizando no momento:
<body>
<div id="geral">
<?php
//Pega os dados passados pela URL
$pagina=$_GET['contents'];
//Verifica se a string passada possui algum trecho invalido
//Caso tenha mostra uma mensagem de erro
if(eregi("http|www|ftp|.dat|.txt|.gif|wget", $pagina))
//if(preg_match("http|www|ftp|.dat|.txt|.gif|wget", $pagina))
{
echo "Ops! Problemas na página!";
//Se a variavel passada estiver dentro das normas, executa o else abaixo:
}else
{
include "includes/header.php";
include "includes/banner.php";
if(!empty($pagina))
{
if (file_exists("contents/$pagina.php"))
{
include ("contents/$pagina.php");
}
}else{
include ("contents/home.php"); //essa seria a sua página principal
}
include "includes/footer.php";
}
?>
</div>
</body>
Muito obrigado!
Carregando comentários...