Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno změna url podle článku

Jak se generuje adresa webu podle proměnné? Nikde není žádný příklad. Prostě abych si do mysql uložil "pokus" a při zadání mojeadresa.cz/pokus se stránka zobrazila. Když bych dal do mysql "hlína" tak po zadání mojeadresa.cz/hlina by se stránka zobrazila. Pod čím to hledat? Děkuji

Předmět Autor Datum
mysql nemá s webem nic společného, je to databáze. Tvůj dotaz je naprosto zmatený.
touchwood 22.10.2015 08:47
touchwood
Já vím že jo. Ale jak se teda generují adresy webů? Myslel jsem že po výpisu z tabulky by se to přev… nový
Golemmm 22.10.2015 08:50
Golemmm
Asi jsem to napsal blbě. Nevím pod čím hledat, abych měl jeden soubor třeba index.php a měnil se mi… nový
Golemmm 22.10.2015 08:53
Golemmm
A obsah toho php by si bral odkial? nový
fleg 22.10.2015 08:56
fleg
Byla by stránka index.php s hotovou stránkou (design). Z databáze mysql bych bral title a články. To… nový
Golemmm 22.10.2015 08:59
Golemmm
URL adresu vygeneruješ jednoducho - prečítaš z MySQL hodnotu "pokus" a pri generovaní URL adresy pre… nový
los 22.10.2015 09:18
los
a pri generovaní URL adresy pred ňu dáš základ adresy svojho webu To je právě to co nevím jak uděla… nový
Golemmm 22.10.2015 09:24
Golemmm
Proč když zadám za url ebu .php?id=hospoda tak se mi na stránku nevypíše nic,i když jsem k databázi… nový
Golemmm 22.10.2015 10:15
Golemmm
protože to v tom PHP nemáš zpracované? to id=hospoda je parametr, který PHP skript musí nějak zpraco… nový
touchwood 22.10.2015 10:40
touchwood
(nasledujici vyklad je lehce nepresny, ale chci jim tazatele nasmerovat a zorientovat - cili slouzi… poslední
gilhad 23.10.2015 20:32
gilhad

Byla by stránka index.php s hotovou stránkou (design). Z databáze mysql bych bral title a články. To by se v ní měnilo. To samozřejmě vím jak udělat, ale nevím jak udělat to aby byl jen jeden soubor php a měnila se adresa

URL adresu vygeneruješ jednoducho - prečítaš z MySQL hodnotu "pokus" a pri generovaní URL adresy pred ňu dáš základ adresy svojho webu.

Pri zobrazovaní sa musíš z adresy dostať späť k názvu - to znamená odstrániť základ adresy svojho webu, získať názov, pomocou neho prečítať z databázy obsah stránky a zobraziť.

Hľadaj to pod názvom pekné URI (cool URI), pre PHP konkrétne mod_rewrite.

U nás dávame pred názov príspevku (článku, správičky, otázky, ...) identifikátor, podľa ktorého vyberáme obsah z databázy. Má to výhody ako napr. že nemusíme vytvárať index nad textovým poľom, je to jednoznačné, môže sa zmeniť názov príspevku a URL adresa stále funguje.

(nasledujici vyklad je lehce nepresny, ale chci jim tazatele nasmerovat a zorientovat - cili slouzi spis pro povsechnou predstavu, nez pro primou implementaci vsech meziclanku)

Kdyz das do prohlizece pokus, tak prohlizec nejdriv vidi http:// a podle toho zvoli protokol, jakym bude komunikovat (cili to bude povazovat za webovou stranku a ne neco jineho) pak vidi mojeadresa.cz a potrebuje se tam nejak pripojit (cili ziskat IP adresu) - nejdriv si prohledne lokalni soubor hosts v prislusnem adresari a tam ji nenajde, tak se zepta neho chytrejsiho (DNS serveru), kde ze to jako je. Pokud to ten nevi z pameti (protoze stejny dotaz zodpovidal pred chvilkou a jeste nezapomenul odpoved) a nema to ve svych podrizenych adresach, tak se zepta sveho nadrizeneho DNS, ktery to postup zopakuje. Kdyz o tom nikdo nic nevi, tak to vyeskaluje az uplne nahoru, kde se aspon vi, kdo se stara o domenu .cz a tomu se to preda, ten zase vi, kdo se stara o domenu mojeadresa.cz a razem je jasno a odpoved se vraci do tveho pocitace a vsichni zucastneni ji znaji, vetsinou to ale nejde az tak vysoko a nekdo zna zkratku.

Nasledne se tvuj prohlizec obrati na dotycnou IP (a pripadne i port, pokud to bylo neco jako pokus - tak nejde o normalni port 80, ale o port 1234. Kdyby tam bylo https:// tak nejspis pujde o port 443 a zcela jiny (sifrovany) protokol), ze nekdo zada o stranku na adrese mojeadresa.cz a se jmenem /pokus

Na tom portu nejspis sedi webovy server (treba apache) a ten si projde svoji konfiguraci, co vi o webu mojeadresa.cz (kdyz ho vkonfiguraci nema, tak ti rekne ze smula) a jakym zpusobem zachazet s pozadavkem na cestu /pokus zrovna na tehle adrese (protoze tam muze tech adres mit mraky a kazda by to resila treba jinak). Kdyz jde vsechno0 dobre, tak z konfigurace zjisti, ze se o vsechny dotazy na mojeadresa.cz stara, rekneme, php skript ze souboru /home/golemmm/webik/index.php a tudiz ho spusti a (ruznym prislusnym zpusobem) mu preda veskere potrebne informace.

ten index.php si nejak nastavi promenne, usoudi, ze nekdo chce stranku /pokus, ze tam nedal zadne parametry za otaznik (jako treba .../pokus?otazka=2&odpoved=3), ze tam ani neposlal nic z formulare (a jine svoje testy, ktere ho zajimaji, nebo to naopak ignoruje a o nic se nestara), spoji se s databazi a tam nejakym zazrakem zjisti co ma zobrazit (treba je v databazi ulozen primo obsah te stranky, nebo jmeno souboru, ktery s tim neco umi, nebo cokoli jineho) a podle toho, co se dozvedel, da dohromady, jak ta stranka ma vypadat (na zacatku ma HEAD, pak BODY, v tom jsou nejake kecy a odkazy na obrazky tak dal a tak dal) a vysledek preda tomu webserveru jako odpoved, aby to odeslal tvemu prohlizeci a ten ti to nejak zobrazi.

Samozrejme, ze ten skript muze pouzit jakykoli jiny postup, treba rovnou najit na disku soubor se strankou a vratit jeho obsah, nebo si ten obsah nejak sam vymyslet (a treba zobrazit "Chacha, chtel jste stranku /pokus, ale tu nemam a tak mate smulu a dostanete jen tuhle hlasku", nebo poslat zpatky 1000x napsane "uz nikdy nebudu chtit zobrazit /pokus na mojeadrezsa.cz", nebo cokoli jineho)

-----

Pokud se do toho chces pustit, tak si:
- nekde najdi server, co te necha tohle delat a da ti tu adresu mojeadresa.cz (takovych jsou mraky, pokud uz tu adresu mas, nektere ti daji jen neco svojeho ve stylu golemmm.megaserver.cz, nektere ani to)
- na tom serveru nastav, nebo nech nastavit, aby veskere dotazy na libovolnou stranku nechal zpracovat jen ten jeden konkretni skript (nekde si to muzes udelat sam a googlit o nastaveni Apache a souborech v /etc/apache2/vhosts.d, jinde ti to musi udelat spravce toho systemu, nebo na to maji nejaky naklikator)
- musis nekde splasit ten skript, nejlepe ho sam napsat dle svych potreb - obecne hledej cokoli o programovani v PHP (ci jinem jazyku, ktery tam budes mit a chtit, muzes zkusit treba php ) a taky asi budes hledat o pouziti mysql v PHP a asi i o dalsich vecech ...

tady napriklad ma nekdo podobny dotaz a resi tam tu magii z bodu 2
http://stackoverflow.com/questions/1987743/php-ser ve-pages-without-php-files-in-file-structure

a vlastne i 3, protoze kdyz das

if ($_GET['page']=='pokus') { print "takhle stranka je POKUS"; }
elseif ($_GET['page']=='hlina') { print "to je fakt HLINA"; }
elseif ($_GET['page']=='kanarek') { print "tohle uz HLINA neni"; }
else { print "Takhle stranka tu neni"; }

nebo ty printy nahradis hledanim v te mysql, tak mas vse, co jsi chtel

Zpět do poradny Odpovědět na původní otázku Nahoru