Как реализовать одноразовый пароль для скачивания

Мне нужен совет в php. Как я могу сделать так, чтобы пользователи могли загружать файл только один раз с паролем, который они получают от меня.

Для начала мне понадобится подключенная база данных со списком уникальных паролей.
Затем с помощью php я должен определить, использовался ли пароль для загрузки — если да, отключите его.

Может кто-нибудь мне помочь?

-1

Решение

Вам просто нужно сохранить одно поле в базе данных, чтобы при следующем щелчке пользователя оно не загружалось.

Вот как я это делаю:
Когда я отправляю ссылку:

 $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

Когда пользователь нажимает на ссылку:

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
}
}
}
}
1

Другие решения

Мне нужен совет в php. Как я могу сделать так, чтобы пользователи могли загружать файл только один раз с паролем, который они получают от меня.

Для начала мне понадобится подключенная база данных со списком уникальных паролей.
Затем с помощью php я должен определить, использовался ли пароль для загрузки — если да, отключите его.

Может кто-нибудь мне помочь?

-1

Вам просто нужно сохранить одно поле в базе данных, чтобы при следующем щелчке пользователя оно не загружалось.

Вот как я это делаю:
Когда я отправляю ссылку:

 $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

Когда пользователь нажимает на ссылку:

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
}
}
}
}

active «data-shortcut =» A
самый старый «data-shortcut =» O
голосует «data-shortcut =» V
1
По вопросам рекламы [email protected]