Ir para conteúdo

POWERED BY:

Arquivado

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

NitroOx

[Resolvido] Como deixar url do site assim: index.php?pag=

Recommended Posts

Olá pessoal! Eu fiquei umas 2h+ já procurando isso e o máximo que achei foi esse código:

 

<?php
foreach ($_REQUEST as $___opt => $___val) {
$$___opt = $___val;
}
if(empty($pag)) {
include("home.php");
}
elseif(substr($pag, 0, 4)=='http' or substr($pag,
0, 1)=="/" or substr($pag, 0, 1)==".")
{
echo '<br><font face=arial size=11px><br><b>A página não existe.</b><br>Por favor selecione uma página a partir do Menu Principal.</font>';
}
else{
include("home.php");
}
?>

 

Ele até funciona até certa parte. Porém, se eu colocar qualquer valor para o GET, ele me retorna um erro no php. Como eu poderia corrigir isso?

 

Exemplo:

index.php?pag=home <--- funciona (pagina "home.php" existe)

 

index.php?pag=../ <--- funciona(previne xss)

 

index.php?pag=123 <-- essa pagina nao existe e entao meu php retorna erro. Como eu poderia fazer ele redirecionar para uma pagina de erro?

 

Espero que tenham entendido! Obrigado a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola meu caro nao sei se respondo sua pergunda mas quando faço paginas em php

uso esse script é bom

 


<div id="content">
<?php $link = $_GET["link"];

$pag[1] = "nav/home.php";
$pag[2] = "nav/empresa.php";
$pag[3] = "nav/servico.php";
$pag[4] = "nav/estudante.php";
$pag[5] = "nav/contato.php";
$pag[6] = "nav/cliente.php";

if (!empty($link)){ //se a variavel link nao estiver vazia !empty
if (file_exists($pag[$link])){// se o arquivo existir
	include $pag[$link]; // ele inclui o arquivo
}else{
	include "nav/home.php";
}
}else{
include "nav/home.php";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pelas respostas, estarei fazendo um teste com as duas.

a um detalhe que esqueci quando você foi fazer os menus ou links pro mesmo site usa desta forma

 

no meu caso defini a index.php entao fica assim

 

<a href="index.php?link=1">home</a>

 

isso quer dizer que vai pra pagina que contem o numero daquele codigo que passei ontem

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voltei :D

 

Então galera, testei o que vocês me passaram e parece que deu certo. Porém, eu misturei os códigos. Parece que está funcionando tudo na boa, peço que olhem o código e me falem se existe alguma falha ou algum erro. É que sou iniciante ainda em php.

 

<?php
foreach ($_REQUEST as $___opt => $___val) {
$$___opt = $___val;
}
if(empty($pag)) {
include("home.php");
}
elseif(substr($pag, 0, 4)=='http' or substr($pag,
0, 1)=="/" or substr($pag, 0, 1)==".")
{
include("erro.html");
}
elseif(file_exists($pag.'.php')){// se o arquivo existir
                include("$pag.php"); // ele inclui o arquivo
       }else{
include("erro.html");
}
?>

 

Na seguinte linha:

elseif(file_exists($pag.'.php')){// se o arquivo existir

 

O PHP colocava como se o arquivo não existisse, então, concatenei a variavel com o ".php" e acabou checando na boa.

Obs: Nem sabia que podia concatena ali, foi no chute :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sei que o tópico já foi marcado como resolvido, mas gostaria de postar meu modo de uso também.

 

É uma função mais simples do que essas que postaram.

 

<?php

$pag = $_GET['pag'];
if($pag == NULL){
include "home.php";
} else {
include $pag.".php";

?>

 

E chamo o link <a href="?pag=pagina">Página</a>.

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php

$gxtpl = new gxtpl();

switch($_GET['page'])
{
case "home":
$gxtpl->open("index");
break;
case "userPanel":
$gxtpl->open("userPanel");
break;
default:
$gxtpl->open("index");
break;
}

?>

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.