Forum Webscript.Ru
Программирование => PHP => Тема начата: от 25 Июня 2002, 13:25:04
-
Люди есть такой код:
$openFile = fopen($fileName,"r");
$oldData = fread($openFile, filesize ($fileName));
fclose($openFile);
@$openFile = fopen($fileName,"w+") or die ("Access is denied. Set permission to ".$fileName." by command in console \\"chmod 666 ".$fileName."\\"");
if ($openFile && flock($openFile,LOCK_EX))
{
@fwrite($openFile,$fileData);
@fwrite($openFile,$oldData);
}
fclose($openFile);
Почему не происходит запись новых данных в файл. Т.е. файл попросту обнуляется, видимо дело в настройках на другой системе все работало.
Система нынешняя - Apache 2.0.36 win32, PHP 4.3.0
И еще вопрос ставил ли кто-нибудь форум phpbb2? Дело в том что когда запускааешь install.php страница пустая.
-
почему-то я всегда считал, что крутые бета-тестеры по форумам не ходят, а тусуются на багрепорте на РНР...
-
flock под Маздаем не работает со всеми вытекающими
-
flock под Маздаем не работает со всеми вытекающими
Не работает, но это, однако, не приводит к ошибке. Он просто игнорируется.
Пример, вообще, рабочий. Ты уверен, что $fileData не пуста?
-
Тут $fileData вообще не причем (потому как flock возвращает false и в ветку записи мы даже не попадаем) - см. систему Unregistred\'a.
Мы открываем файл для записи, указатель позиционируется на ноль, мы ничего туда не пишем (поскольку такой инструкции нет), файл закрывается - и мы получаем миленький нулевочный файлик
-
GotZfild а ИМХО приводит, причёт к конкретной. Скрипт просто не работает, выдаёт ерорр 500 или что нибудь рядом.
-
Почему не происходит запись новых данных в файл
Так старые данные остаются или файл становится вообще пустой?
-
ЖеньКа
Только что специально протестил. Ошибок нет. Все пучком :). Не знаю, может у меня Вынь особенная.
-
Еще раз... flock молчит под маздаем. Совсем... Выдает false.
-
flock молчит под маздаем
Стоит уточнить, что не работает только в Win9x/ME, а в WinNT4.0/W2K/XP все прекрасно работает. Скорее всего у тебя GotZfild Вынь особенная
из серии NT. :)
Unregistered
закоментируй все флоки и все будет работать.
-
Вынь особенная
из серии NT.
Угу, 2000-я, родная.
А вообще, это неверно, если не сработал flock, то не записывать данные. flock - это больше рекомендация или пожелание программиста, но никак не обязательное условие, при невыполнении которого прерывать нормальный процесс выполнения сценария.
-
MadDog вот чую грамотный ответ был :)
-
ЖеньКа
Сенкс. :)
2All
ИМХО, неплохо было бы поместить данный вопрос в FAQ, а то он частенько возникает.
-
u menya stoit WinXP. i flock ne rabotaet. on deystvitel`no vsegda vozvraschaet FALSE. vse flock zakomentil, zarabotalo :)