Opět vymazání datových souborů

Zásadní otázka je, jestli wz používá NFS, nebo jinej síťovej souborovej systém, protože jestliže ano, tak jsou všechny flock() úplně na prd...
>> Zásadní otázka je, jestli wz používá NFS, nebo jinej síťovej souborovej systém

urcite ne
co urcite ne? Pouziva ho teda nebo ne? :)


Jeste bych chtel podotknout, ze jsem nahodou zjistil, ze v sekci stahovani chybi nektere soubory. Bylo jich docela dost. Mam vse vzdycky ve formatu jako doc nebo neco takoveho a pak v zip a vzdy zmizela dvojice tohoto souboru - ten doc a zip. Ano, je mozne, ze jsem udelal chybu a neco tam nedal, ale v mem mirroru na hadru tam ty soubory normalne byly...
Nepouziva. Pouziva ext3, afaik.
To Sojkovec: Třeba jenom ext2 :-)

To Smee: To jsem trochu nepochopil, ale pokud na ty soubory nebyl ze stránek odkaz, nedivim se že zmizely. Možná takový varování - i když to by Ti asi i admini napsali...
<HTML>>Zásadní otázka je, jestli wz používá NFS, nebo jinej síťovej souborovej systém

Je fajn ze ctes manual, ale kdyby tu bylo NFS nepsal bych at flock() pouzivate</HTML>
Ne, odkaz tam byl normalni. No, nastesti se nic moc nestalo.
Dal jsem tam ten flock() a stejně se příspěvky mažou :(((((((((
Tak to tě pořádně lituju. Jak se mažou? Okamžitě, jak se něco napíše, či jednou za nějakou časovou periodu? Zkus uložit něco jiného do úplně jiného souboru...
No mazají se akorát občas a nepravidelně. Ta kniha fungovala asi 2 roku absolutně bet problémů. Asi se mazají jenom soubory .dat, tak bych měl otázku asi by šlo aby se to ukládalo do souboru s jinou příponou - třeba by to pomohlo.
Asi to pomůže, můžu posta zdrojáky tý knihy.
Tak zase mi zmizeli příspěvky na www.kabat.aktualne.cz a na www.skwor.aktualne.cz, sice tam Flock nemám, ale přesně ta samá kecárna je na www.skwor.cz a ani jednou se jim nevymazala....to je v p..., já si snad budu muset na stránky dát kecárnu od BlueBoardu....ach jo, nepomůže mi někdo?
Vážení, mám souběžně stránky na wz a na kgb. Naprosto identické, na kgb není jediný problém se smazaným souborem. Já nevím, o čem se tu bavíme. Fakt si myslíte, že je chyba v nás? Schválně to zkuste, založte si konto a pak o tom diskutujme... Myslím to dobře, je to třeba vyzkoušet a pak si nechat nadávat, že jsme trubci a nepoužíváme flock(), v tom to vůbec není, žádný flock na vymazání dat ze souborů *.dat, *.cgi a *.txt na wz nemá vliv...
taky se mi už poněkolikáté vymazala historie z fora!
a určitě to není špatným skriptem.
Při zápisu posledního příspěvku hláška o nedostupnosti serveru a při opětovném načtení stránky veškerá historie v ... řiti, soubor book.dat místo svých 40kb měl čistou nulu!
tohle není normální - jo, počítám to, stalo se mi to potřetí během cca půl roku.
přecházím s forem na jinej web
Podobný problém zapisy.txt z guestbooku jsou všechny pryč... Už podruhé.... Nevím co dělat...
No já bych chtěl ještě podotknout, že se mi to maže čím dál tím častěji. Za poslední asi 4 dny 3X smazání :o(:::....
<HTML><b>pouziti flock() pri zapisu...
k cemu to?
pokud vznikne vice pozadavku naraz, soubor se i vicekrat otevre, proto se pak data pri zapisu krizi / nuluji ....
</b>


docela mi uz dochazi trpelivost takze naposledy, v klidu a i pro ty co to nechapou (nebo snad nechteji pochopit)...
- nezalezi na hosingu
- nezalezi na uctu
- nezalezi na case

Dokaze alespon nekdo ze zde pritomnych pochopit ze kdyz vznikne 2x ve stejnou chvili dany pozadavek data v souboru se proste poserou protoze nejsou uzamceny?
Je to proste o nahode a kdyz nejste schopni zamyslet se nad tim co tu celou dobu rikam tak mezi php tagy uz radeji nikdy nic nepiste nema to smysl</HTML>
Taky v klidu... dokážete pochopit, že flock() používám, žádný požadavek více účastníků v tu dobu nebyl... NEJSE SÁM jak koukám komu se to stávalo... Já už o tom taky nechci debatovat, ale taky ze sebe nechci dělat vola...

Přeji všem mnoho úspěchů a ať to všem chodí na wz jak má...
<HTML>pak je zde ovsem otazka scriptu.. nekteri vubec nevedi ze flag "w" ve fopen() soubor vzdy nuluje</HTML>
pššš, ... něco se děje na strojích, začal se mi psát anglický datum místo lokalizovaného, nic, překopnul jsem to na replace a způsobně čekám, aby měli klid na práci a chodilo to jako dříve.
Já bych radil přejít na fbi.cz nebo kgb.cz. Je to teprve sice malý, ovšem hodně prostoru <i>za málo peněz</i> :-)
A jaktože se mi to stane přesně ve stejnej den na obou www stránkách a za měsíc zase na obou stránkách ve stejnej den a jaktože např. na www.skwor.cz je úplně stejná kecárna a ani jednou se to nestalo?
A nebylo by nejjednodušší sem dát odkaz na soubory nějaké knihy návštěv, která bude stoprocentně fugnovat ?
Tenhle kód neřeší několik problémů, mezi nimi ten hlavní, kvůli kterému dle mého názoru problémy vznikají - přerušení skriptu uživatelem. Příčina vymazání souborů je podle mě prozaická - uživatel odešle data a díky šílené pomalosti serveru v některých obdobích čeká a čeká... Po chvilce ho to přestane bavit a stopne načítání, čímž ukončí pomalu se vykonávající skript zrovna mezi fopen(soubor, 'w') a fwrite()...

Dál se pak neřeší jak zapsat data pokuď je soubor zrovna zamčený (dokonce se snaží tam ty data "narvat")

No a do třetice je třeba upozornit, že takto nelze zámek aplikovat na soubory, který se otevírají fopen(soubor, 'w'), tzn soubory, který se kompletně přepisujou (což je třeba u různejch počítadel častej případ), protože flock potřebuje file descriptor a ten vzniká až když je už soubor seříznut na 0... Co s tim?


$fp = fopen($soubor, 'r+'); // otevření souboru
ignore_user_abort(1); // ignorujeme ukončení skriptu uživatelem

for($i=0; $i<10; $i++) { // deset pokusů na zápis po 100us
if (flock($fp, LOCK_EX)) { // nastavení zámku
ftruncate($fp, 0); // nahrazuje fopen(soubor, 'w')
fwrite($fp, $data);
flock($fp, LOCK_UN); // uvolneni zamku
break;
}
usleep(100); // pockej chvili a zkus to znovu
}

fclose($fp);
ignore_user_abort(0); // povoleni preruseni uzivatelem


Snad to někomu pomůže
Autor: Martin Tůma, Tenhle kód neřeší.....

Je ale třeba předem načíst původní obsah datového soboru, a ten pak zařadit při zápisu za obsah proměnné $data, že? Protože v této podobě mi to datový soubor přepisuje - vymaže předtím zapsané příspěvky.
Samozřejmě. Uvedenej kus kódu řeší jenom zápis.