Forum Webscript.Ru

Программирование => PHP => Тема начата: от 25 Июня 2002, 13:25:04

Название: Работа с файлами и форум phpbb2
Отправлено: от 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 страница пустая.
Название: Работа с файлами и форум phpbb2
Отправлено: Меняздесьдавнонет от 25 Июня 2002, 13:31:41
почему-то я всегда считал, что крутые бета-тестеры по форумам не ходят, а тусуются на багрепорте на РНР...
Название: Работа с файлами и форум phpbb2
Отправлено: Maniac от 25 Июня 2002, 14:36:37
flock под Маздаем не работает со всеми вытекающими
Название: Работа с файлами и форум phpbb2
Отправлено: GotZfild от 25 Июня 2002, 16:46:01
Цитировать
flock под Маздаем не работает со всеми вытекающими

Не работает, но это, однако, не приводит к ошибке. Он просто игнорируется.
Пример, вообще, рабочий. Ты уверен, что $fileData не пуста?
Название: Работа с файлами и форум phpbb2
Отправлено: Maniac от 25 Июня 2002, 16:51:30
Тут $fileData вообще не причем (потому как flock возвращает false и в ветку записи мы даже не попадаем) - см. систему Unregistred\'a.
Мы открываем файл для записи, указатель позиционируется на ноль, мы ничего туда не пишем (поскольку такой инструкции нет), файл закрывается - и мы получаем миленький нулевочный файлик
Название: Работа с файлами и форум phpbb2
Отправлено: ЖеньКа от 25 Июня 2002, 17:01:26
GotZfild а ИМХО приводит, причёт к конкретной. Скрипт просто не работает, выдаёт ерорр 500 или что нибудь рядом.
Название: Работа с файлами и форум phpbb2
Отправлено: GotZfild от 25 Июня 2002, 17:04:52
Цитировать
Почему не происходит запись новых данных в файл

Так старые данные остаются или файл становится вообще пустой?
Название: Работа с файлами и форум phpbb2
Отправлено: GotZfild от 25 Июня 2002, 17:08:03
ЖеньКа
Только что специально протестил. Ошибок нет. Все пучком :). Не знаю, может у меня Вынь особенная.
Название: Работа с файлами и форум phpbb2
Отправлено: Maniac от 25 Июня 2002, 17:10:14
Еще раз... flock молчит под маздаем. Совсем... Выдает false.
Название: Работа с файлами и форум phpbb2
Отправлено: MadDog от 25 Июня 2002, 18:05:04
Цитировать
flock молчит под маздаем

Стоит уточнить, что не работает только в Win9x/ME, а в WinNT4.0/W2K/XP все прекрасно работает. Скорее всего у тебя GotZfild
Цитировать
Вынь особенная
из серии NT. :)


Unregistered
закоментируй все флоки и все будет работать.
Название: Работа с файлами и форум phpbb2
Отправлено: GotZfild от 25 Июня 2002, 18:51:58
Цитировать
Вынь особенная
из серии NT.

Угу, 2000-я, родная.
А вообще, это неверно, если не сработал flock, то не записывать данные. flock - это больше рекомендация или пожелание программиста, но никак не обязательное условие, при невыполнении которого прерывать нормальный процесс выполнения сценария.
Название: Работа с файлами и форум phpbb2
Отправлено: ЖеньКа от 25 Июня 2002, 19:14:57
MadDog  вот чую грамотный ответ был :)
Название: Работа с файлами и форум phpbb2
Отправлено: MadDog от 26 Июня 2002, 09:02:21
ЖеньКа
Сенкс. :)


2All
ИМХО, неплохо было бы поместить данный вопрос в FAQ, а то он частенько возникает.
Название: Работа с файлами и форум phpbb2
Отправлено: от 27 Июня 2002, 15:10:25
u menya stoit WinXP.  i flock ne rabotaet. on deystvitel`no vsegda vozvraschaet FALSE.  vse flock zakomentil, zarabotalo :)