Forum Webscript.Ru

Программирование => PHP => Тема начата: не не от 19 Мая 2002, 20:04:01

Название: фаил записывается хрен знает как
Отправлено: не не от 19 Мая 2002, 20:04:01
Вот кусок скрипта
в нем создаётся и записывается один фаил, и дозаписывается в начало другой, так вот проблема в том что когда он дозаписывает, то он либо стирает часть его и дозаписывает или ещё чёнить нехорошее
 
$date=alx_date();
$ip=getenv("REMOTE_ADDR");
$icon=ceil($icon);
$col=col_file_forum($kat, $for);
if($col=="0"){$col=1;}
while($col){
if(!is_file("$DB/$kat/$for/$col.dat")){break;}
else{$col++;}
}
$id=$col;
$f=fopen("$DB/$kat/$for/$id.dat", "w");
$mess=txt_1($mess);
$login=txt_1($login);
$tema=txt_1($tema);
$icon=txt_1($icon);
$write="$id<~>$id_user<~>$icon<~>$tema<~>$mess<~>$date<~>$ip";
fwrite($f, $write);
fclose($f);
$otvetov="0";
$id_otvet="0";
if(col_mes_forum($kat, $for)=="0"){$b="";} else{$b="\\n";}
$writen="$id<~>$icon<~>$tema<~>$id_user<~>$otvetov<~>$id_otvet<~>$date<~>0$b";
$f=fopen("$DB/$kat/$for/forum.dat", "r+");
fwrite($f, $writen);
fclose($f);
add_user_mes($id_user);
echo"Спасибо, за добавление сообщения в наш форум.
Перейти";
Название: фаил записывается хрен знает как
Отправлено: AlieN от 20 Мая 2002, 10:47:32
не не
У меня ещё хуже:
данные вбиваются через поле текстареа
и потом это всё записывается в файл.
Так вот при записи данные урезаются до 753-755 символов
Сам мучаюсь :)
Название: фаил записывается хрен знает как
Отправлено: AliMamed от 20 Мая 2002, 10:52:36
flock
Название: фаил записывается хрен знает как
Отправлено: не не от 20 Мая 2002, 11:19:15
AliMamed
flock здесь непоможет
Название: фаил записывается хрен знает как
Отправлено: Metaller от 21 Мая 2002, 10:03:31
AlieN
Ну, у тебя-то понятно все... ты ГЕТом шлешь, а надо ПОСТом :) :) :)
Название: фаил записывается хрен знает как
Отправлено: Metaller от 21 Мая 2002, 14:49:46
Короче, все правильно, он и должен затирать.
Если тебе нужно дописать в начало файла - сначала считай его весь, потом в начало напиши новую строчку, потом добавь после нее то, что было в файле. По идее так.
Название: фаил записывается хрен знает как
Отправлено: не не от 22 Мая 2002, 12:57:55
народ почему в этом скрипте фаил записывается от конца файла а не от начала, ведь я поменял fseek

$f=fopen("$DB/$kat/$for/forum.dat", "a+");
fseek($f, 0);
fwrite($f, $writen);
fclose($f);
Название: фаил записывается хрен знает как
Отправлено: AlieN от 22 Мая 2002, 13:46:27
не не

$was=file("$DB/$kat/$for/forum.dat");
$f=fopen("$DB/$kat/$for/forum.dat", "a+");
fwrite($f, $was);
fwrite($f, $writen);
fclose($f);
Название: фаил записывается хрен знает как
Отправлено: не не от 22 Мая 2002, 15:42:02
Цитировать
AlieN  

так он выдаёт ошибка вот тут fwrite($f, $was);

Warning: Array to string conversion in e:\\alex\\www\\forum\\newtopic.php on line 45
Название: фаил записывается хрен знает как
Отправлено: Britva от 22 Мая 2002, 16:29:49
fwrite($f,  implode (\'\', $was));

или так:


$was=implode("", file("$DB/$kat/$for/forum.dat"));
$f=fopen("$DB/$kat/$for/forum.dat", "a+");
fwrite($f, $was);
fwrite($f, $writen);
fclose($f);
Название: фаил записывается хрен знает как
Отправлено: не не от 23 Мая 2002, 12:13:38
во спасибо так работает но тока как  записывать
fwrite($f, $was);
fwrite($f, $writen);
нужно обнулить фаил, как?
Название: фаил записывается хрен знает как
Отправлено: Metaller от 23 Мая 2002, 12:17:15
открывать его не а+ а просто w
Название: фаил записывается хрен знает как
Отправлено: не не от 23 Мая 2002, 12:28:08
Цитировать
открывать его не а+ а просто w

но кагда так записываеш то символ \\n превращается в какуюто загагулину
Название: фаил записывается хрен знает как
Отправлено: Britva от 23 Мая 2002, 13:07:50
пропиши "wt" при открытии файла, для унихов тоже сработает
Название: фаил записывается хрен знает как
Отправлено: не не от 23 Мая 2002, 13:14:45
всёравно загагулина неисчезает
Название: фаил записывается хрен знает как
Отправлено: AlieN от 23 Мая 2002, 15:25:10
не не
Цитировать
символ \\n превращается в какуюто загагулину

правильно
смотри нормальным редактором - такого не будет
Название: фаил записывается хрен знает как
Отправлено: не не от 23 Мая 2002, 15:33:32
да редактор то нормальный (EditPlus).
и ведь превращаются не все а только тот что стоит в конце $writen
Название: фаил записывается хрен знает как
Отправлено: Metaller от 23 Мая 2002, 15:36:27
Попробуй trim
Название: фаил записывается хрен знает как
Отправлено: не не от 23 Мая 2002, 16:00:08
Цитировать
Попробуй trim

но тогда он удалит и загагулину \\n
Название: фаил записывается хрен знает как
Отправлено: Metaller от 24 Мая 2002, 09:48:46
попробуй Trim, а потом .="\\n" - может поможет..
или попробуй \\r\\n.... тоже, может, что выйдет.
Название: фаил записывается хрен знает как
Отправлено: не не от 24 Мая 2002, 17:04:15
Цитировать
попробуй Trim, а потом .="\\n" - может поможет..
или попробуй \\r\\n.... тоже, может, что выйдет.

всё по старому :( и причём такая фигня тока на моём домашнем компе, если запустить на серваке то всё нормально
Название: фаил записывается хрен знает как
Отправлено: AlieN от 24 Мая 2002, 17:14:12
не не
ссылку чтоли дай
Название: фаил записывается хрен знает как
Отправлено: Metaller от 24 Мая 2002, 17:17:41
Цитировать
ссылку чтоли дай

угу.. на домашний комп :-)
Название: фаил записывается хрен знает как
Отправлено: не не от 24 Мая 2002, 17:29:43
вот вам архив http://www.halava.dax.ru/web/forum.zip
там проблема в newtopic.php
смотрите после if($password==$pass){
Название: фаил записывается хрен знает как
Отправлено: Metaller от 24 Мая 2002, 17:31:23
типа, 403 еррор
Название: фаил записывается хрен знает как
Отправлено: не не от 24 Мая 2002, 17:42:22
а щас, и какой лучше поставить chmod??
Название: фаил записывается хрен знает как
Отправлено: Dm от 25 Мая 2002, 01:59:12
Цитировать
загагулину

это же \\r в реж. работы unix фалами.
серьезно, лучше используй trim. ничего страшного, если потом добавлять \\n