• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

ricardocoimbra

Problema nos links

16 mensagens neste tópico

No meu ficheiro index tenho isto:

<?php 
if($pagina=="") { 
   include("empresa.php"); 
} else { 
   include($pagina.".php"); 
} 
?> 

Bom é assim eu tenho o IIS instalado no meu computador, acontece que eu para os links fazia tipo index.php?pagina=produtos ele chamava-me o ficheiro produtos.php acontece que eu envio para o servidor e todas as vezes que eu carrego num link ele fica-me sempre no empresa.php.

Tipo meto: index.php?pagina=produtos ele nunca-me vai buscar produtos.php mas no endereço fica index.php?pagina=produtos alguem me sabe ajudar?

é que no meu computador funciona certinho, mas quando passo para o servidor onde vai ficar a pagina não funciona direito.. Será de alguma configuração?

EDIT:usa o geshi (pedrotuga)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tens k ir buscar essa variável ao array $_GET

Para alem disso comparar com "" não valida se a variavel tiver por exemplo um espaço ou zero.

Ainda outro coisa: deves ter uma condição de teste para cada página que tenhas e caso a pagina nao exista mandas o utilizador para um sitio default. Este código faz o contrário.

<?php
$pagina=$_GET["pagina"];

if(empty($pagina)){
     include "empresa.php"M
}
else{
     include ($pagina.".php");
}
?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

é mesmo isso pedrotuga muito obrigado pela explicação.

Obrigado, um abraço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas tens que ter cuidado, porque isso pode ser um grave problema de seguranca, pois qq coisa que se ponha la a frente, vai ser incluido e executado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas tens que ter cuidado, porque isso pode ser um grave problema de seguranca, pois qq coisa que se ponha la a frente, vai ser incluido e executado

nem mais

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas não é a melhor maneira de o fazer?

Lê a minha primeira resposta

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ainda outro coisa: deves ter uma condição de teste para cada página que tenhas e caso a pagina nao exista mandas o utilizador para um sitio default.

Sim eu li pedro, mas como poderei fazer isso?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ainda outro coisa: deves ter uma condição de teste para cada página que tenhas e caso a pagina nao exista mandas o utilizador para um sitio default.

Sim eu li pedro, mas como poderei fazer isso?

if(strtolower($_REQUEST['pagina'])=="x"){
include "x.php";
}elseif(strtolower($_REQUEST['pagina'])=="y"){
include "y.php";
}else{
include "pagdefault.php";
}

Nota: eu usei o $_REQUEST porque funciona sendo usado POST ou GET

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

(..)

<?php
$pagina=$_GET["pagina"];

if(empty($pagina)){
     include "empresa.php"M
}
else{
     include ($pagina.".php");
}
?>

Este é o erro de programação mais grave que se pode cometer no PHP... Nunca  utilizem esse código numa página a não ser que queiram que o vosso site seja "Hackeado" lool  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pode sempre utilizar o switch ;)

Para mais info: help switch

<?
$pagina = $_GET['pagina'];

switch ($pagina) {
	case "x":
		include "x.php";
		break;
	case "y":
		include "y.php";
		break;
	default:
		include "z.php";
		break;
}
?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

(..)

<?php
$pagina=$_GET["pagina"];

if(empty($pagina)){
     include "empresa.php"M
}
else{
     include ($pagina.".php");
}
?>

Este é o erro de programação mais grave que se pode cometer no PHP... Nunca  utilizem esse código numa página a não ser que queiram que o vosso site seja "Hackeado" lool  ;)

foi precisamente isso que eu apontei. Só corrigi o código dele, mas chamei-lhe a atenção exactamente para isso.

Mas em relção ao site ser hackado... calma aí... isso depende das permissões do apache. Se tem permissão para incluir tudo por ali acima inclusive pastas nao servidas pela web... sim, pode ser perigoso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Em linguagens deste tipo não é uma preocupação tão grande, mas mesmo assim desencorajo o uso do switch, se bem que não é crime usá-lo.

Podes sempre

<?php
$pagina=$_GET["pagina"];

if ($pagina=="empresa"){
    include "empresa.php";
}
elseif ($pagina=="jogos"){
    include "jogos.php";
}
else{
include "default.php";
}


?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

<?php
$pagina=$_GET["pagina"];

if ($pagina=="empresa"){
    include "empresa.php";
}
elseif ($pagina=="jogos"){
    include "jogos.php";
}
else{
include "default.php";
}


?>

ya, eu pus isso ali atras :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora