Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何让用户临时访问特定链接?_Php_.htaccess_File Sharing - Fatal编程技术网

Php 如何让用户临时访问特定链接?

Php 如何让用户临时访问特定链接?,php,.htaccess,file-sharing,Php,.htaccess,File Sharing,我经常看到人们这样做,通常是在嵌入视频时 它们具有带有时间戳的链接或GET值中的某些内容,允许用户临时访问该文件 目前,我的.htaccess文件只有选项-索引(只是为了让它们根本无法访问目录。但我知道这没有多大帮助) 我是否应该制作一个PHP脚本,在sql db中存储与IPs匹配的特殊ID,这些ID的时间戳在30分钟后过期?我不知道这是不是最有效的方法 执行此操作的最佳方式是什么?您可以使用时间戳+保护哈希,例如: 创建链接时,您可以执行以下操作: define('SECRET',"onlyk

我经常看到人们这样做,通常是在嵌入视频时

它们具有带有时间戳的链接或GET值中的某些内容,允许用户临时访问该文件

目前,我的.htaccess文件只有
选项-索引
(只是为了让它们根本无法访问目录。但我知道这没有多大帮助)

我是否应该制作一个PHP脚本,在sql db中存储与IPs匹配的特殊ID,这些ID的时间戳在30分钟后过期?我不知道这是不是最有效的方法


执行此操作的最佳方式是什么?

您可以使用时间戳+保护哈希,例如:

创建链接时,您可以执行以下操作:

define('SECRET',"onlyknownbyyourserversidescipt");

$now = time();
$protect = md5($now.SECRET);

$link = 'http://what.ever/?'.http_build_query(array('t'=>$now,'p'=>$protect));
当链接打开时,检查时间是否与受保护的时间匹配

if(md5($_GET['t'].SECRET) === $_GET['p']){
  //then you can check the time
  if(time()-$_GET['t'] > 30*60){
    header(..)
  }else{
   header(..)
  }
}

没有人可以伪造时间戳,因为没有人知道你的秘密

@mbschenkel:请原谅。我不得不对其他一些问题发表评论。不知道这是怎么发生的O