Autor | Zpráva | ||
---|---|---|---|
Dranel Profil |
#1 · Zasláno: 15. 12. 2007, 18:27:40
Dobrý den,
rád bych se zeptal, zdali je lepší použít stávající fci (popřípadě jak ji upravit)... <?php function ukazstranku() { if ((string)$_REQUEST["str"] <> '') $mojestranka = $_REQUEST["str"]; else $mojestranka = "uvod"; if (is_file("./".$mojestranka.".php")): $nazevstranky = $mojestranka.".php"; require $nazevstranky; elseif (is_file("./".$mojestranka.".htm")): $nazevstranky = $mojestranka.".htm"; require $nazevstranky; elseif (is_file("./".$mojestranka.".html")): $nazevstranky = $mojestranka.".html"; require $nazevstranky; else: $nazevstranky = $mojestranka.".htm"; require "./notfound.php"; endif; } ?> ...nebo je lepší to převést na switch (jestli to vůbec jde). |
||
tiso Profil |
#2 · Zasláno: 15. 12. 2007, 18:53:05
Aký má význam funkcia ktorú použiješ iba raz? Žiadny.
|
||
Aleš Janda Profil |
#3 · Zasláno: 15. 12. 2007, 18:58:58
Na switch to převést nejde, nechal bych to asi tak jak to je.
Nicméně bych ještě zabránil změně adresáře (tedy v názvu se nesmí vyskytovat /), jinak ti někdo může lézt kam nechceš. tiso Funkce má (mimo jiné) význam pro přehlednost. Je jedno, jestli je použiješ jednou nebo tisíckrát. |
||
Str4wberry Profil |
#4 · Zasláno: 15. 12. 2007, 19:00:53 · Upravil/a: Str4wberry
Pokud takto budeš vkládat hodně stránek bude to jednodušší. Se switchem bys je musel všechny vyjmenovávat (vypisovat).
|
||
Kcko Profil |
#5 · Zasláno: 15. 12. 2007, 19:03:52
Ja bych v zadnem pripade nedelal include do funkce ... , no vsak poznas casem proc
|
||
Str4wberry Profil |
#6 · Zasláno: 15. 12. 2007, 19:10:54
Odpovídám Kcko:
„Ja bych v zadnem pripade nedelal include do funkce ... , no vsak poznas casem proc“ Ale vždyť nikdo žádné include nikam nedává, ne? |
||
BetaCam Profil |
#7 · Zasláno: 15. 12. 2007, 19:53:04 · Upravil/a: BetaCam
Ja bych v zadnem pripade nedelal include do funkce ... , no vsak poznas casem proc
A mohu se zeptat co by měl jako časem poznat?? A je jedno jestli se redná o i, io, r nebo ro. |
||
tiso Profil |
#8 · Zasláno: 15. 12. 2007, 20:34:30
Aleš Janda - blok kódu s komentárom má ten istý význam. Netreba to zbytočne komplikovať...
|
||
Dranel Profil |
#9 · Zasláno: 15. 12. 2007, 21:57:01
Vysvětlíte mi pls o čem se to tu bavíte? Díky tomu, že tam mám is_file() a ještě ke všemu ./ tak se mi do toho nikdo nabourat nemůže (obrazně).
Na swith to nejde - mohl jsem si to myslet. Ostatním částem vašeho rozhovoru nějak nerozumím :( |
||
BetaCam Profil |
#10 · Zasláno: 15. 12. 2007, 22:00:24
Ostatním částem vašeho rozhovoru nějak nerozumím :(
Například?? :) |
||
Dranel Profil |
#11 · Zasláno: 15. 12. 2007, 22:47:58
Nicméně bych ještě zabránil změně adresáře (tedy v názvu se nesmí vyskytovat /), jinak ti někdo může lézt kam nechceš. ... Ja bych v zadnem pripade nedelal include do funkce ... , no vsak poznas casem proc ... A mohu se zeptat co by měl jako časem poznat?? A je jedno jestli se redná o i, io, r nebo ro. ... blok kódu s komentárom má ten istý význam. Netreba to zbytočne komplikovať ... Například?? :) Například :) |
||
Str4wberry Profil |
#12 · Zasláno: 15. 12. 2007, 22:59:12
Odpovídám Dranelovi:
1) Díky „/“ mohu vložit téměř libovolný soubor z Tvého webu (z jiné složky). 3) i — include, io — include_once, r — require, ro — require_once |
||
BetaCam Profil |
#13 · Zasláno: 15. 12. 2007, 23:15:57 · Upravil/a: BetaCam
Dranel
Nicméně bych ještě zabránil změně adresáře (tedy v názvu se nesmí vyskytovat /) Pokud ti do $_REQUEST["str"] někdo pošle abc/xyz tvůj script se bude snažit načíst stranku xyz (htm/php/html) ale adresáře abc tudíš si človek může "listovat" adresáři. Ja bych v zadnem pripade nedelal include do funkce ... , no vsak poznas casem proc Toto jsem sice pochopil, ale neznám důvod tohoto opatrení, proto jsem se zeptal : A mohu se zeptat co by měl jako časem poznat?? A je jedno jestli se jedná o include, include_once, require nebo require_once. blok kódu s komentárom má ten istý význam. Netreba to zbytočne komplikovať Tisova odpověd byla pro Aleš Jandu. Tiso zastává názor, že tvořit funkci, která je použitá pouze jednou je zbytečné i z důvodu přehlednosti, protože stejnou funkci tedy přehlednost vykoná i dobře okomentovaný kód. Jo a ješte jedna věc být tebou nepoužíval bych $_REQUEST |
||
Dranel Profil |
#14 · Zasláno: 16. 12. 2007, 12:23:27
Str4wberry
Já tam ale nemám / nýbrž ./ - tudíš se soubor vloží pouze z daného adresáře, jinak dojde k chybě. Řešilo se to tady (externí odkaz). BetaCam Proč nepoužívat $_REQUEST? Co tam tedy dát místo toho? $_GET? Jaký to bude mít význam? |
||
BetaCam Profil |
#15 · Zasláno: 16. 12. 2007, 13:43:23
Dranel
Proč nepoužívat $_REQUEST? Co tam tedy dát místo toho? Z bezpečnostních důvodů. A ano měl by si používat $_GET, $_POST atd. Já tam ale nemám / nýbrž ./ - tudíš se soubor vloží pouze z daného adresáře, jinak dojde k chybě. nevloží. pokud ti poslu do $_REQUEST["str"] například abc/xyz bude tvuj script provadet toto. is_file("./".$mojestranka.".php") což se v tomto případě rovná is_file('./abc/xyz.php') což neni tebou určený adresář. To jestli tam mas ./ nebo / je uplně jedno. |
||
Aleš Janda Profil |
#16 · Zasláno: 16. 12. 2007, 13:56:32
Dranel
Já tam ale nemám / nýbrž ./ - tudíš se soubor vloží pouze z daného adresáře, jinak dojde k chybě Anebo se dá stáhnout i soubor z nějakého nadřazeného adresáře - uživatel jednoduše zadá do $_REQUEST["str"] '../nejaky_soubor_z_nadrazeneho_adresare' a také to půjde - v podstatě to ./ je tam k ničemu. Dost lidí si to neuvědomuje, ale např. ./../adresar1/adresar2/../../soubor.txt je naprosto platná cesta. |
||
Dranel Profil |
#17 · Zasláno: 16. 12. 2007, 19:45:19
Aleš Janda, BetaCam
No ale když tam nedám tedy nic (žádný lomítko) tak to vyjde úplně nastejno ne? Nebo jak to tedy zabezpečit? |
||
Timy Profil |
#18 · Zasláno: 16. 12. 2007, 19:47:21
Dranel
Co takhle kontrolovat, jestli se ta $mojestranka skládá pouze z písmen, čísel nebo pomlčky? |
||
Časová prodleva: 4 měsíce
|
|||
nuguien Profil * |
neví někdo
jak se dá kodem vložit do složky soubor určeného typu a jména? předem děkuji za odpověď. nemám vidět na klávesnici písmenka.. |
||
Aleš Janda Profil |
#20 · Zasláno: 1. 4. 2008, 21:09:06
nuguien
File_Put_Contents() A příště si založ vastní vlákno. |
||
Časová prodleva: 16 let
|
0