{"id":32363,"date":"2026-07-06T09:22:29","date_gmt":"2026-07-06T09:22:29","guid":{"rendered":"https:\/\/extraslovensko.sk\/spravy\/?p=32363"},"modified":"2026-07-07T10:25:51","modified_gmt":"2026-07-07T10:25:51","slug":"web-bez-databazy-ako-postavit-superrychlu-php-aplikaciu","status":"publish","type":"post","link":"https:\/\/extraslovensko.sk\/spravy\/web-bez-databazy-ako-postavit-superrychlu-php-aplikaciu\/","title":{"rendered":"Web bez datab\u00e1zy: Ako postavi\u0165 superr\u00fdchlu PHP aplik\u00e1ciu"},"content":{"rendered":"<h1>Web bez datab\u00e1zy<br \/>Ako postavi\u0165 superr\u00fdchlu PHP aplik\u00e1ciu poh\u00e1\u0148an\u00fa JSON s\u00fabormi<\/h1>\n<p>Ako postavi\u0165 superr\u00fdchlu PHP aplik\u00e1ciu pre webstr\u00e1nky. Ke\u010f sa povie dynamick\u00fd web, v\u00e4\u010d\u0161ine v\u00fdvoj\u00e1rov okam\u017eite napadne klasick\u00e1 kombin\u00e1cia PHP a MySQL. Ruku na srdce \u2013 naozaj potrebuje mal\u00e1 firemn\u00e1 vizitka, osobn\u00fd blog, portf\u00f3lio alebo jednoduch\u00fd katal\u00f3g produktov robustn\u00fd datab\u00e1zov\u00fd engine? Vo ve\u013ea pr\u00edpadoch je odpove\u010f z\u00e1porn\u00e1.<\/p>\n<p>Pre men\u0161ie projekty je behanie okolo MySQL, rie\u0161enie SQL injekci\u00ed a neust\u00e1le z\u00e1lohovanie datab\u00e1zov\u00fdch tabuliek ako \u00eds\u0165 na kom\u00e1ra s brokovnicou. Existuje elegantn\u00e1, bleskur\u00fdchla a na \u00fadr\u017ebu nen\u00e1ro\u010dn\u00e1 alternat\u00edva: ukladanie d\u00e1t priamo do JSON s\u00faborov. Tento pr\u00edstup je ide\u00e1lny pre za\u010diato\u010dn\u00edkov. Pon\u00faka okam\u017eit\u00fa prenosnos\u0165 webu, nulov\u00e9 n\u00e1roky na datab\u00e1zov\u00fd server a neuverite\u013en\u00fa r\u00fdchlos\u0165. <\/p>\n<p>V tomto sprievodcovi sa pozrieme na to, ako tak\u00fdto syst\u00e9m postavi\u0165 pomocou PHP, ako nakonfigurova\u0165 server a pre\u010do v\u00e1m s \u00fadr\u017ebou d\u00e1t m\u00f4\u017ee pom\u00f4c\u0165 aj Python. Pre\u010do vymeni\u0165 MySQL za oby\u010dajn\u00fd JSON?<\/p>\n<h2>Pre\u010do vymeni\u0165 MySQL za oby\u010dajn\u00fd JSON?<\/h2>\n<p>JSON (JavaScript Object Notation) je \u013eudsky \u010ditate\u013en\u00fd form\u00e1t na v\u00fdmenu d\u00e1t. Pre PHP je pr\u00e1ca s n\u00edm \u00faplne prirodzen\u00e1. Ak sa zbav\u00edte z\u00e1vislosti od datab\u00e1zy, z\u00edskate tri z\u00e1sadn\u00e9 v\u00fdhody: Absol\u00fatna prenosnos\u0165: Cel\u00fd v\u00e1\u0161 web, vr\u00e1tane kompletnej \u201edatab\u00e1zy\u201c (JSON s\u00faborov), \u017eije v jednom jedinom prie\u010dinku. <\/p>\n<p>Presun na in\u00fd hosting alebo VPS znamen\u00e1 iba skop\u00edrovanie s\u00faborov cez FTP. \u017diadne exportovanie a importovanie .sql s\u00faborov. N\u00edzke hardv\u00e9rov\u00e9 n\u00e1roky: MySQL vie by\u0165 poriadny \u017er\u00fat opera\u010dnej pam\u00e4te (RAM). <\/p>\n<p>Ak prev\u00e1dzkujete lacn\u00e9 VPS, vypnut\u00edm datab\u00e1zov\u00e9ho servera uvo\u013en\u00edte obrovsk\u00e9 mno\u017estvo syst\u00e9mov\u00fdch prostriedkov pre samotn\u00fd webov\u00fd server. Jednoduch\u00e9 z\u00e1lohovanie a verziovanie: Ke\u010f\u017ee s\u00fa d\u00e1ta ulo\u017een\u00e9 v textov\u00fdch s\u00faboroch, m\u00f4\u017eete cel\u00fd web vr\u00e1tane obsahu z\u00e1lohova\u0165 pomocou syst\u00e9mu Git. Ka\u017ed\u00e1 zmena v texte tak m\u00e1 svoju hist\u00f3riu.<\/p>\n<h2>Architekt\u00fara aplik\u00e1cie a bezpe\u010dnos\u0165 na VPS<\/h2>\n<p>Predt\u00fdm, ne\u017e nap\u00ed\u0161eme prv\u00fd riadok k\u00f3du, si mus\u00edme ujasni\u0165 bezpe\u010dnos\u0165. Pri pou\u017e\u00edvan\u00ed s\u00faborov namiesto SQL datab\u00e1zy vznik\u00e1 jedno ve\u013ek\u00e9 riziko: ak niekto zist\u00ed cestu k v\u00e1\u0161mu JSON s\u00faboru, m\u00f4\u017ee si ho stiahnu\u0165 priamo cez prehliada\u010d. <\/p>\n<p>Ak by ste tam mali citliv\u00e9 d\u00e1ta, m\u00e1te probl\u00e9m. Spr\u00e1vna \u0161trukt\u00fara adres\u00e1rov. Najlep\u0161\u00edm rie\u0161en\u00edm je umiestni\u0165 prie\u010dinok s d\u00e1tami mimo verejn\u00e9ho adres\u00e1ra webu (mimo public_html alebo www).<\/p>\n<p>Predstavte si t\u00fato \u0161trukt\u00faru na va\u0161om Ubuntu servery:<\/p>\n<p>\/var\/www\/mojweb\/<\/p>\n<p>\u251c\u2500\u2500 data\/<br \/>\n\u2502   \u2514\u2500\u2500 produkty.json     <-- SEM PREHLIADA\u010c NEVID\u00cd<br \/>\n\u2514\u2500\u2500 public_html\/<br \/>\n    \u251c\u2500\u2500 .htaccess<br \/>\n    \u2514\u2500\u2500 index.php         <-- JEDIN\u00dd VEREJN\u00dd ADRES\u00c1R\n\n\n\n\n\n<h2>Ochrana pomocou Apache (.htaccess a mod_rewrite)<\/h2>\n<p>Ak z nejak\u00e9ho d\u00f4vodu mus\u00edte ma\u0165 JSON v rovnakom prie\u010dinku ako web, mus\u00edte zak\u00e1za\u0165 pr\u00edstup k nemu pomocou pravidiel v s\u00fabore .htaccess. Uistite sa, \u017ee m\u00e1te na VPS povolen\u00fd modul mod_rewrite. Do .htaccess pridajte toto pravidlo, ktor\u00e9 zablokuje ak\u00fdko\u013evek priamy pokus o stiahnutie .json s\u00faborov:<\/p>\n<p>RewriteEngine On<br \/>\n<Files \"*.json\"><br \/>\n    Order Deny,Allow<br \/>\n    Deny from all<br \/>\n<\/Files><\/p>\n<h2>PHP v akcii: \u010c\u00edtanie a z\u00e1pis JSON d\u00e1t<\/h2>\n<p>Po\u010fme si vytvori\u0165 n\u00e1\u0161 d\u00e1tov\u00fd model. Predstavme si, \u017ee rob\u00edme jednoduch\u00fd katal\u00f3g produktov. N\u00e1\u0161 s\u00fabor produkty.json bude vyzera\u0165 nasledovne:<\/p>\n<p>[<br \/>\n    {<br \/>\n        &#8220;id&#8221;: 1,<br \/>\n        &#8220;nazov&#8221;: &#8220;V\u00fdkonn\u00fd Windows VPS&#8221;,<br \/>\n        &#8220;cena&#8221;: 12.90,<br \/>\n        &#8220;dostupne&#8221;: true<br \/>\n    },<br \/>\n    {<br \/>\n        &#8220;id&#8221;: 2,<br \/>\n        &#8220;nazov&#8221;: &#8220;Ubuntu Linux Server&#8221;,<br \/>\n        &#8220;cena&#8221;: 8.50,<br \/>\n        &#8220;dostupne&#8221;: true<br \/>\n    }<br \/>\n]<\/p>\n<h2>Na\u010d\u00edtanie a zobrazenie d\u00e1t (\u010c\u00edtanie)<\/h2>\n<p>V PHP pou\u017eijeme dve k\u013e\u00fa\u010dov\u00e9 funkcie: file_get_contents() na na\u010d\u00edtanie textu zo s\u00faboru a json_decode() na jeho premenu na nat\u00edvne PHP pole, s ktor\u00fdm m\u00f4\u017eeme pracova\u0165. <\/p>\n<p>U\u017e si to len na\u0161tudova\u0165 niekde z n\u00e1vodov JSON a php .. a sk\u00fa\u0161a\u0165 na PC pod programom MAMP kv\u00f4li spusteniu php.  Nesk\u00f4r objav\u00edte schopnosti Python .py na PC, OpenAI API a m\u00f4\u017ete za\u010da\u0165 chrli\u0165 masovo weby. <\/p>\n<p>Klamstv\u00e1 Smer\u00e1kov a Koal\u00edcie cez m\u00e9dia v\u00e1s prestan\u00fa zauj\u00edma\u0165 zato ru\u010d\u00edm :))<br \/>\nV\u0161etky n\u00e1vody z\u00edskate aj z ChatGTP, Groku, ako ja!!<\/p>\n<p><strong>Nezabudnite na vrch .htaccess nap\u00edsa\u0165 <\/strong><br \/>\nFiles &#8220;*.json&#8221;<br \/>\n    Require all denied<br \/>\n\/Files><\/strong><\/p>\n<p>Ale ked niekto chce va\u0161u str\u00e1nku skop\u00edrova\u0165, tak si urobi aj tak Save As v browseri:)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Web bez datab\u00e1zyAko postavi\u0165 superr\u00fdchlu PHP aplik\u00e1ciu poh\u00e1\u0148an\u00fa JSON s\u00fabormi Ako postavi\u0165 superr\u00fdchlu PHP aplik\u00e1ciu pre webstr\u00e1nky. Ke\u010f sa povie dynamick\u00fd web, v\u00e4\u010d\u0161ine v\u00fdvoj\u00e1rov okam\u017eite napadne klasick\u00e1 kombin\u00e1cia PHP a MySQL. Ruku na srdce \u2013 naozaj potrebuje mal\u00e1 firemn\u00e1 vizitka, osobn\u00fd blog, portf\u00f3lio alebo jednoduch\u00fd katal\u00f3g produktov robustn\u00fd datab\u00e1zov\u00fd engine? Vo ve\u013ea pr\u00edpadoch je odpove\u010f [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-32363","post","type-post","status-publish","format-standard","hentry","category-exo-news"],"_links":{"self":[{"href":"https:\/\/extraslovensko.sk\/spravy\/wp-json\/wp\/v2\/posts\/32363","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/extraslovensko.sk\/spravy\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/extraslovensko.sk\/spravy\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/extraslovensko.sk\/spravy\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/extraslovensko.sk\/spravy\/wp-json\/wp\/v2\/comments?post=32363"}],"version-history":[{"count":25,"href":"https:\/\/extraslovensko.sk\/spravy\/wp-json\/wp\/v2\/posts\/32363\/revisions"}],"predecessor-version":[{"id":32447,"href":"https:\/\/extraslovensko.sk\/spravy\/wp-json\/wp\/v2\/posts\/32363\/revisions\/32447"}],"wp:attachment":[{"href":"https:\/\/extraslovensko.sk\/spravy\/wp-json\/wp\/v2\/media?parent=32363"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/extraslovensko.sk\/spravy\/wp-json\/wp\/v2\/categories?post=32363"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/extraslovensko.sk\/spravy\/wp-json\/wp\/v2\/tags?post=32363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}