Autor Zpráva
RuThaN
Profil
Chtěl by se zeptat při to, že do souboru můžou najednou zapisovat dva uživatelé součastně, např při registraci do e-shopu, nemůžu způsobit problém, že se třeba něco přepíše, posune a nebo, neuloží??
A nebo jestli jestli bojim zbytečně a je to nějak ošetřeno..
DoubleThink
Profil *
Obava je zcela na místě - alespoň podle mých zkušeností. Hlavně při práci PHP se souborem je to dost ošemetná věc. Dost často je server nastaven tak, aby spouštěl zapisovací sekvence paralelně a takto lze klidně přijít o celý obsah souboru.

U e-shopu bych se toho tak nebál - teda za předpokladu, že se ti tam neregistruje 10 lidí/s

Obecně se doporučuje soubor otevřený pro zápis zamknout.

$save = fopen($file, "w");
flock($save, LOCK_EX); // uzamčení
fwrite($save, $neco);
flock($save, LOCK_UN); // odemčení
fclose($save);

Podrobnější info o funkci flock(): http://cz.php.net/manual/en/function.flock.php
Leo
Profil
A jeste lepsi je pouzivat databaze, Leo
DoubleThink
Profil *
Ne na všechno se databáze hodí - ale souhlasím, že pro registraci (nebo obecně zápis většího množství tabulkových hodnot) je to výhodnější.
Leo
Profil
No e-shop bez databaze - potes koste :-) A resi se automaticky i rada potizi s pristupem, Leo
RuThaN
Profil
Dík moc za info.. Slyšim slovo databáze.. Tak moc osypky a ty funkce filesystému jsou skoro jako v céčku, takže se v tom vyznám.. Vim, že mě to asi nemine, ale teď bych se bez toho rád ještě obešel..
Ošetřil sem to aspoň tak že si každej tejden bude dělat záložní kopie tý databáze..
thingwath
Profil
PHP v tomhle prostě jenom obaluje standardní C knihovnu, tak se nelze divit :-) Databáze je na programování jednodušší věc, říkám to furt.
juneau
Profil
jenze clovek, ktery s databazi nikdy nedelal, ti to neuveri :) to teprve potom nastoupi taky na tu nasi sql barku :)
RuThaN
Profil
No já měl pěknej úvod to datází Mrkvosoftí Fox pro, to mi je tak nádherně znechutilo, že zatim no more.. vim, že sql se určitě naprosto úžasná ale učit se zase nový věci..
Já webový stránky, jen protože musit, nějak na tom neulítávám, nutný zlo..
Toto téma je uzamčeno. Odpověď nelze zaslat.