Siga-nos em...
Follow us on Twitter Follow us on Facebook Watch us on YouTube
Registro


Alpha Servers
Resultados 1 a 6 de 6
  1. #1

    Avatar de gokuka
    Data de Ingresso
    Apr 2013
    Localização
    lelek lek lek
    Idade
    22
    Posts
    183
    Agradecido
    46
    Agradeceu
    30
    Peso da Avaliação
    6

    Padrão Este é o jeito certo pra abrir páginas em PHP?

    Galera, como alguns sabem, eu estou mechendo com PHP, por enquanto estou parado, mas escrevi este código em um papel e passei pro celular pra postar aqui (estou sem internet no pc).

    Esta certo?

    Código:
    $page = "pages/home";
    				if (isset($_GET['pg'])) {
        				$page = $_GET['pg'];
    				}
    
    				switch ($page) {
    				   
    				    case 'home':
    				    include "pages/{$page}.php";
    				    break;
    				    default:
    				    include "pages/404.html"; // página de erro "404"
    				    break;
    				}
    Existe alguma outra forma? Amanhã vou no pc da minha tia e vou testar lá acho que abre ja usei, tenho esse outro também:

    Código:
    <?php 
    foreach ($_REQUEST as $___opt => $___val) {
      $$___opt = $___val;
    }
    if(empty($pg)) {
    include_once("pages/home.php");
    }
    elseif(substr($pg, 0, 4)=='http' or substr($pg, 0, 1)=="/" or substr($pg, 0, 1)==".") 
    {
    echo '<b>Erro : A página não existe.</b>'; 
    }
    else {
    include("pages/$pg.php");
    }
    ?>
    Qual deles devo usar? Help ! RS
    Última edição por gokuka; 15-03-2015 às 03:17 AM.

  2. #2


    Avatar de WoLfulus
    Data de Ingresso
    Jan 2015
    Localização
    Brasil
    Idade
    26
    Posts
    314
    Agradecido
    793
    Agradeceu
    262
    Peso da Avaliação
    6

    Padrão

    Citação Postado originalmente por gokuka Ver Post
    Galera, como alguns sabem, eu estou mechendo com PHP, por enquanto estou parado, mas escrevi este código em um papel e passei pro celular pra postar aqui (estou sem internet no pc).

    Esta certo?

    Código:
    $page = "pages/home";
    				if (isset($_GET['pg'])) {
        				$page = $_GET['pg'];
    				}
    
    				switch ($page) {
    				   
    				    case 'home':
    				    include "pages/{$page}.php";
    				    break;
    				    default:
    				    include "pages/404.html"; // página de erro "404"
    				    break;
    				}
    Existe alguma outra forma? Amanhã vou no pc da minha tia e vou testar lá acho que abre ja usei, tenho esse outro também:

    Código:
    <?php 
    foreach ($_REQUEST as $___opt => $___val) {
      $$___opt = $___val;
    }
    if(empty($pg)) {
    include_once("pages/home.php");
    }
    elseif(substr($pg, 0, 4)=='http' or substr($pg, 0, 1)=="/" or substr($pg, 0, 1)==".") 
    {
    echo '<b>Erro : A página não existe.</b>'; 
    }
    else {
    include("pages/$pg.php");
    }
    ?>
    Qual deles devo usar? Help ! RS
    nenhum dos dois... ambos só de olhar sofrem de include injection. a segunda é ainda pior pq faz a reescrita de variáveis globais no script.

    foreach ($_REQUEST as $___opt => $___val) {
    $$___opt = $___val;
    }
    isso aqui é a pior bosta que vc poderia ter em um site.

    se vc precisa MESMO de alguma coisa relacionada... não use "variáveis" pra incluir as páginas: faça na mão o include ou dê um jeito de evitar a inclusão de páginas inválidas, por exemplo:

    Código PHP:
    <?php
    $paginas 
    = array
    (
        
    'home' => 'pages/home.php',
        
    'pagina_dois' => 'pages/seila.php'
    );

    $pg = isset($_GET['pg']) ? $_GET['pg'] : 'home';
    if (isset(
    $paginas[$pg])) {
        include (
    $paginas[$pg]);
    } else {
        echo 
    "página não existe.";
    }
    script.php?pg=home
    script.php?pg=pagina_dois

    qualquer outra coisa vai resultar em "página não existe" e não vai comprometer sua segurança
    Última edição por WoLfulus; 15-03-2015 às 10:30 AM.

  3. Os Seguintes 5 Usuários Agradeceram você WoLfulus Por este Post Útil:


  4. #3

    Avatar de gokuka
    Data de Ingresso
    Apr 2013
    Localização
    lelek lek lek
    Idade
    22
    Posts
    183
    Agradecido
    46
    Agradeceu
    30
    Peso da Avaliação
    6

    Padrão

    Como faço pra retirar o .php (sou novato) pesquisei na net e vi o cara fazendo com explode mas porém está bugando o código e todo..

  5. #4


    Avatar de WoLfulus
    Data de Ingresso
    Jan 2015
    Localização
    Brasil
    Idade
    26
    Posts
    314
    Agradecido
    793
    Agradeceu
    262
    Peso da Avaliação
    6

    Padrão

    Citação Postado originalmente por gokuka Ver Post
    Como faço pra retirar o .php (sou novato) pesquisei na net e vi o cara fazendo com explode mas porém está bugando o código e todo..

    vc fala tipo /home, /paginax?

    isso não precisa mexer no php... é só fazer um redirection usando .htaccess, problema é que se seu site n tiver com paths absolutos (começando com "/") pros assets css/js o template vai bugar inteiro

  6. #5

    Avatar de xiscoss
    Data de Ingresso
    Aug 2010
    Localização
    Santa Catarina
    Posts
    360
    Agradecido
    146
    Agradeceu
    110
    Peso da Avaliação
    11

    Padrão

    Primeiro, tenha em mente que qualquer requisição via navegador (onde você digita o link) é repassado para a variável $_GET. Sendo assim, você deve planejar como ira trabalhar os links do seu site, por exemplo:
    - URL: [Somente usuários registrados podem vem os links. ]
    Onde:
    panel/user é repassado a posição pg da variável $_GET;
    - URL amigável: [Somente usuários registrados podem vem os links. ]
    Onde:
    panel/user é repassado a uma posição pré-definida na variável $_GET, que no caso do exemplo pode ser pg;

    E o que faço com isso? Receba os dados e faça o seu processamento.

    Código PHP:
    <?php
    /*A variável páginas é do tipo array e armazena como índice a requisição da página (link) e tem como valor o local e nome do arquivo referente a página solicitada*/
    $paginas = array
    (
        
    /*'índice' => 'arquivo.php'*/
        
    'home' => 'pages/home.php',
        
    'pagina_dois' => 'pages/seila.php'
    );

    /*A variável pg verifica se existe a posição pg na requisição e caso não exista define um valor padrão a ser utilizado*/
    $pg = isset($_GET['pg']) ? $_GET['pg'] : 'home';
    /*A condição abaixo verifica se a página solicitada existe na variável $paginas, caso exista a exibe, do contrário exibe a mensagem especificada no echo*/
    if (isset($paginas[$pg])) {
        include (
    $paginas[$pg]);
    } else {
        echo 
    "página não existe.";
    }
    Tentei explicar o máximo possível utilizando o exemplo do wolf, mas o processamento varia de como você vai trabalhar a requisição das páginas, esse exemplo por exemplo já não serve para URL amigável.
    Aerocool DS 200 Lite/ Corsair GS600/ ASRock Fatal1ty Z97 Killer/ Intel Core i5 4670K 3,40 GHz 6MB Cache/ Corsair Water Cooler H80i/ Sapphire R9270X Dual-X 2GB OC/ Hyper X Fury 2x8GB 1866Mhz DDR3/ SSD Kingston 120GB/ HDD Samsung 500GB

  7. O Seguinte Usuário Agradeceu xiscoss Por este Post Útil:


  8. #6

    Avatar de gokuka
    Data de Ingresso
    Apr 2013
    Localização
    lelek lek lek
    Idade
    22
    Posts
    183
    Agradecido
    46
    Agradeceu
    30
    Peso da Avaliação
    6

    Padrão

    Sim eu arrumei, consegui retirar o .php da extençao da url, amanha eu coloco aqui pq agora vim pro celular...

 

 

Informações de Tópico

Usuários Navegando neste Tópico

Há 1 usuários navegando neste tópico. (0 registrados e 1 visitantes)

Tópicos Similares

  1. |Dúvida| Existe algum jeito de tirar aquele raio da asa ?
    Por juniorpk22 no fórum Patchs
    Respostas: 3
    Último Post: 03-09-2015, 02:37 PM
  2. |Dúvida| (Ajax) abrir páginas?
    Por SpinXO no fórum Java
    Respostas: 12
    Último Post: 06-05-2015, 03:37 PM
  3. |Desenvolvimento| Qual jeito fica melhor ?
    Por WilD no fórum Suporte e Dúvidas
    Respostas: 1
    Último Post: 04-04-2014, 05:04 PM

Marcadores

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •