Ir para conteúdo

POWERED BY:

Arquivado

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

ShockDesign

Sites de uma pagina só [Melhorado][QUERYSTRINGS]

Recommended Posts

Sim, venho trazendo aqui um código melhorado, para pegar as suas paginas e incluiir em um certo lugar..

Voce faz o seu site normalmente guardando o local do conteudo.

No local do conteúdo voce coloca:

<?php
 $arquivo='paginas/'.$_GET['pagina'].".php";
 if($_GET['pagina']!="")
 {
     if(is_file($arquivo))
            include($arquivo);
     else
            include('paginas/erro.php');
 }
 else { include('_in/home.php'); }
?>

Simples demais, e nem precisa ficar mudando o switch nem os bucado de ifs..

Voce cria uma pasta chamada paginas e nela coloca todas as paginas com a extensão php.. Dai depois é só acessar por index.php?pagina=nomedoarquivo

Lembrando que o nome do arquivo não deve conter a extensão ".php" ..

 

Criem um arquivo dentro da pasta paginas com nome de erro.php e nele ponha a mensagem de erro pra quando a página não existir...

 

Qualquer dúvida.. Dêem um alô ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, venho trazendo aqui um código melhorado, para pegar as suas paginas e incluiir em um certo lugar..

Voce faz o seu site normalmente guardando o local do conteudo.

No local do conteúdo voce coloca:

 

Simples demais, e nem precisa ficar mudando o switch nem os bucado de ifs..

Voce cria uma pasta chamada paginas e nela coloca todas as paginas com a extensão php.. Dai depois é só acessar por index.php?pagina=nomedoarquivo

Lembrando que o nome do arquivo não deve conter a extensão ".php" ..

 

Criem um arquivo dentro da pasta paginas com nome de erro.php e nele ponha a mensagem de erro pra quando a página não existir...

 

Qualquer dúvida.. Dêem um alô ;)

 

<?php
 $arquivo='paginas/'.$_GET['pagina'].".php";
 if($_GET['pagina']!="")
 {
     if(is_file($arquivo))
            include($arquivo);
     else
            include('paginas/erro.php');
 }
 else { include('_in/home.php'); }
?>

É quase assim que eu faço porem tem coisas a melhorar, tipo criar um "404", veja meu exemplo:

1º o uso da função ISSET é obrigatorio para um bom uso de forks com variaveis.

2º temos que ajudar o google a nos ajudar, por isso devemos tambem usar header's(404).

3º Não usar Arroba para ocultar erros.

4º usar ERRO_REPORTING.

5º o titulo de cada pagina incluida deve ser diferente, mas isto é outra historia ;)

 

 

Neste exemplo não usei pastas, somente um underline na frente para evitar PHPINJECTION, o underline tambem serve como prefixo, no meu caso costumo usar "req." ou underline mesmo para paginas dinamicas, ae vai do desenvolvedor ;).

function paginar($get_){
/**
* @author Guilherme nascimento (Silverfox)
* @category paginação
* @version 1.0.0.0
*/
	if(isset($_GET[$get_])){
		if(!file_exists('_'.$_GET[$get_].'.php')){
			header('HTTP/1.0 404 Not Found');
			$_pag = '_404.php';
		} else {
			$_pag = '_'.$_GET[$get_].'.php';
		}
	} else {
		$_pag = 'home';
	}
	return $_pag;
}

 

Execultando:

<?php
error_reporting(E_ALL);
function paginar($get_){
/**
* @author Guilherme nascimento (Silverfox)
* @category paginação
* @version 1.0.0.0
*/
	if(isset($_GET[$get_])){/*Usamos isset para ver se página existe*/
		if(!file_exists('_'.$_GET[$get_].'.php')){ /*File exists para ver se a página existe*/
			header('HTTP/1.0 404 Not Found'); /*TORNA A "CONSIDERAÇAO" DA PÁGINA COMO NÃO ENCONTRADA - assim o google ou outros ROBOs indentificam melhor as páginas*/
			$_pag = '_404.php';/*PAGINA DE ERRO*/
		} else {
			$_pag = '_'.$_GET[$get_].'.php';
		}
	} else {
		$_pag = '_home.php';/*PAGINA PADRÃO*/
	}
	return $_pag;
}

$_pag = paginar('pag');/*A palavra PAG é igual a _GET["PAG"]*/
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http-~~-//www.w3.org/TR/html4/strict.dtd">
<html lang="pt-br">
<head>
<title>Titulo para cada pagina deve ser diferente</title>
</head>
<body>
<?php
include($_pag);
?>
</body>
</html>

 

a URL seria então

http://site.com?pag=paginadinamica

Se a função fosse chamada assim:

$_pag = paginar('minha_pagina');/*A palavra minha_pagina é igual a _GET["minha_pagina"]*/
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Então a url seria assim:

http://site.com?minha_pagina=paginadinamica

 

Leve isto apenas como uma ideia e não critica ta ok amigo ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum, muito bom cara..

"Leve isto apenas como uma ideia e não critica ta ok amigo ;)" Tranquilo vey ;D

 

Bom.. pode melhorar bastante, mais comparado ao codigo dos switchs lá vey, esse ta bem melhor OPKASOKOPASK :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, muito bom, mas poderia melhorar ;D

Um erro logo de cara ja acontece erro se não tiver a var "pagina" (use isset) e poderia ser possivel add outros tipos de pages além de PHP =D.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, muito bom, mas poderia melhorar ;D

Um erro logo de cara ja acontece erro se não tiver a var "pagina" (use isset) e poderia ser possivel add outros tipos de pages além de PHP =D.

 

É só observar o meu código tem ISSET ;)

 

function paginar($get_){

/**

* @author Guilherme nascimento (Silverfox)

* @category paginação

* @version 1.0.0.0

*/

if(isset($_GET[$get_])){

O uso somente de PHP se deve a segurança do site, ao usar outras extenções o seu código PHP seria visivel como PHP usando HEADER você pode gerar qualquer tipo de arquivo, exemplo:

 

Com este código sendo colocado no topo eu tornaria todas páginas XML, assim por exemplo se eu fosse trabalhar com XSLT.

header('content-type: text/xml');

A inclusão dinamica de PHP não é somente para fazer menos códigos HTML, mas tambem para execultar PHPs em determinadas areas dinamicas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, mas não estava falando do seu xD, gostei do lance do underline =D

Só que uma coisa: não precisaria, necessáriamente, mostrar a extensão, se houvesse 2 arquivos com mesmo nome bastaria incluir apenas um. Precedencia ;D

Compartilhar este post


Link para o post
Compartilhar em outros sites

legal os códigos acima, mais eu prefiro fazer assim:

<body>
<?php
	$pg = $_GET['pg']; //Pega a página que está em ?pg=
	if ($pg == '') {
		$pg = 'home'; //Se não tem nada em ?pg= ele mostra a página padrão, que é a home
	}
	$pg .= ".php"; //Adiciona o .php para incluir a página certa
	
	if (file_exists($pg)) {
		include($pg); //Se existe a página, ele mostra ela
	} else {
		include("404.php"); //Se não, mostra o 404.php
	}
?>
</body>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Renan o seu código tem falhas de segurança, estude o meu e verá que ele é bem mais seguro que o seu

 

MOTIVOS do meu ser mais seguro e funcional:

  • Uso isset.
  • Uso HEADER
  • Uso um antiPHPinjection(bem basico só para evitar include maldosos mesmo).

E o seu não possui nenhum destes SEGUROS. Teste o meu e verá que ele é super util ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

:mellow: não precisa me humilhar assim :D

 

Jamais, não estou humilhando, só estou querendo lhe ajudar a ter mais segurança em seu site contra ataques, como do PHPINJECTION ;)

 

Recomendo dar uma pesquisada =)

Abraços amigo.

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.