1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

PHP - Unica pagina

Discussão em 'Web Development' iniciada por MarcosFonseca, 22 de Janeiro de 2009. (Respostas: 6; Visualizações: 1063)

  1. MarcosFonseca

    MarcosFonseca Power Member

    Boas

    Tenho 2 duvidas que consiste no seguinte:

    1 - Tenho visto sites, em php, que navegamos apenas numa pagina, e os menus é passado como "parametro" (nao sei o nome concreto, mas tenho vindo a dar C, e ja me esqueci o nome disso).
    Por exemplo:

    www.onossosite.pt/index.php?menu=noticias

    Podem me explicar melhor como funciona? Tem uns ifs caso, seja x, mostra x, caso seja noticias, mostra so noticias..

    espero ter me feito entendido...

    2 - outra duvida, é quando os endereços apresentados sao assim:

    www.onossosite.pt/noticias

    nao tendo extenção nem nada do genero...Como funciona isso??
    cumps
     
    Última edição: 22 de Janeiro de 2009
  2. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    1 - Não sei se sabes PHP, mas é possível controlar aquilo que é mostrado numa página. O link que mostras faz com que uma chamada à variável $_GET["menu"] retorne a string "noticias". Assim, é possível mostrar diferentes conteúdos na página conforme o que estiver em frente a "menu=". Pode usar ifs, como
    PHP:
    if($_GET["menu"] == "noticias") { mostrar_noticias(); }
    ou um switch, como
    PHP:
    switch($_GET["menu"]) {
      case 
    "noticias":
        
    mostrar_noticias();
        break;
      case 
    "outros":
        
    mostrar_outros();
        break;
    }
    2 - extensões como o mod_rewrite permitem que, quando forem pedidos ficheiros sem extensão, o servidor possa modificar o URL de forma a chamar uma página diferente. Ou seja, podes usar uma expressão regular que transforma "/*******" em "/index.php?menu=*******".
    Devem existir mais formas de o fazer, mas esta é a que melhor conheço.
     
  3. sornafix

    sornafix Power Member

    Lá porque vês no endereço sempre na mesma página, ou seja, index.php?menu= kk_coisa, não significa que esteja tudo dentro da mesma página. O que provavelmente acontece é que a página index.php dependendo do $_GET[menu] incluirá outra pagina na parte principipal e provavlemente a outra pagina tem o nome kk_coisa.php

    Caso queiras ter um endereço tipo www.onossosite.pt/noticias, basta inidicares no menu ir para uma pasta noticias e dentro desta pasta teres uma pagina com o nome index, e o endereço ficará deste modo www.stekk.com/nome_pasta
     
  4. [volumes]

    [volumes] Power Member

    Viva,

    tens aqui um exemplo prático.

    PHP:
    if (file_exists($pagina."_main.php")) {
        include(
    $pagina."_main.php");
    } else {
         print(
    "<b>Esse ficheiro não se encontra no servidor!</b>");
    }
    Colocas este pequeno codigo no meio do index, ou seja, onde irá aparecer a informação dos outros ficheiros.

    Todos os ficheiro, neste caso, tem que ser gravados com NOME_main.php

    o link fica qql coisa como www.ola.pt/index.php?pagina=NOME
     
  5. MarcosFonseca

    MarcosFonseca Power Member

    Boas pessoal, obrigado pelo esclarecimento...

    Já consegui entender...Ontem, depois de postar a duvida fui tentar fazer alguma coisa e consegui...Nada como experimentar...Mas já nao consegui apagar o topico, uma vez mais obrigado, e espero que sirva tambem para ajudar outras pessoas que possam ter duvidas...

    cumps
     
  6. hostmake

    hostmake Power Member

    Cuidado com os exploits de segurança.

    Não deixes que o user chame ficheiros a descrição dele senão..
     
  7. vdd, tem cuidado com a segurança, principalmente no que se refer a "inclusions", convem tambem editar algumas linhas no php.ini allow_url_include = off e safe_mode = On
     

Partilhar esta Página