Zabezpečení
10 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
<?php if (isset ($GET_["serial"])) $serial = $GET_["serial"]; if (isset ($GET_["stranka"])) $stranka = $GET_["stranka"]; else echo "Stránky nejsou dostupné"; ?> Proč mi to vypisuje "Stránky nejsou dostupné" ikdyž zadám do vyhledávače index.php?serial=zavod&stranky=auto ? :)
-
viz &stranky=auto (isset ($GET_["stranka"])) $stranka = $GET_["stranka"];
-
ds: Už jsem na to přišel bylo to hlavně tím, že jsem si tam dal $GET_["stranka"] a správně tam má být $_GET["stranka"] ta čárka dole... :)
-
Tak už jsem dokončil to co jsem chtěl co na to říkáte? <?php if (isset ($_GET["serial"])) $serial = $_GET["serial"]; else $serial = "novinky"; if (isset ($_GET["stranka"])) $stranka = $_GET["stranka"]; else $stranka = "1"; $soubor = "$serial/$stranka.php"; if (file_exists ($soubor)) include $soubor; else include "stranka-neexistuje.php" ?>
-
Už se asi budu opakovat, ale říkám na to toto: a) Nelíbí se mi zápis podmínky na více řádcích (součástí if je i závorka s hodnotou vstupující do podmínky), stejně tak bych se pro přehlednost držel používání složených závorek (tzn. dělení do bloků). Třeba takto: if(isset ($_GET["serial"])) { $serial = $_GET["serial"]; } else { $serial = "novinky"; } Případně takto triviální podmínky (kdy zapisuješ v každém případě do jedné proměnné) zapisovat pomocí ternárního operátoru: $serial = isset ($_GET['serial']) ? $_GET['serial'] : 'novinky'; b) Nelíbí se mi použití uvozovek místo apostrofů. Ale to je spíš otázka zvyků a osobních preferencí. c) A hlavně se mi nelíbí to, co se stane na adrese ?serial=.&stranka=index Co se týče možnosti c), tu jsme probírali již v jiném vlákně (jak si jistě dobře vzpomeneš).
-
Ohledně zápisu se názory liší a různé firmy mají různý coding style. Osobně preferuji poněkud úspornější zápis, např. takto: if(isset ($_GET['serial'])){ $serial = $_GET['serial']; }else{ $serial = 'novinky'; } Použití ternárního operátoru je v daném případě skutečně výhodnější a rychlejší. Uvozovky mají trochu odlišné použití než apostrofy, je skutečně lepší použít apostrofy tam, kde je to možné. Ovšem v daném případě uvozovky nejsou chybou. Možnost c) mě napadla asi současně. Je dalším důvodem pro použití databáze.
-
Freeze dal jsem na tvoje rady kromě ternárního operátoru, protože mu moc nerozumím a web nedělám na profesionální úrovni, takže třeba to, že bych měl stránku načtenou o 8ms mě nějak netápí. a) dodělal jsem ty závorky b) předělal jsem ty uvozovky a dal jsem tam apostrofy c) zakázal jsem tečky takže adresu ?serial=.&stranka=index si už můžeš napsat, stejně ti to vyhodí $serial = "novinky"; <?php if (isset ($_GET['serial']) && substr_count($_GET["serial"], ".") < 1) { $serial = $_GET['serial']; } else { $serial = "dexter"; } if (isset ($_GET['stranka'])) { $stranka = $_GET['stranka']; } else { $stranka = "titulky"; } $soubor = "$serial/$stranka.php"; if (file_exists ($soubor)) include $soubor; else include "stranka-neexistuje.php" ?> Co na to říkáte a díky za čas, který tu se mnou trávíte.. :)
-
Sorry teď to nevyhodí $serial = "novinky"; ale $serial = "dexter"; :D
-
<HTML>Pořád se mi to nelíbí: ?serial=&stranka=absolutnicestabezprvniholomitka/index ?serial=castaboslutnicesty&stranka=zbytekabsolutnicesty/index ?serial=absolutnicesta&stranka=index Tohle všechno projde a zacyklí ti skript. Prosím tě, buď tak hodnej a zamysli se nad použitím nějaké databáze. I ta nejprimitivnější (textový soubor, co řádek, to seriál) ti ušetří pěkných pár bezpečnostních problémů.</HTML>
-
A k čemu to vůbec vadí, že mi někdo zadá tuhle adresu? Vyhodí mu to chybu a co dál ostatním uživatelům to nějak neovlivní průběh na stránkách. :) Na stránky stejně nemůže nic zapsat když nenastavím atribut, který mu to dovolí... :)