Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho uma estrutura que funciona sem mudar o link para o usuário, apenas se ele clicar na url que verá o restante do link. Estou tentando fazer uma troca de página passando um ID pela URL, porém meu código tenta buscar uma página chamada exemplo.php?id=exemplo... Detalhando a estrutura: Tenho o arquivo configuracoes.php que é da seguinte maneira: <!DOCTYPE html>
<html lang="pt-br">
<head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <meta http-equiv="Content-Type" content="text/html. charset=iso-8859-1"> <title>Dashboard</title>
</head>
<body> <?php $pagina = $_GET['pagina']. include ('menudashboard.php'). if(isset($_GET['pagina'])){ include $pagina/*.".php"*/. }else{ include ('iniciodashboard.php'). }.?>
</body>
</html> Onde inclui o menudashboard.php que é onde ficam as li's: <!DOCTYPE html><html lang="pt-br">
<head> <meta charset="UTF-8"> <link rel="stylesheet" href="lib/bootstrap.min.css"> <link rel="stylesheet" href="lib/dashboard.css"> <link rel="stylesheet" href="font/css/all.css"> <script src="lib/bootstrap.min.js"></script> <script src="lib/popper.min.js"></script> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title></title>
</head>
<body>
<nav class="navbar navbar-dark fixed-top bg-dark flex-md-nowrap p-0 shadow"> <a class="navbar-brand col-sm-3 col-md-2 mr-0" href="#"><i class="fas fa-tools"></i>Help Desk</a> <ul class="navbar-nav px-3 flex-column"> <li class="nav-item"> <a class="nav-link" href="logout.php">Sair</a> </li> </ul>
</nav> <div class="container-fluid"> <div class="row"> <nav class="col-md-2 d-none d-md-block bg-light sidebar"> <div class="sidebar-sticky"> <h6 class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-4 mb-1 text-muted"> <a class="d-flex align-items-center text-muted" href="#"> <span class="<?php if($_GET['pagina']== 'pages/categorias.php' || $_GET['pagina']== 'pages/conf_subcategorias' || $_GET['pagina']== 'pages/conf_self_geral' || $_GET['pagina']== 'pages/subcategorias') echo 'teste'?>">PORTAL SELF SERVICE</span> </a> </h6> <ul class="nav flex-column"> <li class="nav-item"> <a class="nav-link <?php if($_GET['pagina']== 'pages/categorias.php' || $_GET['pagina']== 'pages/subcategorias') echo 'active'?>" href="configuracoes.php?pagina=pages/categorias.php"> ABRIR CHAMADO </a> </li> <li class="nav-item"> <a class="nav-link <?php if($_GET['pagina']== 'pages/') echo 'active'?>" href="configuracoes.php?pagina=pages/"> CONSULTAR ATIVOS </a> </li> <li class="nav-item"> <a class="nav-link <?php if($_GET['pagina']== 'pages/') echo 'active'?>" href="configuracoes.php?pagina=pages/"> CONSULTAR ENCERRADOS </a> </div> </nav> </div>
</div>
</body>
</html> E por último tem o iniciodashboard.php, que nada mais é que a nav: <!DOCTYPE html><html lang="en">
<head> <title>Dashboard</title>
</head>
<body> <main role="main" class="col-md-9 ml-sm-auto col-lg-10 px-4"> <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom"> <h2>Configurações</h2> </div>
</body>
</html> Um exemplo em imagem: Em cada LI, é referenciado uma página que está em pages/php. O que estou tentando fazer é, ao clicar numa categoria, abrir a página subcategorias.php com o ID correspondente. Porém, meu código não consegue buscar a página por causa do ID, ficando assim: Warning: include(): Failed opening 'pages/subcategorias.php?id=1' for inclusion (include_path='C:\xampp\php\PEAR') in C:\Service Desk\self_service\configuracoes.php on line 15 Minha url fica assim quando clico em uma categoria: [http://localhost/Service Desk/self_service/configuracoes.php?pagina=pages/subcategorias.php?id=1](http://localhost/Service%20Desk/self_service/configuracoes.php?pagina=pages/subcategorias.php?id=1) Se remover o "?id=1" a página vai carregar normalmente. Alguém tem ideia de como me ajudar?>
5 horas atrás, Omar~ disse:
Você já entrou com a requisição GET na url
configuracoes.php?pagina=pages
O que você pode fazer para chamar outro arquivo é passar mais informações no caso
configuracoes.php?pagina=pages&subcategorias&id=1
Então abrimos o arquivo configurações.php
Nele consulto se exite o GET pagina que nesse termos temo page
if (isset($_GET['pages'])) {
// incluir ou tomar outra ação
}
Com essa informação posso incluir outro arquivo ou tomar ações de acordo com as necessidades.
E assim sucessivamente, lembrando que conforme o exemplo **subcategorias** não possui valor será uma string vazia.
Lembrando que sempre poderá consultar o parâmetro de entrada, assim sendo incluir o arquivo exemplo
**siterul?configuracoes&pagina=pages&subcategorias&id=1**
ou seja existe o **$_GET['configuracoes']** portanto pode-se incluir o arquivo configurações.php
Sobre a inclusão de arquivos dinamicamente de acordo com os parâmetros, der uma olhada nisso:
[https://github.com/Spell-Master/Get-UrlAmigavel/blob/master/DataFilter.php#L88](https://github.com/Spell-Master/Get-UrlAmigavel/blob/master/DataFilter.php#L88)
Obrigado pela resposta!
Resolvi da seguinte maneira: Ao invés de utilizar o ? na url, passei a utilizar o & conforme você citou. Funcionou perfeitamente!
Você já entrou com a requisição GET na url
configuracoes.php?pagina=pages
O que você pode fazer para chamar outro arquivo é passar mais informações no caso
configuracoes.php?pagina=pages&subcategorias&id=1
Então abrimos o arquivo configurações.php
Nele consulto se exite o GET pagina que nesse termos temo page