好了,这里是你的代码:
$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