|
|
|
|
|
для: antf
(13.02.2005 в 00:58)
| | Лучше переписать следующим образом:
<?php
function SaveStringInFile($FileName, $Str, $Mode)
{
$fp=@fopen($FileName, $Mode);
if($fp)
{
if(flock($fp, 2))
{
fwrite($fp, $Str);
flock($fp, 3);
} else $ErrorMessage = "К сожалению, система голосования сейчас занята, попытайтесь, пожалуйста, проголосовать еще раз через несколько секунд ";
fclose($fp);
} else $ErrorMessage = "К сожалению, ошибка в системе голосования ";
return($ErrorMessage);
}
?>
|
Иначе получается, что результат возращённый функцией flock() никак не используется... | |
|
|
|
|
|
|
| Здраствуйте. Сейчас занимаюсь разработкой собственной системы голосования. Вся служебная информация хранится в двумерных файлах. Как предотвратить одновременный доступ к служебным файлам, который может возникнут тогда, когда два посетителя проголосовали одновременно. Поможет ли здесь функция flock(). Приведу код функции, которая осуществляет запись в файл:
<?
function SaveStringInFile($FileName, $Str, $Mode)
{
$fp=@fopen($FileName, $Mode);
flock($fp, 2);
if($fp)
{
fwrite($fp, $Str);
flock($fp, 3);
fclose($fp);
} else $ErrorMessage = "К сожалению, система голосования сейчас занята, попытайтесь, пожалуйста, проголосовать еще раз через несколько секунд ";
return($ErrorMessage);
}
?>
|
| |
|
|
|
|