![](/img/trans.png)
[英]calculation take time to complete, but i want to make it processing in background and user can visit another page?
[英]How can I make a page expire after user visit it?
我有一個頁面http://www.mysite.com/newsletter.php
現在,當我向您發送電子郵件時,我想在其中放置一個變量,然后您訪問此頁面以查看您的電子郵件/用戶名。
因此,我通過電子郵件將此鏈接發送給您http://www.mysite.com/newsletter.php?user=email@email.com
現在,當您訪問此鏈接時,您將在該頁面上以“ Hello email@email.com,請查看新博客”查看您的電子郵件/用戶名。
我在該頁面上寫了用戶名/電子郵件
<?php echo $_GET['user']; ?>
現在,如何使該頁面在您訪問后失效? 我的意思是我只想參觀一次!
* 編輯
看一下我已經用來生成過期的唯一鏈接的代碼:
<?php
include("variables.php");
$password = trim($_SERVER['QUERY_STRING']);
if($password == ADMIN_PASSWORD) {
$new = uniqid('key',TRUE);
if(!is_dir('keys')) {
mkdir('keys');
$file = fopen('keys/.htaccess','w');
fwrite($file,"Order allow,deny\nDeny from all");
fclose($file);
}
$file = fopen('keys/keys','a');
fwrite($file,"{$new}\n");
fclose($file);
?>
<html>
<head>
<title>Page created</title>
<style>
nl {
font-family: monospace
}
</style>
</head>
<body>
<h1>Page key created</h1>
Your new single-use page link:<br>
<nl>
<?php
echo "http://" . $_SERVER['HTTP_HOST'] . DOWNLOAD_PATH . "?" . $new;
?></nl>
</body>
</html>
<?php
} else {
header("HTTP/1.0 404 Not Found");
}
?>`
此代碼還將在36小時后過期,並由variables.php設置
<?
define('PROTECTED_DOWNLOAD','download.php');
define('DOWNLOAD_PATH','/.work/page.php');
define('SUGGESTED_FILENAME','download-doc.php');
define('ADMIN_PASSWORD','1234');
define('EXPIRATION_DATE', '+36 hours');
header("Cache-Control: no-cache, must-revalidate");
header("Expires: ".date('U', strtotime(EXPIRATION_DATE)));
?>
此php文件生成如下所示的鏈接: http ://www.mysite.com/page.php?key1234567890現在如何在uniqid旁邊添加變量user=email@email.com以生成如下所示的鏈接: page.php ?key1234567890&user=email@email.com可以通過<?php echo $_GET['user']; ?>
來獲取email@email.com <?php echo $_GET['user']; ?>
<?php echo $_GET['user']; ?>
在下一頁中。
對不起,我的英語不好。
將狀態變量存儲在數據庫中,當您對該頁面進行訪問時,將電子郵件與到目前為止訪問量為0的數據庫中存儲的電子郵件進行比較,更新狀態變量以顯示Visited = 1,並在下次打開相同的URL時顯示,請查看狀態變量,由於其為1,所以不顯示該頁面。
如果要避免與數據庫進行交互,則還可以創建一個cookie,然后在有人導航到http://www.mysite.com/newsletter.php時查看該cookie。 唯一的問題是,當用戶清除其cookie時,頁面將再次出現。
嘗試這個:
您只能通過數據庫更新機制安全地執行此操作。 將數據庫字段設置為默認值0,並在用戶訪問該頁面后將其設置為1。
例如,
在某些網站中,您可以在“忘記密碼鏈接”頁面中找到此類選項。
另一個選擇是為此使用客戶端緩存。 我們可以在用戶第一次訪問時保存cookie,而在下次訪問時,我們可以檢查是否較早訪問了用戶並向其顯示消息。 http://plugins.jquery.com/project/Cookie
只需在您的K中添加一個額外的列即可存儲頁面狀態。 用戶訪問您的頁面時。 只需更改狀態即可。 並且不允許狀態更改的頁面。 您只需在數據庫查詢中進行較小的更改即可輕松完成此操作。 這將減輕維護使用session
和cookies
的負擔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.