Php 如何实现一次性密码下载

Php 如何实现一次性密码下载,php,one-time-password,Php,One Time Password,我需要一些关于php的建议,我如何才能让用户能够使用从我这里获得的密码下载一次文件 首先,我需要一些连接数据库的唯一密码列表。 然后使用php我必须检测,如果密码用于下载-如果是,禁用它 有人能帮我吗?您只需要在数据库中维护一个字段,这样当用户下次单击时,它就不会被下载 我就是这样做的: 当我发送链接时: $email_enc = base64_encode($check[0]->email_id); $id_enc = base64_encode($check[0]->i

我需要一些关于php的建议,我如何才能让用户能够使用从我这里获得的密码下载一次文件

首先,我需要一些连接数据库的唯一密码列表。 然后使用php我必须检测,如果密码用于下载-如果是,禁用它


有人能帮我吗?

您只需要在数据库中维护一个字段,这样当用户下次单击时,它就不会被下载

我就是这样做的: 当我发送链接时:

 $email_enc = base64_encode($check[0]->email_id);
    $id_enc = base64_encode($check[0]->id);
    $time = time();
    $url = $baseurl . "downloadfile?unq=" . $id_enc . "&em=" . $email_enc . "&tm=" . $time;

    $emaildata['message'] = "Hello $name,<br/><br/> Please <a href='$url'>Click</a> here to download your attachment.<br/><br/> Thanks,<br/>XYZ";
    sendmail($emaildata);
   //set status to 0
$email\u enc=base64\u encode($check[0]->email\u id);
$id_enc=base64_encode($check[0]->id);
$time=time();
$url=$baseurl。“下载文件?unq=”$身份证。“&em=”$发电子邮件给enc。“&tm=”$时间
$emaildata['message']=“您好$name,

请在此下载您的附件。


谢谢,
XYZ”; sendmail($emaildata); //将状态设置为0
当用户单击链接时:

if ($_REQUEST['unq'] != '' && $_REQUEST['em'] != '' && $_REQUEST['tm'] != '') 
{
  $unique_id = base64_decode($_REQUEST['unq']);
  $u_email = base64_decode($_REQUEST['em']);
  $email_para = array(
    'id' => $unique_id
  );
  $check_avaibility = $this->User_model->getAnyData($email_para);
  if (!empty($check_avaibility)) 
  {
    $u_time = $_REQUEST['tm'];
    $cur_time = time();
    if ($cur_time - $u_time < 10800)
    {
      if(//check status to 0 only)
      {
       //download attachment
       //update the status as 1 that means link is not clickable next time
      }
    }
  }
}
if($\u请求['unq']!=''&&$\u请求['em']!=''&&$\u请求['tm']!='')
{
$unique_id=base64_解码($_请求['unq']);
$u_email=base64_解码($_请求['em']);
$email_para=数组(
'id'=>$unique\u id
);
$check\u availability=$this->User\u model->getAnyData($email\u para);
如果(!空($检查可用性))
{
$u_time=$_请求['tm'];
$cur_time=time();
如果($cur_time-$u_time<10800)
{
if(//仅将状态检查为0)
{
//下载附件
//将状态更新为1,表示下次无法单击链接
}
}
}
}

为用户分配一些随机数并将其存储在数据库中