Executar PHP em clicar em um link
Pergunta
páginas do meu site são (ou vai) ser todos idênticos, exceto para o conteúdo da div #main. Então eu estava pensando no
eu poderia fazer<?php $page = "home.html"?>
, onde home.html é o conteúdo nuas (não uma página html completo - nenhuma , etc.) do div principal para a home page. Então, em seguida, dentro <?php include($page);?>
. Em seguida, a razão pela qual eu estou fazendo esta pergunta é que eu quero mudar $ page quando um link é clicado. Como posso fazer isso? Obrigado. Solução
Você poderia fazer as ligações ser assim:
<a href="mypage.php?page=other_page">Other Page</a>
Em seguida, também no topo da página onde você define page
ao valor do $_GET['page']
<?php
if (isset($_GET['page']))
{
$page = $_GET['page'] . ".html";
} else {
$page = "home.html";
}
?>
Outras dicas
O seu link tem que ser assim:
home.php?page=test
Você vai ter o valor na variável de página como esta:
if(isset($_GET['page']))
$page = $_GET['page'].'.html';
else
$page = 'index.html';
Você pode fazer algo como: http://yoursite.com/index.php?page=test.html ou http://yoursite.com/index.php?page=test ( e acrescentar .html mais tarde).
Por exemplo:
<?php $page = preg_replace('/[^A-Za-z]/','', $_GET['page']);
$path = 'pages/'.$page.'.html'
if (file_exists($path)){ $output = file_get_contents($path); }
else { header("HTTP/1.0 404 Not Found");
$output = file_get_contents('pages/404.html'); }
?>
(Colocar o resto do arquivo após o php, para o cabeçalho 404 ao trabalho.)
Em seguida, você também pode usar o Apache regravações:
Rewrite Engine On
Rewrite Rule ^([A-Za-z]+)$ index.php?page=$1
Em seguida, use links como http://mysite.com/page_name
Em seguida, no div principal:
<?php echo $output; ?>