好了,這裏是你的代碼:
$t=time();
$dir = "tmp/";
$LogName = $t . ".txt";
$dicz = $dir.$LogName;
$bunny = fopen($dicz, 'w') or die('Cannot open file: '.$dicz);
if($bunny == false)
{
echo ("Error in opening new file");
exit();
}
fwrite ($bunny, "FN:" .$FN .",TL:" . $TL .",EMAIL:". $EM ."\n");
現在,讓我們專注於這兩條線:
$bunny = fopen($dicz, 'w') or die('Cannot open file: '.$dicz);
if($bunny == false)
當將$bunny
永遠等於false
如果您的fopen
有or die()
追加到它?
也許你應該嘗試一下這樣的:
$bunny = fopen($dicz, 'w');
if($bunny == false)
{
echo ("Error in opening new file");
exit();
}
else {
fwrite ($bunny, "FN:" .$FN .",TL:" . $TL .",EMAIL:". $EM ."\n");
}
或者只是使用負file_exists
- (又名!file_exists()
)-to檢查文件是否存在都:
$t=time();
$dir = "tmp/";
$LogName = $t . ".txt";
$dicz = $dir.$LogName;
if (!file_exists($dicz)) {
$bunny = fopen($dicz, 'w');
if($bunny == false)
{
echo ("Error in opening new file");
exit();
}
else {
fwrite ($bunny, "FN:" .$FN .",TL:" . $TL .",EMAIL:". $EM ."\n");
}
}
這樣的腳本只會在文件完全不存在的情況下寫入文件。
我在腳本中沒有看到任何可以解釋所描述行爲的內容。我只能認爲腳本每次提交都會運行兩次。另外不要忘記完成後fclose()文件。 – GordonM
其實在進一步的思考之後,如果兩個用戶在一秒鐘內使用表單,可能會有衝突。時間()只有第二個分辨率。您應該使用適當的鎖定來確保腳本不會互相干擾。 – GordonM
'我每次運行腳本時都會生成2個文件'猜測是因爲html頁面源代碼中的bssed css/js/image/asset url會再次加載相同的頁面。 – AD7six