我有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>
答案 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}}并非由所有浏览器提供。