2014-01-11 17 views
0

我使用PHP作爲簡單的聯繫表單。我試圖爲每個提交的表單生成一個唯一的ID。例如,第一封電子郵件是#001,第二#002,第3#003等。如何爲聯繫人表單生成ID?

我將在自動回覆(或自動回覆?)中使用ID電子郵件:「您是#016人聯繫「。例如,

可以使用PHP或JavaScript(可以使用JS嗎?我不知道!但我更喜歡PHP!)。但我不知道我該如何做到這一點。

我沒有使用數據庫。

+0

是的,你可以使用PHP來做到這一點。 –

+0

[保持鎖定時讀取和寫入文件]可能的重複(http://stackoverflow.com/questions/2450850/read-and-write-to-a-file-while-keepinglock) –

回答

0

由於您可能(可能)會將接收到的信息存儲在某種數據庫中,因此您在插入數據庫時​​生成id。自動增量ID字段應該做到這一點。

編輯:這聽起來也合理重用google forms

+0

我是不使用數據庫:/ – Melo

+0

那麼你如何處理表單數據呢? – Marat

+0

這是一個簡單的聯繫表單:在我的網站上,用戶發送一條消息(帶有ID),然後收到我的電子郵件。 – Melo

0

有幾種方法可以做到這一點。其中最簡單的是創建一個文件,它將存儲填充的表格數量,並且可以增加每個表格填充的值。

下面是複製的例子:Read and write to a file while keeping lock

//Open the File Stream 
$handle = fopen("file.txt","r+"); 

//Lock File, error if unable to lock 
if(flock($handle, LOCK_EX)) { 
    $count = fread($handle, filesize("file.txt")); //Get Current Hit Count 
    $count = $count + 1; //Increment Hit Count by 1 
    ftruncate($handle, 0); //Truncate the file to 0 
    fwrite($handle, $count); //Write the new Hit Count 
    flock($handle, LOCK_UN); //Unlock File 
} else { 
    echo "Could not Lock File!"; 
} 

//Close Stream 
fclose($handle); 
+0

它受競爭條件 – Marat

+0

@馬拉特我不認爲他會遇到競爭條件 –

+0

好吧,這是一個網站。有一天,它會同時發出兩個請求 – Marat

0

您可以使用PHP的uniqid()函數生成唯一的ID各一次。

更新1: 這是一個非常有用的功能。生成相同ID的概率確實是最小的。欲瞭解更多信息,請訪問the link

更新2: 您可以使用簡單的文本文件/ csv一次存儲一行以跟蹤它。當用戶提交表單時,您每次都會生成唯一的ID並回復客戶端,並且如果您願意,可以將其存儲到普通文本文件中。希望這會有所幫助。

+0

我必須有一個數據庫? – Melo

相關問題