【问题标题】:choosing landing page with php用php选择登陆页面
【发布时间】:2014-02-23 10:30:23
【问题描述】:

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

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

我需要它显示在 URL 中,就好像他们登陆该页面一样。截至目前,它只出现在我的索引页面上,直到您单击链接打开。

我尝试使用标题位置进行这项工作,但它不起作用......我还使用了 Include 并且它有效,但它没有在 url 中显示路径。我需要正确的路径,就好像他们点击了主页链接一样。

【问题讨论】:

  • 要更改网址,请使用window.history.replaceState 了解更多信息,请参阅[this](developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/…)
  • 感谢您的回答我正在尝试制作登录页面 home.php 而不是 index.php。当我添加你的声明时,页面上不会呈现。

标签: php header navigation location


【解决方案1】:

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

将此添加到您的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"); 
}

【讨论】:

  • 感谢您的回答我正在尝试制作登录页面 home.php 而不是 index.php。当我添加你的声明时,页面上不会呈现。
  • @user3298955 你的主页是什么? index.php 还是 home.php?请更清楚地说明您需要什么。
  • 我设置了索引页面只包含您从导航中选择的任何 .php 页面。但不是将主页作为索引页面,而是将我的 home.php 与其他页面一起包含在内。因此,当网站加载时,我希望索引抓取 home.php 页面,以便活动链接在我的导航栏上工作
  • 那么您是否已将上述代码与您发布的代码一起添加?还是你换的?上面的代码所做的只是如果用户输入www.yourwebsite.com/index.php,它将导航到www.yourwebsite.com/index.php?p=home
  • 不,当您访问我的网站时,它会出现在 index.php 上。当你点击一个链接时,每个页面都被称为 $p index.php?p=PageName 我只是希望它在 url 中以 index.php?p=home 结尾
【解决方案2】:
<?php
  $p = $_GET['p'];
  if (file_exists("pages/{$p}.php")) {
    include("pages/{$p}.php");
}else{
 if ($p != "home")
  header("Location: index.php?p=home");
}
?>

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    • 2018-02-06
    • 2011-02-03
    • 1970-01-01
    相关资源
    最近更新 更多