【问题标题】:Restrict web page to be viewed once?限制网页只能查看一次?
【发布时间】:2014-12-09 01:08:53
【问题描述】:

我正在尝试设置一个网页(使用 wordpress)来显示只能观看一次的视频。经过一些研究,似乎我最好的选择是通过 cookie 限制页面浏览量?

例如,我发现了这段代码,我觉得它可以解决问题:

if(!isset($_SESSION['mypage_view'])
{
     $_SESSION['mypage_view'] = 1;   
} else {
     //check if this is not the first time the page has been viewed
     if(isset($_SESSION['mypage_view'])) {
      //not first time redirect
      header('location: google.com');
      session_write_close();
      exit();
     }
} 

(来源:how do I show a php page just once only per user

这将如何在 wordpress 中应用?或者有没有人有更好的解决方案来实现这一点?

感谢您的宝贵时间!

【问题讨论】:

  • 使用一些数据库插入,因为 cookie 和会话可能会被破坏
  • 您好,感谢您的快速回复,您能否为我指明有关此方面的更多帮助的方向?以前没用过数据库插入?

标签: php wordpress cookies


【解决方案1】:

如果这是人们会积极尝试破坏您的安全性的事情,那么这是行不通的。但是,如果人们想多次查看此内容,无论您做什么,他们都会找到一种方法来执行此操作。 获取IP地址

$_SERVER['REMOTE_ADDR']

把它扔进一个文件、数据库,随便你的船

开始页面
$viewedonce = array(); // populate this however you've stored the data
if (in_array ($_SERVER['REMOTE_ADDR'], $viewedonce)) 
{
header("location: http://redirect.com");
   exit();
}

如果您想将 cookie 和 IP 结合起来,请前往城镇。

编辑:

如果您所追求的只是“只要这张照片被任何人看过一次,就没有其他人可以看到它”

只提供文件,然后删除它

unlink($theFile);

您也可以重命名文件并将其删除...

rename('theFile.jpg', 'derp/theFile.jpg');

或复制文件并删除它...

copy('theFile.jpg', 'derp/thefile.jpg');

我不完全确定您要做什么。

【讨论】:

  • 你好,是的,我意识到如果人们真的想要他们可以,只是试图让它变得更难/更尴尬。使用这种方法是否需要指定最终用户 IP?理想情况下,我希望它适用于任何非特定的观众......感谢您的回复!
  • 这将使用 $_SERVER['REMOTE_ADDR'] 获取 reported 最终用户 ip -- 他们可以通过多种方式改变这一点,但假设他们只是从一台电脑,没有什么有趣的事情,没关系。
  • 我只希望这样,每个查看者只能查看一次页面/视频。肯定会有很多人在看我只是不想让他们轻易地继续重播它......
  • 那么是的,记录每个reported ip 地址。将其放入MySQL(或根据需要存储)并使用if 语句启动整个页面。如果您想将 IP 与 Cookie 结合起来,只需结合 IF IP 在数组中或设置 cookie 的代码即可。
  • 对您提供的额外问题表示歉意!这种方法在不知道 IP 地址的情况下仍然有效吗?因为我无法在他们观看之前收集它们。
猜你喜欢
  • 2012-09-27
  • 2015-05-09
  • 1970-01-01
  • 1970-01-01
  • 2012-12-29
  • 2020-10-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多