Pěkná vícestupňová URL – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Pěkná vícestupňová URL – PHP – Fórum – Programujte.comPěkná vícestupňová URL – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
jurasek07
~ Anonymní uživatel
9 příspěvků
4. 1. 2011   #1
-
0
-

Prosím o pomoc s řešením.
Už jsem přišel na to, jak vytvořit jednoduchou pěknou url. Mám mám např. www.neco.cz/index.php?akce=page$&select=galerie a přes .htaccess to převedu na www.neco.cz/galerie (page je stránka s sql na DB).

Chtěl bych však vytvořit více stupňů.

odkazy by mohly vypadat např. takto
www.neco.cz/galerie (výcházím z www.neco.cz/index.php?akce=page$&select=galerie)
www.neco.cz/galerie/novinky
www.neco.cz/galerie/vystavy/leden
www.neco.cz/sluzby/sluzba1/detail

Nemohu však přijít na to, jak by měl takto více stupňový link vypadat (jde vycházet z tohoto ?? www.neco.cz/index.php?akce=page$&select=galerie) nebo úplně jinak
a potom, jak výsledně udělat zjednodušené odkazy

Ještě příklad, jak mám dělanou DB stránek
id,pod_id,nazev,text .....
1,0,galerie, ....
2,0,o-nas, ...
3,2,blizsi-informace, ...

druhé číslo určuje kategorii z prvního sloupce. např. 0.

Při pátrání na internetu jsem se dočetl, že by to šlo řešit rourováním, ale nevím jak. Nenašel jsem žádný jednoduchý příklad, vždy jen, jak se to řeší v nějakých aplikacích

Nahlásit jako SPAM
IP: 188.175.126.–
Reklama
Reklama
insider0
Věrný člen
5. 1. 2011   #2
-
0
-

routovani funguje tak, ze si vse, co je za lomitkem v adrese predas jako promennou do index.php, ve kterem ji pak zpracujes pomoci cehokoli. Po zadani adresy www.neco.cz/galerie/vystavy/leden se ti do index.php dostane pod $page cely ten retezec, takze galerie/vystavy/leden. O tenhle retezec se pak stara nejaka funkce, ktere si rika router. Muzes si to napr rozdelit pomoci explode podle lomitka a pak zpracovavat casti, jak potrebujes.

Nahlásit jako SPAM
IP: 147.32.96.–
I don't want to see you go,[br] The sky is over[br] Even though we can't afford[br] The sky is over,[br] The sky is over us.[br][br] CIVILIZATION IS OVER
marioff0
Expert
5. 1. 2011   #3
-
0
-

tak tak, vsetko co je priecinok posun na spracovanie napr. root/index.php (pomocou htaccess)
v nom pomocou explode rozsekaj $_SERVER['REQUEST_URI'] na pole... a mozes tych "stupnov" mat aj milionpatsto...

Nahlásit jako SPAM
IP: 195.78.44.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
jurasek07
~ Anonymní uživatel
9 příspěvků
5. 1. 2011   #4
-
0
-

jestli to chápu dobře, tak ať mám jakýkoliv stupeň, tak volám podobný link, který se předtím rozloží?

příklad:
www.neco.cz/galerie
www.neco.cz/galerie/zima
www.neco.cz/galerie/zima/novinky
www.neco.cz/galerie/zima/novinky/detail_1

tak se to nějak přes router rozloží a volá to link:

www.neco.cz/index.php?akce=page$&select=galerie
www.neco.cz/index.php?akce=page$&select=zima
www.neco.cz/index.php?akce=page$&select=novinky
www.neco.cz/index.php?akce=page$&select=detail_1

nebo je to jinak?

prosím případně o nějakou ukázku, jak je to správně.

Nahlásit jako SPAM
IP: 188.175.126.–
KIIV+42
God of flame
6. 1. 2011   #5
-
0
-

je to jinak..

kdyz se to udela takto: server/index.php/param1/param2/param3 tak dostanes ve scriptu dalsi serverovou promennou tusim neco jako $_SERVER['PATH_INFO'] kde je '/param2/param2/param3'

samozrejme se to da pomoci mod rewrite predelat tak, aby se nemuselo davat index.php

Nahlásit jako SPAM
IP: 94.142.234.–
Program vždy dělá to co naprogramujete, ne to co chcete...
insider0
Věrný člen
6. 1. 2011   #6
-
0
-

jurasek07 napsal:
jestli to chápu dobře, tak ať mám jakýkoliv stupeň, tak volám podobný link, který se předtím rozloží?

příklad:
www.neco.cz/galerie
www.neco.cz/galerie/zima
www.neco.cz/galerie/zima/novinky
www.neco.cz/galerie/zima/novinky/detail_1

tak se to nějak přes router rozloží a volá to link:

www.neco.cz/index.php?akce=page$&select=galerie
www.neco.cz/index.php?akce=page$&select=zima
www.neco.cz/index.php?akce=page$&select=novinky
www.neco.cz/index.php?akce=page$&select=detail_1

nebo je to jinak?

prosím případně o nějakou ukázku, jak je to správně.


ne tak uplne, kazda z tech adres se ti prelozi na index.php, kde se pomoci serverove promenne $_SERVER['REQUEST_URI'] dostanes k cele te adrese - /galerie/zima/novinky/detail_1
s tim si pak muzes vyhrat, jak potrebujes

Nahlásit jako SPAM
IP: 217.11.224.–
I don't want to see you go,[br] The sky is over[br] Even though we can't afford[br] The sky is over,[br] The sky is over us.[br][br] CIVILIZATION IS OVER
marioff0
Expert
6. 1. 2011   #7
-
0
-

prosím případně o nějakou ukázku, jak je to správně.



.htaccess (ten regulerny vyraz mozes mat iny, ak si ho zvladnes napisat, ja pouzivam v adresach vzdy len znaky a-z 0-9 a bodku _ -. a zaroven to vzdy musi byt adresar, cize musi koncit lomkou)

RewriteEngine on 

RewriteBase /

RewriteCond %{REQUEST_URI} ^([\_a-zA-Z0-9\-\/\.]*)/$
RewriteRule ^([\_a-zA-Z0-9\-\/\.]*)/$ index.php


a samotny router na zaciatku suboru index.php

$router=explode('/',$_SERVER['REQUEST_URI']);

// prvy prvok je vzdy prazdny
unset($router[0]);
// v mojom pripade musi byt na konci adresy lomka, cize posledny prvok pola bude tiez prazdny (resp. bude obsahovat GET premenne)
if (($posledny_prvok=count($router))>=1) { unset($router[$posledny_prvok]); }

print_r($router);

Nahlásit jako SPAM
IP: 195.78.44.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
insider0
Věrný člen
6. 1. 2011   #8
-
0
-

// prvy prvok je vzdy prazdny

unset($router[0]);

// v mojom pripade musi byt na konci adresy lomka, cize posledny prvok pola bude tiez prazdny (resp. bude obsahovat GET premenne)
if (($posledny_prvok=count($router))>=1) { unset($router[$posledny_prvok]); }

tohle by se dalo zkratit pomoci
$router=trim($_SERVER['REQUEST_URI'],'/');

coz odstrani lomitka na zacatku a na konci

Nahlásit jako SPAM
IP: 217.11.224.–
I don't want to see you go,[br] The sky is over[br] Even though we can't afford[br] The sky is over,[br] The sky is over us.[br][br] CIVILIZATION IS OVER
marioff0
Expert
6. 1. 2011   #9
-
0
-

To insider : zabudol si na pripadne GET premenne!... ja to vsak riesim reg. vyrazom ktory skontroluje dodatocne validnost adresy + odstrani lomky avsetko nepotrebne... uvedeny priklad som pisal z hlavy ako ukazku...

Nahlásit jako SPAM
IP: 195.78.44.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
gman
~ Anonymní uživatel
9 příspěvků
6. 1. 2011   #10
-
0
-

mozes si pozret cely zdrojak na http://codefreax.org/projects/view/cubework/tab/resources#pMenu a routovanie je v subore Router.php

ako uz predo mnou hovorili, da sa to spravit tak ze .htaccess (mod_rewrite) smeruje vsetky poziadavnky na index.php. Potom riadenie prevezme Lib_Router ktory vybere argumenty z url atd atd

Nahlásit jako SPAM
IP: 178.40.95.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 25 hostů

Podobná vlákna

čtení url/braní dat z url — založil tribalcz

Pekna baba — založil chlapec881

URL — založil RePRO

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý