URL重写,跨多个PHP文件的相同URL

时间:2013-06-14 04:44:07

标签: php url-rewriting

嘿所以我已经为网站创建了一个登录系统,我希望在输入我的地址时显示此登录信息。当我输入详细信息并登录后,我希望被重定向到另一个PHP文件,但是使用相同的地址....这样,如果我已经登录了,我需要做的就是键入我的地址将转到需要登录的网站。 我已经做了一个事务发生标识会话是否创建,如果是,它将我重定向到另一个页面,但也重定向到另一个URL。我试着谷歌,但找不到任何确切和直接的东西。

目前:

登录页面 www.example.com

会员页面 www.example.com/members

我的意愿:

登录页面 www.example.com

会员页面 www.example.com

2 个答案:

答案 0 :(得分:0)

程序结构应如下所示。

<强>的index.php

if (user is logged in)
   display dashoard
else 
   display login page

由于您使用的是PHP,请使用session functions。因此,不再需要URL重写。

更新

假设您的PHP文件结构如下:

- index.php
- login.php  
+ template   
  - login.php
  - dashboard.php

您可以在index.php文件中执行以下结构。

define('IN_FILE', true);
if (isset($_SESSION['user'])) {
   require 'template/dashboard.php';
} else {
   require 'template/login.php';
}

template/dashboard.php

if (!defined('IN_FILE')) {
   exit;
}

// Then your HTML, PHP and whatnot

并在login.php

if (!isset($_SESSION['user'])) {
   require 'template/login.php';
} else {
   header('Location: index.php');
}

根据您的需要更改代码。

答案 1 :(得分:0)

这可以通过几种方法实现。

a)使用会话来确定当前页面,因此如果用户单击链接,则创建会话存储值,并在页面加载时读取会话数据并相应地包含该文件。

b)使用URL参数确定页面(这是最常用的方法)。例如,在index.php中,您可以添加更多参数,例如index.php?page=somepage,并使用$_GET读取值并相应地包含PHP文件。

还有一些方法可以达到你想要的效果,例如使用javascript / jQuery这是可能的。