Forum Webscript.Ru
Программирование => PHP => Тема начата: не не от 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"";
-
не не
У меня ещё хуже:
данные вбиваются через поле текстареа
и потом это всё записывается в файл.
Так вот при записи данные урезаются до 753-755 символов
Сам мучаюсь :)
-
flock
-
AliMamed
flock здесь непоможет
-
AlieN
Ну, у тебя-то понятно все... ты ГЕТом шлешь, а надо ПОСТом :) :) :)
-
Короче, все правильно, он и должен затирать.
Если тебе нужно дописать в начало файла - сначала считай его весь, потом в начало напиши новую строчку, потом добавь после нее то, что было в файле. По идее так.
-
народ почему в этом скрипте фаил записывается от конца файла а не от начала, ведь я поменял fseek
$f=fopen("$DB/$kat/$for/forum.dat", "a+");
fseek($f, 0);
fwrite($f, $writen);
fclose($f);
-
не не
$was=file("$DB/$kat/$for/forum.dat");
$f=fopen("$DB/$kat/$for/forum.dat", "a+");
fwrite($f, $was);
fwrite($f, $writen);
fclose($f);
-
AlieN
так он выдаёт ошибка вот тут fwrite($f, $was);
Warning: Array to string conversion in e:\\alex\\www\\forum\\newtopic.php on line 45
-
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);
-
во спасибо так работает но тока как записывать
fwrite($f, $was);
fwrite($f, $writen);
нужно обнулить фаил, как?
-
открывать его не а+ а просто w
-
открывать его не а+ а просто w
но кагда так записываеш то символ \\n превращается в какуюто загагулину
-
пропиши "wt" при открытии файла, для унихов тоже сработает
-
всёравно загагулина неисчезает
-
не не
символ \\n превращается в какуюто загагулину
правильно
смотри нормальным редактором - такого не будет
-
да редактор то нормальный (EditPlus).
и ведь превращаются не все а только тот что стоит в конце $writen
-
Попробуй trim
-
Попробуй trim
но тогда он удалит и загагулину \\n
-
попробуй Trim, а потом .="\\n" - может поможет..
или попробуй \\r\\n.... тоже, может, что выйдет.
-
попробуй Trim, а потом .="\\n" - может поможет..
или попробуй \\r\\n.... тоже, может, что выйдет.
всё по старому :( и причём такая фигня тока на моём домашнем компе, если запустить на серваке то всё нормально
-
не не
ссылку чтоли дай
-
ссылку чтоли дай
угу.. на домашний комп :-)
-
вот вам архив http://www.halava.dax.ru/web/forum.zip
там проблема в newtopic.php
смотрите после if($password==$pass){
-
типа, 403 еррор
-
а щас, и какой лучше поставить chmod??
-
загагулину
это же \\r в реж. работы unix фалами.
серьезно, лучше используй trim. ничего страшного, если потом добавлять \\n