0

我有这个代码,我用它来向用户电子邮件发送批准。我需要的是:当用户点击链接时;他应该先登录,然后才能进行审批流程。我尝试了以下代码来检查会话是否未注册,然后强制用户登录(index.php):

global $user_ID;
$user_ID = $_SESSION['empName'];
if ($user_ID == '') { 
header('Location: index.php'); exit(); 
} 
echo "<INPUT type='hidden' name='Code' size = '6' value ='hr1.php' />";
if(isset($_POST['Code'])){$Code = $_POST['Code'];}
mysql_close($con);

现在我需要一种方法将用户重定向到上一页(链接)

有任何想法吗???

4

4 回答 4

1

在重定向到登录页面时,然后存储一个名为 return_url 的会话值

$_SESSION['return_url'] = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

然后如果登录成功,则检查 return_url 是否存在。如果存在则返回$_SESSION['return_url']

header("Location: ".$_SESSION['return_url']);
于 2013-05-27T08:42:27.000 回答
0

为什么不发送您当前的网址,因为parameter当他单击链接并且未登录时?

我的意思是,您必须添加一个JS,例如,当您单击链接时,在您的网址中添加一个parameter类似的内容:?lastUrl=/foo/foo.com

然后,将 url 保存到变量中,检查用户是否登录并返回变量(最后一个 url)。

JS 建议:

没有 jQuery

window.onload = function() {
    var element = document.getElementById('checkLogin');
    element.setAttribute('src') = element.getAttribute('src') + '?' + 
        window.location.href;
}   // or you can add it into onclick method of your link,
    // but I think this is easier.
于 2013-05-27T08:39:17.433 回答
0

只需制作授权并在需要的每个页面上包含此文件即可。

授权文件

<?php
session_start(); //remove this if you do this somewhere else
if (empty($_SESSION['empName']) && !isset($_SESSION['empName'])) {  
header('Location: index.php'); exit(); 
}

页面.php

<?php
include 'auth.php';
echo "<INPUT type='hidden' name='Code' size = '6' value ='hr1.php' />";
if(isset($_POST['Code'])){$Code = $_POST['Code'];}
mysql_close($con);
于 2013-05-27T08:43:12.343 回答
0

您可以在将用户重定向到登录页面之前将当前页面保存到会话:$_SESSION['current_url'] = get_current_url(). 见get_current_url() 这里

登录后,您可以将用户重定向到上一页:

if(isset($_SESSION['current_url'])) {
  header("Location: ".$_SESSION['current_url']);
} else {
  header("Location: index.php");
}
于 2013-05-27T08:49:38.033 回答