Erik 2 Denunciar post Postado Abril 30, 2009 Boa noite, Estou aqui, 21:54 da noite, esquentando minha cabeça pra fazer uma página que contenha uma include que ao clicar em algum link do menu, ele defina o valor da include, tipo assim: 1 - Tenho o menu com os seguintes itens: - Home - Produto - Localização - Contato 2 - Que abre as seguintes páginas (includes): - home.php - produto.php - localização.php - contato.php 3 - E tenho a seguinte include: <?php require_once('$item1'); ?> Pergunta: Como que eu faço pra ao clicar em algum item do menu, alterar a variável $item1 e carregar a página correspondente na include (detalhe) preciso que já comece carregando a home Por favor me ajudem, como que faço isso. Abraços, Erik Compartilhar este post Link para o post Compartilhar em outros sites
JuLIOOXX 0 Denunciar post Postado Abril 30, 2009 Passando o parametro via GET no link do menu. - Home // www.seusite.com/index.php - Produto // www.seusite.com/index.php?area="produtos" - Localização // www.seusite.com/index.php?area="localizacao" - Contato // www.seusite.com/index.php?area="contato" Dai na hora do include você faz um switch para detectar qual pagina deve ser chamada. $pagina = $_GET['area']; switch($pagina){ case "produtos": $pagina = "produtos.php"; break; case "localizacao": $pagina = "localizacao.php"; break; case "contato": $pagina = "contato.php"; break; default: $pagina = "index.php"; break; } include($pagina); Compartilhar este post Link para o post Compartilhar em outros sites
neoHaT 0 Denunciar post Postado Abril 30, 2009 Não recomendo a usar switch e cases... Aonde você quer incluir a página: $page = $_GET['page']; $page_file = $page . ".php"; if(empty($page)) include ("home.php"); else if(file_exists($page_file)) include $page_file; else include ("404.php"); Você cria links no seu menu assim: <a href="/">Home</a> <a href="/?page=produto">Produto</a> <a href="/?page=localizacao">Localização</a> <a href="/?page=contato">Contato</a> O que vai acontecer, ele vai pegar a GET page e vai checkar, se a página solicitada existir em seus arquivos, ele vai incluir, se ele não encontra-la ele vai incluir a página 404. Se não solicitar nenhuma ele vai incluir a home. E assim, voce já esta criando uma segurança para evitar o caso: www.seusite.com.br/?page=http://www.google.com.brPois o script vai acrescentar o '.php' e fazer a busca no mesmo diretorio aonde se econtra sua página. Qualquer coisa, posta ae... Compartilhar este post Link para o post Compartilhar em outros sites
JuLIOOXX 0 Denunciar post Postado Abril 30, 2009 Ola NeoHAT Parabens, seu exemplo é bem pratico mesmo. Mas qual o problema com switchs ? sinceramente não entendi o alerta do "Não recomendo". por a caso teria algum jeito de burlar esse switch ae? não.. porque ele leva um default que retorna a index.php Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Abril 30, 2009 O estilo com switch fica mais organizado, seguro e com as páginas definidas. Além do mais não vincula o valor da variável com o nome do arquivo. Se precisar mudar o nome de um arquivo, não precisará mudar o nome em todos os links que existirem. há uma falha simples no script que o neoHat postou $page = $_GET['page']; $page_file = $page . ".php"; if(empty($page)) include ("home.php"); else if(file_exists($page_file)) include $page_file; else include ("404.php"); experimente digitar no parametro ?page=index entrará num loop infinito e dependendo das configs do servidor, poderá travar o serviço web, tornando inacessível o sistema ou mesmo outros problemas piores como estouro de memória, etc.. outra falha é a inclusão direta de um arquivo verificando apenas se existe, mas sem saber se é permitido carregar ou não. se possuir uma pasta .. funcoes/arquivo.php ?page=funcoes/arquivo file_exists() permitirá pois o arquivo existe e em consequencia, será carregado, podendo provocar algum erro. Compartilhar este post Link para o post Compartilhar em outros sites
Erik 2 Denunciar post Postado Abril 30, 2009 Funciono não, Eu criei como dito mas na hora de abrir a página ele recarrega mas exibe o conteudo da home.php deem uma olhada no site: www.indecvirtual.com.br/testes eu to usando includes uma pro menu e outra pro conteúdo, será que atrapalha? é normal num aparecer nada depois do area= (case né, que chama isso) eu to aprendendo PHP agora e como tudo que sei, to apredendo na raça.. hehehe Obrigado a todos pela grande ajuda que estão me dando Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Abril 30, 2009 Funciono não, Eu criei como dito mas na hora de abrir a página ele recarrega mas exibe o conteudo da home.php deem uma olhada no site: www.indecvirtual.com.br/testes se não enviar o parâmetro não vai "funcionar"... www.indecvirtual.com.br/?page=testes Compartilhar este post Link para o post Compartilhar em outros sites
Erik 2 Denunciar post Postado Maio 1, 2009 hahahahahhahhhaha!!!!! O negócio é bom mesmo, agora ta funcionando, eu tava colocando entre "aspas" e ai num mandava, quando o hinom colocou sem aspas eu vi o meu erro, estampado na minha cara, valeu pela dica, dei mais um grande passo no meu aprendizado de PHP... valew pessoal vejam como ta ficando o site novo: www.indecvirtual.com.br/testes Abraços a todos... e mais uma vez muito obrigado Compartilhar este post Link para o post Compartilhar em outros sites