Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za červen (YouTube).
Libreboot (Wikipedie) – svobodný firmware nahrazující proprietární BIOSy, distribuce Corebootu s pravidly pro proprietární bloby – byl vydán ve verzi 25.06 "Luminous Lemon". Přidána byla podpora desek Acer Q45T-AM a Dell Precision T1700 SFF a MT. Současně byl ve verzi 25.06 "Onerous Olive" vydán také Canoeboot, tj. fork Librebootu s ještě přísnějšími pravidly.
Licence GNU GPLv3 o víkendu oslavila 18 let. Oficiálně vyšla 29. června 2007. Při té příležitosti Richard E. Fontana a Bradley M. Kuhn restartovali, oživili a znovu spustili projekt Copyleft-Next s cílem prodiskutovat a navrhnout novou licenci.
Svobodný nemocniční informační systém GNU Health Hospital Information System (HIS) (Wikipedie) byl vydán ve verzi 5.0 (Mastodon).
Open source mapová a navigační aplikace OsmAnd (OpenStreetMap Automated Navigation Directions, Wikipedie, GitHub) oslavila 15 let.
Vývojář Spytihněv, autor počítačové hry Hrot (Wikipedie, ProtonDB), pracuje na nové hře Brno Transit. Jedná se o příběhový psychologický horor o strojvedoucím v zácviku, uvězněném v nejzatuchlejším metru východně od všeho, na čem záleží. Vydání je plánováno na čtvrté čtvrtletí letošního roku.
V uplynulých dnech byla v depu Českých drah v Brně-Maloměřicích úspěšně dokončena zástavba speciální antény satelitního internetu Starlink od společnosti SpaceX do jednotky InterPanter 660 004 Českých drah. Zástavbu provedla Škoda Group. Cestující se s InterPanterem, vybaveným vysokorychlostním satelitním internetem, setkají například na linkách Svitava Brno – Česká Třebová – Praha nebo Moravan Brno – Břeclav – Přerov – Olomouc.
Byla vydána nová verze 8.7.0 správce sbírky fotografií digiKam (Wikipedie). Přehled novinek i s náhledy v oficiálním oznámení (NEWS). Nejnovější digiKam je ke stažení také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.
Před 30 lety, k 1. 7. 1995, byl v ČR liberalizován Internet - tehdejší Eurotel přišel o svou exkluzivitu a mohli začít vznikat první komerční poskytovatelé přístupu k Internetu [𝕏].
Byla vydána (𝕏) nová verze 7.4 open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.
isset($_REQUEST['submit_name'])
?
Ad 2. Místo typu checkboxu použijte typ radiobutton se stejnou hodnotou atributu name a různou hodnotou atributu value. Nevyplnění testuje přes empty($_REQUEST['radio_name'])
.
Ad 3. Netuším, co přesně myslíte. Každopádně při jakémkoliv zápisu do souboru pozor na race-conditions.
Takhle ošklivý kód v PHP jsem už dlouho neviděl. Již chápu, proč si někteří o programátorech v PHP myslí nepěkné věci. Přitom v PHP se dá programovat čistě a objektově, na straně databáze si vytvořit ORM a v prezenční vrstvě využívat XML spolu s DOM a XSL.
Sám používám pro zpracování formulářů v PHP vlastní (zatím nedokončenou) třídu, která se velmi inspirovala syntaxí XForms. Vytvoření formuláře včetně kontroly vstupních dat je pak záležitost editace jednoho XML souboru.
<?php echo '<br />'?> <b>Kontakt:</b> <?php echo '<br />'>by stacilo
<br /> <b>Kontakt:</b> <br />a este takovej trik kterej sem taky nedavno objevil:
I have <?=$foo?> foo.
== I have <? echo $foo?> foo.
viz man echo
Obcas se to hodi.. neco zprehledni...
Já bych hlavně předeslal, že při používání souboru jakožto "emulace databáze" je potřeba si uvědomit, že za jistých okolností dojde k paralelnímu zápisu od několika zapisujících a je třeba to v PHP řešit.Coz je velmi problematicke, pokud se to ma udelat prenositelne. Osobne jsem to resil jen jednou - u celkem jednoduche ankety. V ostatnich pripadech jsem problem vysvetlil problem zakaznikovy a ten si vzdy radeji priplatil za databazi. A v tom prvnim pripade jsem vyuzil toho, ze operace prejmenovani souboru je na unixech atomicka, takze nemuze dojit k tomu, aby soubor zustal v nejakem nedefinovanem stavu. Jedine jednoduche reseni je ukladat data ko samostatnych souboru, pak staci zajistit jen unikatni jmeno. Nebo je mozne nechat osetreni paralelniho zapisu na necem jinem, napr. poslat vyslednky na lokalni mailovou schranku.
flock() je IMHO dost přenositelné řešení. (Kdo provozuje server s FAT souborovym systémem nic jinýho než ztrátu dat stejně nemůže očekávat a NFS u webserverů taky neni zrovna obvyklé řešení...)
Neexistuje žádná bezpečná a neproblematická cesta pro paralelní práci se soubory pomocí PHP. Jediná neproblematická a plně přenositelná cesta je použití databáze.
To ano, ale pokuď už se se soubory pracuje, je to nejlepší z možných "špatných" řešení. Rozhodně mnohem lepší, než všechny ty zde navrhované "řešení". Já používám většinou něco takového:
$fp = fopen($soubor, 'a'); ignore_user_abort(1); for($i=0; $i<3; $i++) { if (flock($fp, LOCK_EX)) { fwrite($fp, $data); flock($fp, LOCK_UN); break; } usleep(100); } fclose($fp); ignore_user_abort(0);
O moc bezpečnější "univerzální" řešení v PHP nevymyslíte, tak proč vymejšlet ptákoviny...
error_log("Obsah, co se zapise do souboru", 3, "jmeno_souboru.pripona");Jak vidíte, v PHP jde leccos a je tam daleko více možností, škoda že za PHP tak málo platí, takže v PHP už moc nedělám. Jak vidíte, lepší a bezpečnější řešení v PHP vymyslím docela snadno
Jak vidíte, lepší a bezpečnější řešení v PHP vymyslím docela snadno
Já ale mluvím o "univerzálním" řešení, tedy takovém, kde můžu zapisovat od začátku souboru nebo v něm dokonce seekovat...
Celou dobu se tu snažím ukázat, že než tyhle "hacky", který fungují pouze ve speciálních případech a spoléhají na vlastosti funkcí, které nikde nejsou zdokumentovány (zdá se logické, že funkce pro zápis do logu by měla být "odolná" proti vícenásobnému současnému zápisu, ale je tomu skutečně tak?!) to radši "standartní" (PHP funkce sloužící právě k tomuto účelu) flock() i s jeho nedostatky. Protože o "vnitřnostech" PHP (na všech možných OS/souborových systémech!) a tudíž i atomičnosti operací víme ve skutečnosti kuloví (pokuď u snídaně běžně louskáte zdrojáky PHP tak se omlouvám... ).
A jaké nástroje jsou pro paralelní zápis do XML tak, aby byla zachována konzistence? Neútočím, jenom se ptám, byla by to príma.Priznam se, ze nevim. Na flat XML jsem stavel vzdy jen aplikace, u kterych jsem vedel, ze je prakticky nemozne, aby k takovemu scenari doslo. Coz priznavam -- je u guestbooku blbost. A i celkove je to dost divne, hlavne proto, ze by musel zamykat kvuli zapisu jednoho zaznamu cely soubor. Pri pouziti TXT ale moc techto problemu nevyresi. Nejlepsi asi bude precejen zvolit nejakou databazi, treba jen SQLite. Vzdyt nejakou tu relacni DB clovek dneska najde snad na kazdem hostingu. A i pak se to XSLT da pouzit (treba s Query2XML, celkem schopna knihovna).
Panebože ty jsi magor :D Takovouhle píčovinu jsem už dlouho nevyděl! Nejde ti to blbečku.
Tiskni
Sdílej: