Ir para conteúdo

POWERED BY:

Arquivado

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

jonny_quest

Include no PHP.

Recommended Posts

Bom dia! sou novato em PHP tentei procurar por include aqui, mas num sei ao certo se é só include o meu caso, o problema é que eu tenho uma página em PHP que é a index.php e através do menu eu faço o include das páginas do site no meio desta index através deste código:

<?php
$setor = @$_GET["setor"];

switch ($setor)
{
    default:
		include "home.php";
        break;

    case"serv":
        include "servicos.php";
        break;

    case"trab":
        include "trabalhos.php";
        break;

    case"ajuda":
        include "duvidas.php";
        break;

    case"contact":
        include "contatos.php";
        break;
}
?>
//Até aki funciona beleza TODAS as páginas são carregadas na index.php por esse include(não sei se o mais eficiente contra PHP Injection, opinem por favor!).

 

Acontece que quando carrego a página trabalhos.php, eu queria que esta página também carregasse páginas dentro dela pelo mesmo método em seu menu, então o que fiz foi repetir o código acima modificando alguns aspectos, veja abaixo:

<?php
$servico = @$_GET["servico"];

switch ($servico)
{
    default:
	include "planfletos.php";
        break;

    case"sites":
        include "sites.php";
        break;

    case"banner":
        include "banner.php";
        break;

    case"card":
        include "card.php";
        break;

    case"impressos":
        include "impressos.php";
        break;
}
?>

O que acontece aki é ao clicar nos itens de menu da página trabalhos.php, eu volto para a página index.php na página inicial da index(home.php), intânciei corretamente os botões, mas não sei porque isso ocorre ! O que estou fazendo de errado???? Me ajudem por favor !!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acho que sei:

Ao clicar num botão envia por get qual é a página a ser mostrada.

Quando você clica em qualquer botão de trabalhos envia um valor que não existe na index e o default é home.php

Esse include está meio confuso.

Você pode fazer em páginas separadas. Ou enviar um segundo parametro por get que dis que o botão é da página trabalhos.php.

Ai ao invéz de execultar o swith

switch ($setor)
{
 default:
 include "home.php";
 break;

 case"serv":
 include "servicos.php";
 break;

 case"trab":
 include "trabalhos.php";
 break;

 case"ajuda":
 include "duvidas.php";
 break;

 case"contact":
 include "contatos.php";
 break;
}
Execulta o
switch ($servico)
{
 default:
 include "planfletos.php";
 break;

 case"sites":
 include "sites.php";
 break;

 case"banner":
 include "banner.php";
 break;

 case"card":
 include "card.php";
 break;

 case"impressos":
 include "impressos.php";
 break;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Daniel!

 

Fiz o que voce me disse mas continua indo para a index novamente, eu chamo as páginas quando clico nos botões assim:?servico=sites, que se refere a página sites.php por exemplo, será que isso tb tá errado ou está correto?

 

Eu sei que na página index tudo funciona do modo correto, mas nas sub-páginas já não funciona e vai para a página inicial de novo, eu tô quase é fazendo menu com sub-menu para chamar as páginas na index mesmo, mas o que eu quero mesmo é poder chamar uma página na index e esta página ter um menu nela que abre dentro dela outras páginas, meio louco mas é assim que deveria funcionar.

 

Se tiver alguma outra dica ai Daniel, fico agradecido!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde, Back-on

 

por este método não funciona quando eu chamo do botão, tem alguma outra dica ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está indo para a index porque o default do primeiro switch é home.php.

Eu acabei de ver isso: $setor = @$_GET["setor"];

Para que o @?

Ta dando algum erro?

Tente enviar assim:

?setor=trab&servico=sites

Se não enviar o parametro setor=trab nem vai execultar o include da página trabalhos.php

Você disse que envia assim:

?servico=sites

portanto a variavel setor vai ser nula.

Esse servico=sites só vai funcionar se execultar o include trabalhos.php

Para execultar trabalhos.php setor deve ser= a 'trab'

Para enviar dois valores use o &.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite Daniel o rei!

 

Cara para te falar isso de usar o @$_GET["setor"]; com o sinal de arroba, eu peguei de um script do MX Masters se não me engado do "Criando site completo" por Felipe Cardozo.

 

Nesse script que ele passa diz que é um método usado para evitar o PHP injection. Eu como sou leigo ainda no PHP o que fiz foi somente mudar o nome da variável e o nome dos CASE's para chamar minhas páginas, mas como eu disse a INDEX.PHP que contem este script funciona beleza, o problema são as sub-páginas que eu tento carregar por esse script mas modificando a variável de SETOR para SERVICO, veja abaixo.

 

>------------------> Script da INDEX.PHP

<?php
$setor = @$_GET["setor"];

switch ($setor)
{
    default:
		include "home.php";
        break;

    case"serv":
        include "servicos.php";
        break;

    case"trab":
        include "trabalhos.php";
        break;

    case"ajuda":
        include "duvidas.php";
        break;

    case"contact":
        include "contatos.php";
        break;
}
?>

Mas estes mesmo script(mudando a vairável e os CASE's) dentro da página TRABALHOS.PHP que é carregada pelo botão da index(trab), não carrega as páginas dentro dela(trabalhos.php), mas simplesmente volta para a index.php onde a home.php é carregada.

 

>------------------> Script de TRABALHOS.PHP(sub-páginas)

<?php
$servico = @$_GET["servico"];

switch ($servico)
{
    default:
		include "sites.php";
        break;

    case"banner":
        include "banners.php";
        break;

    case"card":
        include "cartoes.php";
        break;

    case"impresso":
        include "impressos.php";
        break;
}
?>

Observação a página TRABALHOS.PHP é dividida em 02 DIV's uma com o menu que chama as sub-páginas e a DIV de baixo que funcionaria como um container onde as sub-paginas seriam carregadas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não der certo com o parâmetro GET, tente o REQUEST

$_REQUEST['servico'];

Ele é feito praticamente para fazer o trabalho do GET independente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Nícolas!!!

 

no botão do menu a URL fica: ?servico=banners.php

 

isso funciona emsmo publicado porque no exemplo que assistí do Felipe Cardozo, ele publica o site claro que em um servidor deles lá e funciona na boa.

 

É como eu disse antes na página INDEX.PHP funciona de boa tudo é carregado conforme clica, mas quando uso isso para chamar uma página dentro de outra página no caso dentro de TRABALHOS.PHP acontece isso que relatei.

 

Bom dia Back-on!

 

fiz o que voce pediu e usei o que voce passou no meu código e ficou assim:

 

<?php

$_REQUEST['servico'];

 

switch ($servico)

{

default:

include "sites.php";

break;

 

case"banner":

include "banners.php";

break;

 

case"card":

include "cartoes.php";

break;

 

case"impresso":

include "impressos.php";

break;

}

?>

 

num sei se era desse jeito que tá ai acima!

 

na URL do botão usei: ?servico=site

 

Continua voltando para a home.php :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara isso é porque você nbão está levando em conta o grau de parentesco das páginas.

 

Página inicial

http://www.seusite.com.br/

Pagina inicial

http://www.seusite.com.br/?setor=qualquer-valor-que-não-tenha-no-switch

Trabalho

http://www.seusite.com.br/?setor=trab

Se com este link você acessa a página de trabalho, e o serviço está dentro dela, então.

 

 

Trabalho - Serviço: Site

http://www.seusite.com.br/?setor=trab

Trabalho - Serviço: Banner

http://www.seusite.com.br/?setor=trab&servico=banner

Trabalho - Serviço: Cartões

http://www.seusite.com.br/?setor=trab&servico=card

 

E assim por diante, agora se você quer acessar assim:

?servico=banners.php

Ou você adiciona esse código na index.php

 

Ou coloca no arquivo trabalho.php?servico=banners.php (Mas para isso funcionar depende de como estiver a codificação do seu site)

 

Mas pra passar o valor banners.php esse valor precisa estar no case.

 

 

 

<?php

$_REQUEST['servico'];

 

switch ($servico)

{

default:

include "sites.php";

break;

 

case"banner.php":

include "banners.php";

break;

 

case"card.php":

include "cartoes.php";

break;

 

case"impresso.php":

include "impressos.php";

break;

}

?>

O valor dentro do case é o que você recebe da URL.

 

=)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde pessoal!! eu estou pondo os links aqui das imagens de como tá montado o site, desde o index.php até o trabalhos.php para voces verem o que eu queria que fosse feito com o PHP.

 

Imagem Postada

Imagem Postada

Imagem Postada

Imagem Postada

Imagem Postada

 

O resultado de como deveria funcionar está no final eu fiz no FireWorks para ilustrar a página funcionado! ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você já tentou enviar os dois valores por get:setor e servico.

Servico não é da página trabalhos.php?

Envia o setor=trabalhos

Para enviar setor e trabalhos ao mesmo tempo é só usar o &(E comercial).

Fiz um script de exemplo:

echo <a href="index.php?servico='.$servico.'&setor=trabalhos">';
Mude o href dos botões do trabalhos.php e inclui o &setor=trabalhos

Só vai incluir o servico=banners.php

Se for incluido trabalhos.php

Se você só envia servico=banners.php NÃO HÁ o setor.

Se setor não é nenhum valor vai execultar o default do switch.

Por isso abre home.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Daniel o setor que na verdade é a variável $setor pertence a index.php e todas as páginas de index carregam inclusive a trabalhos.php, e dentro dessa trabalhos.php há um outro mesmo script php agora com a variével $servico, que se refere aos serviços que já fiz, como: Banners, Cartões, Sites, etc...

 

Ainda não tentei este método que voce passou acabo de ler ele, mas pelo que entendi eu faria um GET através da variável setor que por sua vez chamaria a variável servicos e que só ai chamaria as sub-páginas listadas nos CASES ? é isso mesmo ??, Vou tentar e mais tarde posto aqui o resultado, Valeu !!! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Testei o que voce me passou e ele dá erro nos navegadores diz que a página não pôde ser localizada!!

 

Me toquei também agora de uma coisa, o erro tá no método de inclusão das páginas através desta variável($servico = @$_GET["servico"]; ou mesmo $_REQUEST['servico']; ), pois a inclusão da página default do script é feita, ou seja quando clico em Portifólio(trabalhos.php) lá na index, a página de trabalhos é carregada e dentro dela é carregada também o menu onde voce escolhe os trabalhos que quer ver, só dai desse ponto é que o script não funciona e remete para a página home.php da index.php.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta por no navegador: index.php?setor=trabalhos&servico=sites

Só vai dar erro 404 se index.php não existir.

Se aparecer sites.php é porque deu certo. Se funcionar você só vai precisar mudar o link dos botões e terminar de fazer o site.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde, Daniel o rei !

 

Cara deu certo no tocante de chamar página, mas a página que foi carregada é a index.php claro, mas com sua default a home.php, da mesma forma que acontece quando se clica nos botões da página trabalhos.php.

 

Eu vou desistir deste projeto e recomeçar todo ele mas utilizando submenus no menu principal e aproveitando este código PHP, para chamar só na principal as páginas e suas sub-páginas, este processo todo mobilizou muita gente e não está sendo resolvido, prefiro poupar todos e refazer o site desta forma. ;)

 

Quero te agradecer Daniel o rei, pelo empenho e ajuda http://forum.imasters.com.br/public/style_emoticons/default/joia.gif , e também agradecer aos demais colegas que deram suas dicas ai para me ajudar. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

<?php

$setor = @$_GET["setor"];

 

switch ($setor)

{

default:

include "home.php";

break;

 

case"serv":

include "servicos.php";

break;

 

case"trab":

include "trabalhos.php";

break;

 

case"ajuda":

include "duvidas.php";

break;

 

case"contact":

include "contatos.php";

break;

}

?>

 

Tenta por no navegador: index.php?setor=trabalhos&servico=sites

Só vai dar erro 404 se index.php não existir.

Se aparecer sites.php é porque deu certo. Se funcionar você só vai precisar mudar o link dos botões e terminar de fazer o site.

 

 

Boa tarde, Daniel o rei !

 

Cara deu certo no tocante de chamar página, mas a página que foi carregada é a index.php claro, mas com sua default a home.php, da mesma forma que acontece quando se clica nos botões da página trabalhos.php.

 

Eu vou desistir deste projeto e recomeçar todo ele mas utilizando submenus no menu principal e aproveitando este código PHP, para chamar só na principal as páginas e suas sub-páginas, este processo todo mobilizou muita gente e não está sendo resolvido, prefiro poupar todos e refazer o site desta forma. ;)

 

Quero te agradecer Daniel o rei, pelo empenho e ajuda http://forum.imasters.com.br/public/style_emoticons/default/joia.gif , e também agradecer aos demais colegas que deram suas dicas ai para me ajudar. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Cara, o que você precisa passar na url é o valor do que está dentro do case.

Neste caso trab e não trabalho como nosso amigo Daniel colocou por engano.

 

Como o valor que você colocou:

index.php?setor=trabalhos&servico=sites

Não está dentro do case, obviamente ele vai chamar a default.

 

Agora se você colocar

index.php?setor=trab&servico=sites

Ele vai identificar o valor no case, e vai chamar a trabalho.php

 

É simples assim.

 

Não desiste não, tenta ai.

 

Obs: Tira esse @ do GET, injection você evita tratando os dados e não com uma gambiarra pra esconder erros. ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Nícolas !!!

 

Primeiramente deixe-me rir aqui pois seu comentário foi da hora a tal gambiarra !!! :D

Digo isso porque sou leigo mesmo em PHP comprei livro e tudo tô lendo, já assití vídeo aula e mesmo assim não resolvi essa parada, já tinha até desistido! :D Muito Obrigado http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

Realmente o que voce passou agora, funcionou muito bem tá relamente chamando a tal subpágina direitinho, copiei o link e colei no navegador e tava lá a INDEX.PHP aberta a TRABALHOS.PHP aberta e com sua defalut SITES.PHP aberta.

 

Voce matou a charada! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Volto a gradecer mais uma vez a todos que me ajudaram, MUITO OBRIGADO mesmo a todos, até mesmo quando já havia desistido imaginei que todos ai estavam alertas querendo resolver isso, valeu turma!!!. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

PS: Esquecí de comentar, mesmo usando o @ no Get funciona OK, se caso alguém tiver dúvida disso, tá funcionando assim tb!!!

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.