0

我的情况:

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

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

我发现了一些带有 REQUEST_URI 但无法正常工作的东西。

我怎样才能做到这一点?可以用.htaccess 制作吗?

4

3 回答 3

1

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

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>";

}

?>
于 2013-08-20T14:05:15.353 回答
0

我建议您使用 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 ...

...
于 2013-08-20T14:02:35.120 回答
0

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

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

于 2013-08-20T14:07:13.540 回答