用php选择登陆页面

时间:2014-02-23 10:30:23

标签: php header navigation location

当有人到达我的网站时,我希望网址为 index.php?p = home

 <?php
  if (file_exists("pages/$p.php")) {
    include("pages/$p.php");
}else{
 header("Location: index.php?p=home");
}
?>

我需要将其显示在网址中,就像它们登陆该网页一样。现在写,它只是登陆我的索引页面,直到你点击一个链接打开。

我尝试使用标题位置进行此工作,但它不起作用...我也使用Include,它可以工作,但它不显示网址中的路径。我需要路径正确,就好像他们点击了主页链接一样。

2 个答案:

答案 0 :(得分:0)

<?php
  $p = $_GET['p'];
  if (file_exists("pages/{$p}.php")) {
    include("pages/{$p}.php");
}else{
 if ($p != "home")
  header("Location: index.php?p=home");
}
?>

请注意,此代码不安全,因为任何用户都可能用来访问隐藏文件和目录。

答案 1 :(得分:0)

我不知道你打算做什么,但这似乎是一个糟糕的方法。

将此添加到您的index.php

Old answer    
    /*
    if(!isset($_GET['p'])){
        header("Location: index.php?p=home");
    }
    */

编辑:

由于您的header()函数似乎不起作用,因为函数调用之前可能有任何输出,因此更改了答案:

$page = basename($_SERVER['PHP_SELF']); 
if($page=='index.php' && !isset($_GET['p'])){ 
echo '<meta HTTP-EQUIV="REFRESH" content="0; url=index.php?p=home">'; 
} 
$p = (isset($_GET['p'])?$_GET['p']:'home'); 
if (file_exists("pages/{$p}.php")) { 
include("pages/{$p}.php"); 
}