在php中获取上一页的URL

时间:2010-10-23 14:18:27

标签: php

我有5个php页面是问题文件(MCQ)。

向用户提供了1篇论文...他回答并提交......然后转到 AnsCheck.php ...在AnsCheck.php中我需要了解哪个页面,即收到请求的5篇论文中的哪一篇,以便我可以继续进行检查...如何获得我收到请求的页面?

---- ---- 1.PHP

<?php
(E_ALL & ~E_NOTICE);

session_start();

// is the one accessing this page logged in or not?
if (!isset($_SESSION['db_is_logged_in'])
   || $_SESSION['db_is_logged_in'] !== true) {

   // not logged in, move to login page
   header('Location: login.php');
   exit;
}

?>
<html>
<head>
<title>My Page</title>
</head>
<body>
<form name="1" action="/NewDir/AnsCheck.php" method="POST">
1.Name the owl of harry potter.
<div align="left"><br>
<input type="radio" name="paper1" value="op1">Mr Barnesr<br>
<input type="radio" name="paper1" value="op2" checked> Wighed<br>
<input type="radio" name="paper1" value="op3"> Hedwig<br>
<input type="radio" name="paper1" value="op4"> Muggles<br>
<input type="submit" name="submit" value="Go">
</div>
</form>
</body>
</html>

2 个答案:

答案 0 :(得分:22)

$_SERVER['HTTP_REFERER']包含引荐页面。 (并且,是的,它在PHP中拼写错误,因为它在实际的HTTP规范中拼写错误。转到图。)

但是,无论是否发送该标题有时是浏览器中的某个用户禁用的选项,而且真正的旧浏览器根本不支持它,因此根据它可能会有问题。

如果您只是为这5个表单中的每个表单添加一个隐藏字段来指示它是哪个表单,那么您的代码将更有可能为更多用户工作。

答案 1 :(得分:3)

您已经在使用会话了。我会在这里再次使用它们:

$_SESSION['last_question'] = 1;

然后您可以在AnsCheck中查看此内容。或者,您可以在表单中添加隐藏字段:

<input type="hidden" name="question" value="1">

然后使用$_POST['question']检查AnsCheck中的值。

这两者都比HTTP_REFERER更可靠,而{{1}}并非由所有浏览器提供。