繁体   English   中英

在php中获取上一页的URL

[英]To obtain the previous page's URL in 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>

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

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

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

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

$_SESSION['last_question'] = 1;

然后,您可以在AnsCheck中进行检查。 或者,您可以在表单中放入一个隐藏字段:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM