Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, poderiam me ajudar numa dúvida que estou tento?
Estou criando um portal de notícias em PHP com fins acadêmicos e me surgiu um problema quanto ao modo como que estou estruturando o meu site. O problema é o seguinte: venho utilizando a função mkdir() para a criação de diretórios afim de organizar os conteúdos da página e uma outra função copy() para a inserção de arquivos PHP que comportam o conteúdo das notícias. E é justamente no modo como estou utilizando a função copy() que se encontra o problema.
O que quero saber é se é uma má prática usar essa função para copiar um arquivo em um lugar x para o diretório das notícias. Passei a pensar nisto pelo fato de que isso pode vir a gerar problemas futuramente, como, por exemplo, se eu quiser alterar a estrutura desta página que estou copiando a cada vez em que uma notícia é criada, já que eu teria de alterar todos esses arquivos já criados.
Um outro fato também é que é comum achar sites com URLs desta forma: "sitex.com/algum-titulo-inserido-aqui/"
Isso ocorre devido a alguma maneira de ocultar o nome do arquivo que vem após a última barra ("/")? Ou não há um nome de arquivo "escondido" mesmo?
Espero que entendam a minha dúvida. Se alguém souber me explicar, responda este tópico, e se possível indicar a maneira correta de fazer o que eu pretendo, por favor. Vlw galera.
Bruno, na primeira questão, depende de como você esta fazendo a implementação, coloca o seu código aqui para vermos.
Sobre o nome das url´s, estes sistemas devem estar utilizando algum framework ou biblioteca para lidar com rotas, mas vou te passar a ideia, que é bem simples
/**
* Você cadastra os nome de suas rotas e arquivos correspondentes em um array
*/
$rotas = array('/' => 'home.php', '/enviar-mensagem' => 'contato.php', '/noticias-do-dia' => 'noticas.php');
/**
* Ai depois você pega o /? que o usuário esta tentando acessar
*/
$url = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
/**
* E então verifica se essa rota esta cadastrada, se estiver, faz um include
*/
if (array_key_exists($url, $rotas)) {
require_once $rotas[$url];
}else {
require_once '404.php';
}Trabalhar dessa forma é muito útil, não só pelo fato de poder personalizar as url´s e proteger seus arquivos .php, mas também pela facilidade de gerenciar o processo de autenticação e permissões, por exemplo.
O que pretendes pode ser feito com a opção mod_rewrite do Apache.