ricardocoimbra Posted November 7, 2006 at 10:41 PM Report #62809 Posted November 7, 2006 at 10:41 PM 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)
pedrotuga Posted November 7, 2006 at 10:55 PM Report #62811 Posted November 7, 2006 at 10:55 PM 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"); } ?>
ricardocoimbra Posted November 7, 2006 at 11:03 PM Author Report #62816 Posted November 7, 2006 at 11:03 PM é mesmo isso pedrotuga muito obrigado pela explicação. Obrigado, um abraço
karva Posted November 7, 2006 at 11:05 PM Report #62820 Posted November 7, 2006 at 11:05 PM 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 Proud LEIC-A@IST student!
ricardocoimbra Posted November 7, 2006 at 11:14 PM Author Report #62825 Posted November 7, 2006 at 11:14 PM Mas não é a melhor maneira de o fazer?
pedrotuga Posted November 7, 2006 at 11:14 PM Report #62826 Posted November 7, 2006 at 11:14 PM 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
pedrotuga Posted November 7, 2006 at 11:15 PM Report #62827 Posted November 7, 2006 at 11:15 PM Mas não é a melhor maneira de o fazer? Lê a minha primeira resposta
ricardocoimbra Posted November 7, 2006 at 11:19 PM Author Report #62829 Posted November 7, 2006 at 11:19 PM 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?
djthyrax Posted November 7, 2006 at 11:24 PM Report #62833 Posted November 7, 2006 at 11:24 PM 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 Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!
ricardocoimbra Posted November 7, 2006 at 11:33 PM Author Report #62835 Posted November 7, 2006 at 11:33 PM Entendi direitinho agora, obrigado pessoal 😉 Um abraço
kingless Posted November 8, 2006 at 12:45 AM Report #62850 Posted November 8, 2006 at 12:45 AM (..) <?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 😉
Drone Posted November 8, 2006 at 10:57 AM Report #62888 Posted November 8, 2006 at 10:57 AM 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; } ?>
pedrotuga Posted November 8, 2006 at 12:09 PM Report #62893 Posted November 8, 2006 at 12:09 PM (..) <?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.
karva Posted November 8, 2006 at 02:16 PM Report #62911 Posted November 8, 2006 at 02:16 PM mas e melhor nao arricar. da maneira q o drone fez, e muito + facil Proud LEIC-A@IST student!
pedrotuga Posted November 9, 2006 at 01:08 PM Report #63133 Posted November 9, 2006 at 01:08 PM 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"; } ?>
djthyrax Posted November 10, 2006 at 02:53 PM Report #63373 Posted November 10, 2006 at 02:53 PM <?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 😛 Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now