Strict Standards: Resource ID#37 used as offset, casting to integer (37) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#39 used as offset, casting to integer (39) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#40 used as offset, casting to integer (40) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Востановление тем
ТвойWeb » » ExBB - лучший форум на файлах » Востановление тем

Страниц (2): [1] 2 »
 

1. Black Stork KCO - 17 Января, 2006 - 15:44:11 - перейти к сообщению
Расскажу-ка я вам маленькую историю. Сегодня в очередной раз упали темы в одном из форумов. Так как это проблема меня задолбала, потопал сюда искать ошибку. Перелапатив 3 страницы тем, понял, что причина обнуления файлов - сбой на сервере, а способов борьбы, кроме бекапа нету. Так вот такой вопрос, как сделать, чтобы все темы автоматом востанавливались? А то задолбалось заходить в каждую и жать "востановить".
2. SviMik - 17 Января, 2006 - 16:24:22 - перейти к сообщению
Я вот столько про это обнуление начитался. Слава богу, у меня его никогда небыло Голливудская улыбка

У меня есть такая идея по защите от неё (идея взята у некоторых прог, для сохранения данных в случае сбоя во время записи): форум переодически создаёт копи файлов. Типа файл блаблабла.php копирует в блаблабла.php.bak и проверяетт каждый раз размер файла. Если 0 байт - восстанавливает, если файл целый - обновляет бэкап.
3. ETC - 17 Января, 2006 - 16:27:58 - перейти к сообщению
Можно, теоретически. На практике это может привести к новым обнулениям уже всего и вся...
4. Black Stork KCO - 17 Января, 2006 - 17:01:35 - перейти к сообщению
ETC пишет:
На практике это может привести к новым обнулениям уже всего и вся.

Почему?
5. RaZoR - 18 Января, 2006 - 02:20:46 - перейти к сообщению
SviMik пишет:
У меня есть такая идея по защите от неё (идея взята у некоторых прог, для сохранения данных в случае сбоя во время записи): форум переодически создаёт копи файлов. Типа файл блаблабла.php копирует в блаблабла.php.bak и проверяетт каждый раз размер файла. Если 0 байт - восстанавливает, если файл целый - обновляет бэкап.

я даже видел это реализованное где-то.. кажется на [url]php.net[/url]. сейчас найду.
а, вот
CODE:
Following is based on below comments. When something goes wrong, script will perform backup of writen data to randomly named file in temp dir.

<?
function safewrite($filename, $data){
$rand = microtime();
$rand = md5($rand);
$temp = fopen("temp/$rand", "w");
fwrite($temp, $data);
fclose($temp);
$otw = fopen($filename, "a+");
if(flock($otw, LOCK_EX)){
ftruncate($otw, 0);
if(!fwrite($otw, $data)) $err = 1;
flock($otw, LOCK_UN);
fclose($otw);
} else {
$err = 1;
}
if($err == 1 || (filesize($filename) == 0 && strlen($data) <> 0)){
die("<b>There was an error while writing to $filename. Contact site administrator!</b>");
} else {
unlink("temp/$rand");
}
}
?>

Hope it helps.
6. SysteM - 18 Января, 2006 - 04:19:39 - перейти к сообщению
Да, но ведь файлы на форуме, в частности list.php не обнуляется полностью. Точнее, он обнуляется, но потом, когда кто-либо заходит на форум, то скрипт дописывает новую информацию в пустой файл.

Сам уже сталкивался с проблемой обнуления несколько раз. Посетители форума ругаютсяОгорчение
7. Cyber-Cat - 18 Января, 2006 - 04:43:55 - перейти к сообщению
RaZoR

Надо проверять не на обнуление, а на размер.
Примерно так:

Если размер list.php меньше размера list.php.bak
то произвести восстановление.
8. RaZoR - 18 Января, 2006 - 05:00:49 - перейти к сообщению
SysteM
Cyber-Cat
это уже технические особенности конкретного случая. я лишь дал пример, как это уже реализовано кем-то.
9. ETC - 18 Января, 2006 - 05:06:41 - перейти к сообщению
Cyber-Cat
а если я тему удалю, list.php уменьшится.
10. Cyber-Cat - 18 Января, 2006 - 05:19:21 - перейти к сообщению
ETC
При удалении темы, нужно по новой копировать list.php в list.php.bak
Что бы создался новый бекап... Улыбка

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0593]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33