Временная страница загрузки или ограничение статической страницы загрузки на основе того, как пользователь попал на страницу?

Я в основном хочу это знать, если можно создать систему, в которой, когда пользователь хочет загрузить что-то, он создает временную страницу загрузки (а не ссылку для загрузки, это я хочу статические файлы с hotlink вместо их загрузки непосредственно на моем сервере ), и страница удалит себя через определенный промежуток времени. Или мое другое решение может заключаться в ограничении видимости содержимого страницы или страниц на основе URL-адреса того, как пользователь туда попал. Причина, по которой я спрашиваю, заключается в том, что я использую adf.ly для гостей, чтобы загружать вещи, и участники не получают страницы adf.ly, они идут прямо к загрузке. Зарегистрированная страница загрузки пользователя блокируется от гостей, к которым она обращается, но если кто-либо из гостей разделяет URL-адрес страницы загрузки гостевой страницы после adf.ly, любой пользователь может обойти adf.ly и перейти прямо к странице загрузки по прямой ссылке. Есть ли способ заставить их загружать страницу, если они не попали на страницу через ссылку adf.ly или каким-то образом создали временную страницу загрузки, которая останется только на пару минут, а затем исчезнет и продолжит изменять URL-адрес так что люди не могут раздавать прямую гостевую ссылку для скачивания? Если есть способ сделать это, я был бы благодарен 🙂

Для вашего первого вопроса «Определите, откуда они идут», просто проверьте $_SERVER['HTTP_REFERER'] для ожидаемого веб-адреса.

Для второго «Создать короткую страницу» ваш ответ лежит в методе set_transient () . Вы можете сделать что-то вроде:

 function create_page() { if ( get_current_user_id() ) return "<html>...</html>"; return false; } function get_page( $unique_id ) { // Get an earlier created page if it's still alive $page = get_transient( $unique_id ); if ( !$page ) { // Try creating a new page $page = create_page(); if ( !$page ) return false; // Cache the page and allow it to live for 1 hour set_transient( $unique_id, $page, HOUR_IN_SECONDS ); } // Return the page return $page; } 

Обратите внимание, что образец кода потребует изменения в соответствии с вашими потребностями. В основном это создает страницу или вставку для страницы и сохраняет ее в базе данных с продолжительностью жизни 1 час. Вы можете сопровождать это, добавив $unique_id к metadata пользователей. Таким образом, вы можете быть уверены, что только один пользователь может получить доступ к странице в течение ее жизни.