1

假设我使用的是纯php,没有 javascript/jquery 或 ajax。

我在一个网站上有很多页面,比如说 page1、page2、page3 和 page4。前三个页面都有一个链接可以转到第 4 页,用于登录。

在第 4 页我有一个表单字段,上面我有一个php脚本来捕获用户输入并将用户名放入会话中,之后我想重定向到用户来自的页面,但页面没有重定向. 让我把代码。

<?php 
ob_start();
session_start();

if(isset($_POST['username'])){

$username = $_POST['username'];
$_SESSION['username'] = $username;
if(isset($_SERVER['HTTP_REFERER'])){

$referer = $_SERVER['HTTP_REFERER'];
header('location: '.$referer);

}

}



?>

<form action="page4.php" method="POST">
Username: <input type="text" name="username" /><br/>
<input type="submit" value="Submit" />
</form>

我重新开始所有 page1、page2、page3ob_start()和 session_start();

如果我在标题函数中使用特定页面,那么它正在重定向,例如标题(location: page2.php)没有问题。我猜原因可能是因为我的表单字段和 php 脚本位于同一页面(page4)那么如何动态重定向?用户可能来自第 1 页或第 2 页或第 3 页,登录后我希望他们回到他们来自的特定页面。

4

2 回答 2

0

在 page1.php、page2.php、page3.php 中:

<?php
session_start();
$_SESSION['page'] = $_SERVER['PHP_SELF'];

在 page4.php 中:

<?php
session_start();
// process form
if ($form_proccessed == true) // or whatever
{
    header("Location: {$_SESSION['page']}\r\n");
    exit;
}

如果您将文件保存为具有新名称的新文件,则使用$_SERVER['PHP_SELF']您不必担心更新代码。

于 2012-12-15T14:35:47.960 回答
0

可以通过表单内的隐藏输入字段来完成:

<input type="hidden" name="referer" value="$_SERVER[HTTP_REFERER]">
于 2015-06-08T11:42:55.627 回答