2015-12-02 17 views
-1

基本上我已經創建了這個表格,用戶輸入申請人的用戶信息和電子郵件地址。我需要創建一個一次性鏈接,將用戶引導回我的網站。該鏈接一旦點擊就過期,並應與電子郵件的信息一起包含。如何使用PHP創建一次性鏈接並將其包含在電子郵件中?

下面的表單按預期工作,並向用戶發送電子郵件地址,無論您輸入什麼形式。但我不知道如何讓電子郵件中包含超鏈接,更不用說如何爲每個新用戶生成超鏈接。

形式:

<form action="email_script.php" method="POST"> 
Ämne: <input type="text" name="subject" style="width: 500px;"/><br> 
Kandidatens E-postadress: <input type="text" name="minemail" style="width: 500px;"/><br> 
Kandidatens E-postadress: <input type="text" name="kanemail" style="width: 500px;"/><br> 
Meddelande: <textarea rows="10" cols="30" name="message" style="width: 500px"></textarea> <br> 
<input type="submit" value="Skicka test"> 
</form> 

這是PHP腳本:

<?php 
$from=$_POST['minemail']; 
$email=$_POST['kanemail']; 
$subject=$_POST['subject']; 
$message=$_POST['message']; 
$company=dashboardcompany.php; 

mail($email, $subject, $message, "Från: ".$from); 

print "Ditt meddelande har skickats: <br>$email<br>$subject<br>$message<br>"; 
?> 
+1

你有一個數據庫嗎?標準的方法是在數據庫中創建一個'標記',一旦使用就會過期或被刪除。 – samlev

+0

我做了一個數據庫表兩列:令牌(主)char(40),tstamp(int 10)。 –

回答

0

您可以用PHP創建一個激活的散列做這樣的事情,它返回一個40字符的字符串中的數據庫來存儲以及其他用戶數據

$user_activation_hash = sha1(uniqid(mt_rand(), true)); 

然後在您的$message cre用哈希鏈接了一個鏈接。

$link = "mysite.com/activate.php?code=".$user_activation_hash; 

當用戶點擊,則需要使用此

$code = $_GET['code']; 

捕捉代碼activate.php頁面上然後從那裏數據庫

0

執行您檢查您創建的每個電子郵件,生成一個類似uniqid()的ID。將它插入你的數據庫。

內,您的$消息(已經有HTML格式),包括您的鏈接

<a href="https://example.com/register.php?link=asdf1a234">Click to register</a> 

在您的register.php頁面中,選中你的數據庫,以確保代碼仍然存在,允許註冊開始,並刪除代碼(或標記它使用 - 如果有人點擊多次可能會有用)。

相關問題