2012-01-02 60 views
1

我不確定哪個是最好的方法來做到這一點,所以我很樂意聽到一些想法。成功登錄後PHP重定向到原始網址

好吧,讓我們說我們有這個鏈接/ URL =>www.myscript.com/clients.php?id=5

如果我嘗試打開它,我重定向到www.myscript.com/login.php,因爲我沒有登錄,然後當我登錄我如果我願意,請勿重定向到原始鏈接/網址www.myscript.com/clients.php?id=5

那麼,我應該添加到login.php來實現這種表演/工作?

記住網址migt是不同的,例如:

- www.myscript.com/clients.php?id=5 
- www.myscript.com/orders.php?invoice=125 

等等

+3

您可以在「用戶登錄」檢查代碼中將URI存儲在'$ _SESSION'變量中,然後在您的登錄授權碼中重定向到它。 – Bojangles 2012-01-02 18:40:32

+0

你使用什麼會話/登錄?你如何強制重定向? – MrGlass 2012-01-02 18:42:20

+0

我想要做的就是重定向到登錄後輸入的原始URL ...... – ProDraz 2012-01-02 18:44:02

回答

1

你需要一個跟蹤值添加到您的腳本,如果你添加到了所有頁面(或顯示在您的網站的元素在每一頁上......?)

<?php 
session_start(); // only if you are not already using sessions - if you are, you don't need this line 
if (($_SERVER['REQUEST_URI'] != 'login.php') && ($_SERVER['REQUEST_URI'] != $_SESSION['oldURL'])) { 
    $_SESSION['oldURL']  = $_SERVER['REQUEST_URI'];  
} 
?> 

然後在您的登錄頁面,在那裏你要重定向你可以使用$_SESSION['oldURL']

0
if (login successfull) 
    header("Location: $storedURLvariable(www.myscript.com/orders.php?invoice=125)"); 
-1

在login.php中,放像:

$_SESSION['logged_in'] = true; // Wherever your user would actually be logged in. 

現在,在你想要的所有頁面的開始處「只有在登錄時纔可訪問」,放入:

if (!$_SESION['logged_in']) 
{ 
    header("Location:/login.php"); 
    exit(); 
} 
+0

這不是OP想要的。重定向登錄是很容易的部分。將BACK重定向到用戶最初點擊之前發送到登錄的頁面是OP想要的內容。 – 2012-01-02 19:10:11

2

一邊做重定向的login.php

傳遞

urlencode($_SERVER["REQUEST_URI"]) 

作爲參數如下所示。

login.php?return=clients.php%3Fid%3D5 

成功登錄後,頁面重定向到

urldecode($_GET['return'])