繁体   English   中英

如果仅来自特定页面,则允许访问页面

[英]allow visit a page if only came from a specific page

我的情况:

  1. articlesubmitted.php-从数据库中的特定用户名读取最后的文章信息。
  2. addarticle.php-将文章添加到数据库。

我想做articlesubmitted.php仅接受来自addarticle.php的访问,如果可能的话,他提交文章的用户只能阅读1次。

我找到了带有REQUEST_URI的内容,但无法正常工作。

我怎样才能做到这一点? 可以从.htaccess中取得?

尝试将以下示例与当前代码一起使用:

HTML链接(link_for_get_access.php)

<a href="get_access.php">GO HERE</a>

get_access.php

<?php

if (strstr($_SERVER['HTTP_REFERER'],"example.com/link_for_get_access.php"))

{

echo "<h1>You have access.</h1>";

}
else
{

echo "<h1>Sorry, you don't have access.</h1>";

}

?>

我建议您使用Cookie来做到这一点。 例如,使用$ _SESSION:

<?php
session_start();

// Do this at the top of every page
$_SESSION['last_page'] = isset($_SESSION['current_page']) ? $_SESSION['current_page'] : NULL;
$_SESSION['current_page'] = 'this_page.php';

if($_SESSION['last_page'] !== 'addarticle.php')
   throw new ...

...

在HTTP服务器重写模块中,如果用户解析链接(单击链接)以加载URL,则可以评估通常包含在任何HTTP请求中的“ HTTP_REFERRER”。 当指定的引用匹配允许您可以将请求重定向到任何你想要的。 在该级别上进行操作比在php中执行操作快得多。 请注意,这通常还会通过单击链接来阻止未以通常方式触发的任何请求。

第二个要求是将请求限制为仅一次尝试,这在服务器级别很难实现。 就像这里其他人指出的那样,在用户会话中控制它要容易得多。

暂无
暂无

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

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