[ Príspevkov: 26 ] 
AutorSpráva
Offline

Skúsený užívateľ
Skúsený užívateľ
Explorer

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14691
Témy: 66 | 66
Bydlisko: Žilina
Vek: 30
NapísalOffline : 22.05.2008 9:55 | Explorer

Zdravicko, takze...
po dlhsom hladani sa mi zatial nepodarilo najst uspokojivu odpoved, tak mozno tu sa niekto najde. Pisem klasicku funkciu pre zobrazovanie adresarov v php.. Vsetko je fajn, funguje mi to aj pred podadresare donekonecna, mam vsak taky problem, ze ked uz sa teda preklikam do napr nakej tretej urovne, a chcem ist teda o uroven spat, tak neviem ako na to. Istym riesenim sa ukazalo pouzit toto :
Kód:
<a href="javascript:history.go(-1)"><img src="../../images/upfolder.gif"></a>

avsak robi to mensie problemy, kedze prehliadanie adresarov nie je jedina vec, ktoru s nimi chcem robit. mam napriklad dalsie funkcie pre editovanie suborov, pridavanie adresarov a podobne, kedy, pochopitelne, spravi tento javascriptovy prikaz minimalne otravne viacnasobne klikanie a az potom logicky vykona co chcem.
Ked som dal zobrazovat "." a "..", a skusil pouzit, dokazal som sa pomocou tohto skriptu dostat az do windowsovej zlozky, a to si myslim nepraje ziaden programator, aby sa mu uzivatel dostal do adresarovej struktury mimo vyhradeny priestor :lol:
Kto by mi vedel poradit ako to urobit? Vopred diky...


_________________
C#, PHP, ...
Offline

Správca fóra
Správca fóra
Explorer

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 22.05.2008 11:36 | Explorer

nechapem, co s tym ma history.go a vobec preco si to pouzil, je mi velkou zahadou... sak ked pridem rovno do nejakeho podadresara a chcem sa dostat o uroven vyssie, tak ti to nepojde...

v php mas funkcie na pracu s adresarmi, cize aj na zmenu aktualneho pracovneho adresara, staci ich vhodne pouzit a skombinovat... co sa tyka prechadzania celej adresarovej struktury pouzivatelom, tak to staci obmedzit na rodicovsky adresar, ku ktoremu ma pristup a v ramci ktoreho sa moze pohybovat... alebo proste len zakazes adresare, ku ktorym sa nema dostat...


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Skúsený užívateľ
Skúsený užívateľ
Explorer

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14691
Témy: 66 | 66
Bydlisko: Žilina
Vek: 30
Napísal autor témyOffline : 22.05.2008 11:56 | Explorer

stenley píše:
nechapem, co s tym ma history.go a vobec preco si to pouzil, je mi velkou zahadou... sak ked pridem rovno do nejakeho podadresara a chcem sa dostat o uroven vyssie, tak ti to nepojde...

v php mas funkcie na pracu s adresarmi, cize aj na zmenu aktualneho pracovneho adresara, staci ich vhodne pouzit a skombinovat... co sa tyka prechadzania celej adresarovej struktury pouzivatelom, tak to staci obmedzit na rodicovsky adresar, ku ktoremu ma pristup a v ramci ktoreho sa moze pohybovat... alebo proste len zakazes adresare, ku ktorym sa nema dostat...

tak to by si sa asi moc cudoval, ale ono ten kod funguje :lol: mam to spravene tak, ze to funguje...
ano, su tam nake tie funkcie, ale nak sa neviem vysomarit, ako sa pohybovat o uroven spat. viem ze je to blbo riesene :(
ked som chcel dal prec
Kód:
if ($object != "." && $object != "..")

, tak sa samozrejme dalo pohodlne presuvat, ale z url mi to robilo asi nieco taketo :
Kód:
/admin.php?p=subory&dir=Metodicke_pokyny/./../Metodicke_pokyny/././.

seriem sa s tym uz prilis dlho a dochadzaju mi napady. najviac ma stve, ze aj ked si dokazem zobrazit pomocou readdiru obsah vsetkych adresarov a suborov a nasledne o tom vybrat podrobnosti z mysql, tak neviem ako robit zoradenie vypisu podla vybraneho stlpca, z pochopitelneho dovodu.
najskor by bolo asi fajn pozriet do mysql, nasledne porovnat s vypisom readdiru a postupne to vypisovat do tabulky, avsak tu mi kod opat zlyhava a mam chut dat shift+del na cely 300riadkovy subor...dakde na nete som nasiel radu strcit ziskane udaje z readdiru do pola, to sortovat a nasledne si s tym uz robit co sa mi zapaci, avsak neprisiel som zatial na to, ako sortovat pole podla vybraneho stlpca z mysql... :(



a ANO, viem ze vsetko robim obklukami a mozno zbytocne zlozito :lol: bohuzial sa vsetko ucim sam a robim ako viem..


_________________
C#, PHP, ...
Offline

Správca fóra
Správca fóra
Explorer

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 22.05.2008 14:01 | Explorer

hmm, no mohol by si si ukladat cestu k aktualnemu adresaru do session a tym padom by ti stacilo v url uvadzat len nazov adresara, do ktoreho sa chces dostat (alebo v ktorom sa prave nachadzas), pripadne len ".." ci "."
Ak by to bolo "..", tak by si z hodnoty v session "ukrojil" jeden adresar, nastavil zvysok ako aktualny a fungovalo by to bez problemov... V pripade, ze sa chces dostat do podadresara, tak by si len pridal novu uroven...

S tym sortovanim som nepochopil, co presne chces docielit, takze k tomu sa zatial nevyjadrim...


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Skúsený užívateľ
Skúsený užívateľ
Explorer

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14691
Témy: 66 | 66
Bydlisko: Žilina
Vek: 30
Napísal autor témyOffline : 22.05.2008 14:55 | Explorer

stenley píše:
hmm, no mohol by si si ukladat cestu k aktualnemu adresaru do session a tym padom by ti stacilo v url uvadzat len nazov adresara, do ktoreho sa chces dostat (alebo v ktorom sa prave nachadzas), pripadne len ".." ci "."
Ak by to bolo "..", tak by si z hodnoty v session "ukrojil" jeden adresar, nastavil zvysok ako aktualny a fungovalo by to bez problemov... V pripade, ze sa chces dostat do podadresara, tak by si len pridal novu uroven...

S tym sortovanim som nepochopil, co presne chces docielit, takze k tomu sa zatial nevyjadrim...


to browsovanie skusim zajtra, nemam to doma v pc...

co sa tyka sortovania, tak ide o to, ze mam o kazdom adresari ci subore ulozene nejake informacie, ktore taham z mysql.. mam to pekne cele vypisane v tabulke a funguje to, akurat dakto pride a bude chciet napriklad zoradit subory podla typu, alebo podla nazvu a podobne.. proste podla nejakeho stlpca v mysql. lenze teraz to nejde z toho dovodu, ze najskor vyberam postupne fciou readdir obsah adresarov a potom o nich ziskam info. cize nemam ako pouzit SELECT * FROm ... SORT BY .... atd, lebo vzdy vyberiem len ten jeden zaznam z mysql a tam sortovat neni co


_________________
C#, PHP, ...
Offline

Správca fóra
Správca fóra
Explorer

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 22.05.2008 15:10 | Explorer

ked mas o kazdom subore a adresari ulozene info v db, tak na co potom citas obsah adresara cez readdir? nestacilo by ti to rovno vypisovat uz v zoradenom poradi z db?

alebo ak nie, tak by bolo najvhodnejsie asi fakt pouzit to pole a zoradit to pomocou usort (uasort,uksort), nic ine mi teraz akosik nenapada...


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Skúsený užívateľ
Skúsený užívateľ
Explorer

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14691
Témy: 66 | 66
Bydlisko: Žilina
Vek: 30
Napísal autor témyOffline : 27.05.2008 10:34 | Explorer

stenley píše:
ked mas o kazdom subore a adresari ulozene info v db, tak na co potom citas obsah adresara cez readdir? nestacilo by ti to rovno vypisovat uz v zoradenom poradi z db?

alebo ak nie, tak by bolo najvhodnejsie asi fakt pouzit to pole a zoradit to pomocou usort (uasort,uksort), nic ine mi teraz akosik nenapada...

1.) sortovanie je uz spravene :) dik za napad, neviem preco som to robil hentak...
2.) mozes byt prosim konkretnejsi ako na to "browsovanie o uroven vyssie" ? rozumiem principu co si opisal, akurat ma nenapada ako to presne napisat aby to fungovalo :oops:


_________________
C#, PHP, ...
Offline

Správca fóra
Správca fóra
Explorer

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 27.05.2008 11:08 | Explorer

ked mas vsetko ulozene v db, tak session vobec nepotrebujes, uplne ti postaci pracovat s datami ulozenymi v db - pravdaze, ak mas spravne zvolenu strukturu, z ktorej vies jednoducho zistit rodicovsky adresar, podadresare a aj subory nejakeho adresara...


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Skúsený užívateľ
Skúsený užívateľ
Explorer

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14691
Témy: 66 | 66
Bydlisko: Žilina
Vek: 30
Napísal autor témyOffline : 27.05.2008 11:13 | Explorer

stenley píše:
ked mas vsetko ulozene v db, tak session vobec nepotrebujes, uplne ti postaci pracovat s datami ulozenymi v db - pravdaze, ak mas spravne zvolenu strukturu, z ktorej vies jednoducho zistit rodicovsky adresar, podadresare a aj subory nejakeho adresara...

tak mam klasicky info o subore + ukladam aj informaciu o type (adresar, word, excel atd) + informaciu kde sa nachadza subor stylom "../files/" (to je vlastne hlavny adresar), "../files/ideme_hlbsie/" atd...
mozes to prosim skonkretnit ? ako vravim, priblizne principu rozumiem, ale nak zlyhava realizacia lebo si to nak neviem pretransformovat do php :)


_________________
C#, PHP, ...
Offline

Správca fóra
Správca fóra
Explorer

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 27.05.2008 11:26 | Explorer

aha, tak to bude zlozitejsie, ked mas cesty ulozene v "celej dlzke", myslel som si, ze to budes mat v jednoduchsej a pouzitejnejsej podobe... no newa, takze session je predsa len vhodnejsie riesenie... Ked si sem prvykrat daval tento problem, tak som si to pre istotu aj nakodil, aby som nahodou netrepal blbosti, ale medzicasom som to uz vymazal, takze ti napisem len zakladne kroky:
1. inicializujes si session premennu root adresarom
2. meno cieloveho adresara si budes chciet asi uchovat v GET - toto meno moze byt meno podadresara alebo "." pripadne ".."
Ak to bude "..", z cesty v session odstranis posledny vyskyt "/nejaky_adresar" a vzniknutu hodnotu nastavis ako aktualny pracovny adresar a zobrazis v usporiadanom poradi jeho obsah z db


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Skúsený užívateľ
Skúsený užívateľ
Explorer

Registrovaný: 07.03.06
Prihlásený: 23.01.11
Príspevky: 408
Témy: 2 | 2
Bydlisko: Prešov / Pr...
NapísalOffline : 27.05.2008 11:29 | Explorer

Osobne som si na prehliadanie adresárovej štruktúry kedysi napísal tiež vlastný skript, aby som mal localhost prehľadnejší. Cestu som zobrazoval štýlom:
Kód:
http://www.example.com/?show=adresar/podadresar/podpodadresar


Návrat o úroveň vyššie som riešil jednoducho tak, že som rozobral aktuálnu cestu pomocou explode cez "/" a odstránil poslednú časť.
Kód:
  $pole = explode("/", $_GET["show"]);
  foreach ($pole as $cast);
  $back = str_replace("/$cast", "", $_GET["show"]);
  echo "<a href='./?show=$back'>späť</a>";


Použitie ".." som jednucho zakázal v premennej show použiť, tak sa nik nedostal o úroveň vyššie ako bol skript.


Offline

Skúsený užívateľ
Skúsený užívateľ
Explorer

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14691
Témy: 66 | 66
Bydlisko: Žilina
Vek: 30
Napísal autor témyOffline : 27.05.2008 11:35 | Explorer

dobre, dakujem za rady, skusim vyskusat a pripadne sa ozvem :)


_________________
C#, PHP, ...
Offline

Správca fóra
Správca fóra
Explorer

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 27.05.2008 11:37 | Explorer

jj, da sa to riesit viacerymi sposobmi, ale princip je vzdy rovnaky - odstranenie poslednej adresarovej casti cesty, aby si sa dostal o urovej vyssie... len treba davat pozor na to, aby sa nedali zadavat absolutne cesty, preto je aj lepsie nezobrazovat celu cestu v GET (navyse, dlzka url je tiez obmedzena)


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Skúsený užívateľ
Skúsený užívateľ
Explorer

Registrovaný: 07.03.06
Prihlásený: 23.01.11
Príspevky: 408
Témy: 2 | 2
Bydlisko: Prešov / Pr...
NapísalOffline : 27.05.2008 13:37 | Explorer

Absolútnej ceste sa dá tiež jednoducho zabrániť, tak že zakážeš aby výraz začínal /, a zároveň aby neobsahoval 2 bodky "..". Dĺžka url je obmedzená, avšak pokiaľ nepotrebuješ prechádzať obrovské adresárové štruktúry, je to dostatočné.

Inak takto nejako vyzerá môj localhost: http://mylan.yw.sk/ (zabudol som heslo na tento yw účet, tak je tam nejaká staršia verzia skriptu), tu je kód skriptu: http://mylan.yw.sk/show-source.php?file=index.php


Offline

Správca fóra
Správca fóra
Explorer

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 27.05.2008 13:43 | Explorer

mas tam adresare root a www, vsak? mas to bohovsky "zabezpecene", dostal som sa do nich :D


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Skúsený užívateľ
Skúsený užívateľ
Explorer

Registrovaný: 07.03.06
Prihlásený: 23.01.11
Príspevky: 408
Témy: 2 | 2
Bydlisko: Prešov / Pr...
NapísalOffline : 27.05.2008 13:45 | Explorer

Ešte raz... okrem toho, že to je to stará verzia skriptu(môk localhost už vyzerá uplne inak). Hodil som to na ic.cz len zo srandy niekedy, inak to nikdy nebolo určené pre public. Bolo to vždy určené len pre môj localhost, takže na akékoľvek zabezpečenie som sral. Je to určené len a len pre môj localhost. Ak by som robil nejaký priezkumník, ktorý by som uvoľnil, alebo dal na nejaký môj web, urobím ho úplne inak predsa. V tomto nie sú ošetrené ani 2 bodky(..), ani absolútna cesta čo som spomínal...

toto nikdy zabezpečené ani nemalo byť. Je mi jedno kto čo uvidí na adrese mylan.yw.sk, sám tam už nemám ani prístup ako som písal, vždy to bol len môj absolútne verejný test web.


Offline

Správca fóra
Správca fóra
Explorer

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 27.05.2008 13:48 | Explorer

ok, tak sorry :) ale nechapem, preco zverejnujes tento nezabezpeceney skript, na co to je dobre?


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Čestný člen
Čestný člen
Explorer

Registrovaný: 17.10.06
Prihlásený: 08.01.11
Príspevky: 1757
Témy: 17 | 17
NapísalOffline : 27.05.2008 13:56 | Explorer

tak napriklad ja som si davnejsie tiez napisal podobny skript, ktory bol voci takymto chybam tiez nezabezpeceny, avsak zamerne. nikdy nevies kedy sa ti nieco take moze hodit ;)


_________________
A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table.
Offline

Skúsený užívateľ
Skúsený užívateľ
Explorer

Registrovaný: 07.03.06
Prihlásený: 23.01.11
Príspevky: 408
Témy: 2 | 2
Bydlisko: Prešov / Pr...
NapísalOffline : 27.05.2008 13:57 | Explorer

je to zverejnené na stiahnutie niekde? Dal som to sem ako ukážku, ako som riešil výpis adresárov, a ako je riešené návrat o krok späť, nič iné. Ostatné som vysvetlil teoreticky ako skript zabezpečiť v prípade, že ho chceš zverejniť.

Mimo toho, ten skript na ic.cz je absolútne bezpečný. Dostal si sa do adresára root a root/www. Čo ďalej? :)
Bolo to tam hodené najmú aj preto, lebo mi bolo jedno kto sa kam pozrie, vždy som tam hádzal odpad, čo som nemal kde dať, až kým som stratil heslo na ic a zistil, že som tam uviedol nejaký mail, čo neviem :D


Offline

Správca fóra
Správca fóra
Explorer

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 27.05.2008 14:03 | Explorer

zverejnil si zdrojovy kod skriptu (link na neho), takze nechapem tvojej otazke...

nedostal som sa vyssie preto, lebo to je zabezpecene "serverom" a nie tvojim skriptom, cize vyhlasenie, ze tvoj skript je absolutne bezpecny, je velky omyl... a navyse, ked skript vypise nejaku neosetrenu chybu, tak sa stava potencialne nebezpecnym...


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Skúsený užívateľ
Skúsený užívateľ
Explorer

Registrovaný: 07.03.06
Prihlásený: 23.01.11
Príspevky: 408
Témy: 2 | 2
Bydlisko: Prešov / Pr...
NapísalOffline : 27.05.2008 14:11 | Explorer

Ok, mal som tu dať len časti potom toho kodu, aby som nezmiatol začiatočkníkov, ktorý to môžu potencionálne okopírovať celé. Len zhrniem: kod som tu dal na ukázanie prechádzania ciest, povedal som ako to zabezpečiť. Tento je určený len na môj comp(resp bol, používam inovovanú verziu, avšak taktiež nezabezpčenú na prehliadanie vyššie, kedže mi to netreba), na tento web, na ktorom je bezpečný. Ale inak predstavuje potencionálne riziko, je potreba ho doupraviť ako som naznačil v prvom a druhom svojom príspevku v tejto téme.

Základ má slúžiť parsovanie cesty, návrat o úroveň vyššie... Inak pre "explorer" na web by som skúsil aj napríklad http://uploader.kahi.cz/ a ním sa inšpirovať.

PS: to na ic.cz že je bezpečný som myslel s nadsázkou... Je to samozrejme kvoli nastaveniu servera, ale nič to nemení na mojej vete.


Offline

Správca fóra
Správca fóra
Explorer

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 27.05.2008 14:28 | Explorer

ok, ked to zoberiem ako ukazku principu fungovania, tak nemam voci tomu vyhrady, ale na verejnu prevadzku je to potrebne este doladit, ako si aj ty poznamenal...


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3991
Témy: 96 | 96
NapísalOffline : 27.05.2008 14:48 | Explorer

čo presne potrebuješ ...
nedostať sa za danú zložku alebo dostať sa späť o jednu zložku?


Offline

Skúsený užívateľ
Skúsený užívateľ
Explorer

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14691
Témy: 66 | 66
Bydlisko: Žilina
Vek: 30
Napísal autor témyOffline : 27.05.2008 15:41 | Explorer

Tominator píše:
čo presne potrebuješ ...
nedostať sa za danú zložku alebo dostať sa späť o jednu zložku?
to co tu uz riesili stenley s mylanom... mas normalne poriesene chodenie po priecinkoch, ale nemam este dokonceny pohyb o uroven vyssie s tym, ze samozrejme treba limitovat pokial ist mozes. nie som teraz v praci tak to moc nemam ako skusat, ale zajtra by som rad rano vyskusal to co spominali.. orezavanie url o jednu uroven spat, tak som zvedavy jak to pojde :)


_________________
C#, PHP, ...
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3991
Témy: 96 | 96
NapísalOffline : 27.05.2008 15:46 | Explorer

jj ja to robim cez explode teda to rozdeľujem na polia ... a máš $_SERVER['PHP_SELF']; myslím kde zistíš tvoj priečinok teda ak si na localhost/Ahoj/index.php vypíše /Ahoj/index.php čo sa samozrejme zíde ...


Offline

Správca fóra
Správca fóra
Explorer

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 28.05.2008 10:40 | Explorer

Pre nazornost vyuzitia session pri prechadzani adresarovej struktury (nie z db), uvadzam nasledujuci skript. Pre jednoduchost vypisuje len adresare a ziadne neskryva.
Premenna $rootDir obsahuje adresar, ktoreho obsah ma byt default zobrazeny pri spusteni skriptu a v ramci ktoreho sa moze pouzivatel pohybovat - vyssie sa uz nedostane. Cize, ak by bol skript ulozeny v adresari "web" a chceme spristupnit len obsah jeho podadresara "files", tak je potrebne upravit $rootDir nasledovne:
Kód:
$rootDir = dirname($_SERVER["SCRIPT_FILENAME"]).$_delimiter."files";      //k povodnej hodnote sa teda pridala dalsia uroven .$_delimiter."files"

Samotny skript bez predchadzajucich zmien:
Kód:
<?php
session_start();

$_delimiter = "/";
$_delimiter2 = "\\";
if(strpos(getcwd(),$_delimiter)===false)
{
   $tmp = $_delimiter;
   $_delimiter = $_delimiter2;
   $_delimiter2 = $tmp;
}

$rootDir = dirname($_SERVER["SCRIPT_FILENAME"]);
$rootDir = str_replace($_delimiter2,$_delimiter,$rootDir);

$_SESSION['currentDir'] = !empty($_SESSION['currentDir']) ? $_SESSION['currentDir'] : $rootDir;

if(!empty($_GET['dir']))
{
   $showDir = ereg("[\/]",urldecode($_GET['dir'])) ? "." : urldecode($_GET['dir']);
   
   switch($showDir)
   {
      case ".":
         break;
      case "..":
         $tmp = substr($_SESSION['currentDir'],0,strlen($_SESSION['currentDir'])-strlen(strrchr($_SESSION['currentDir'],$_delimiter)));
         
         if(strlen($rootDir)<=strlen($tmp))
         {
            $_SESSION['currentDir'] = $tmp;
         }
         break;
      default:
         if(is_dir($_SESSION['currentDir'].$_delimiter.$showDir))
         {
            $_SESSION['currentDir'] .= $_delimiter.$showDir;
         }
   }
}
else
{
   $_SESSION['currentDir'] = $rootDir;
}

if(strpos($_SESSION['currentDir'],$rootDir)!==false)
{
   chdir($_SESSION['currentDir']);
   $dir = opendir($_SESSION['currentDir']);
   while($file = readdir($dir))
   {
      if(is_dir($file))
      {
          echo '<a href="?dir='.$file.'">'.$file.'</a><br>';
        }
   }
}
?>

Ak tam najdete nejaku chybu, dajte pls vediet. D.


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
 [ Príspevkov: 26 ] 


Explorer



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

explorer.exe - windows explorer stop working problem

v Operačné systémy Microsoft

5

287

26.08.2013 21:48

sillyounguy

V tomto fóre nie sú ďalšie neprečítané témy.

explorer

v Operačné systémy Microsoft

8

590

19.06.2007 22:11

Rbot

V tomto fóre nie sú ďalšie neprečítané témy.

Windows Explorer

v Operačné systémy Microsoft

0

237

24.10.2007 13:29

jorgen

V tomto fóre nie sú ďalšie neprečítané témy.

Internet Explorer

v Sieťové a internetové programy

4

389

26.02.2007 15:55

Fenius

V tomto fóre nie sú ďalšie neprečítané témy.

XP - Explorer

v Operačné systémy Microsoft

3

220

27.08.2009 11:53

emajko159

V tomto fóre nie sú ďalšie neprečítané témy.

internet explorer

v Operačné systémy Microsoft

4

269

20.04.2008 20:54

CommanderBomber

V tomto fóre nie sú ďalšie neprečítané témy.

Internet Explorer

v Sieťové a internetové programy

3

401

08.07.2009 19:07

f4r0

V tomto fóre nie sú ďalšie neprečítané témy.

Windows explorer

v Operačné systémy Microsoft

5

306

12.03.2008 15:36

palokm

V tomto fóre nie sú ďalšie neprečítané témy.

heslo explorer

v Ostatné

7

864

12.06.2010 13:08

avonn1

V tomto fóre nie sú ďalšie neprečítané témy.

Explorer.exe

v Operačné systémy Microsoft

3

289

15.06.2009 8:49

AsuSmaNiaK

V tomto fóre nie sú ďalšie neprečítané témy.

Internet Explorer

v Operačné systémy Microsoft

6

305

08.12.2007 23:06

psv

V tomto fóre nie sú ďalšie neprečítané témy.

internet explorer

v Sieťové a internetové programy

2

299

01.12.2007 18:14

pali987

V tomto fóre nie sú ďalšie neprečítané témy.

Chyba - explorer

v Operačné systémy Microsoft

5

660

21.03.2009 12:50

majky358

V tomto fóre nie sú ďalšie neprečítané témy.

HTC Explorer

v Smartfóny a tablety

0

54

29.10.2013 6:47

slovacik

V tomto fóre nie sú ďalšie neprečítané témy.

Internet explorer

v Operačné systémy Microsoft

5

306

30.12.2008 15:24

prandof

V tomto fóre nie sú ďalšie neprečítané témy.

windows explorer

v Operačné systémy Microsoft

2

315

19.11.2006 13:51

reptile666



© 2005 - 2017 PCforum, edited by JanoF