IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Snorlax
Tvůrce
Avatar
Odpovídá na matesax
Snorlax:7.9.2013 18:17

stejně si myslím že bys to měl dělat přes DB. vždyť je to i bezpečnější. pokud by někdo zjistil kde ten soubor je mohl by si to číst i někdo neoprávněnej.... to u db těžko....

Odpovědět
7.9.2013 18:17
Kdo chce pochopit, pochopí. Kdo dělá že chce pochopit, může pouze dělat, že pochopil...
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:7.9.2013 18:22

Rád ti vysvětlím co je špatně.

case "goTo":

GoTo je velmi špatně zvolený název návěstí, pokud se v návěstí parsuje, mělo by se jmenovat asi jinak, ne? Vkládat tak dlouhý kód do větve switche je blbost, měla by se tam volat metoda. Pomocí reflexe můžeš dát ten switch tam, kam patří - pryč.

$value = "[\"".$_GET["time"]."\",\"";

Co jsou ta lomítka? Co třeba otevřít jednoduché uvozovky místo dvojitých?

$file = file("History\\".$_GET["file"]);

To jako vážně? Necháš si zpracovat libovolný soubor co uživatel zadá? Asi chceš, aby ti to někdo hacknul.

$noFound = true;

To je názvosloví a navíc k ošetření chyb jsou výjimky.

$index = 0;

while($index < $fileLineCount)
{
        if(strpos($file[$index], $value) === 0)
        {
                $noFound = false;
                break;
        }

        $index++;
}

Tohle bych nahradil jednou řádkou:

$array = explode("\n", file_get_contents('file.txt'));

a potom hledal hodnotu v tom poli.

if($noFound)
        die("alert('Nenalezeno!');");

Tady jsem málem spadl pod stůl, smrtící kombinace :D die alert je opravda skvělý způsob pro zpracování chyby s kombinací s proměnnou noFound (ano, je to ironie).

Ten zbylý bordel jsem ani nepochopil.

Editováno 7.9.2013 18:40
Nahoru Odpovědět
7.9.2013 18:22
New kid back on the block with a R.I.P
Avatar
matesax
Tvůrce
Avatar
matesax:7.9.2013 19:07

Tu URL nikdo nikdy neuvidí. To souvisí s tím pojmenováním - nebude takto lidské, ale takové, aby si tu URL nikdo nemohl ani tipnout... Navíc je uvnitř AJAXu obfuscovaného JS... Dále explode("\n", file_get_conten­ts('file.txt')) - a co asi udělá file??? (s mnohem kratším kódem) Jaká výjimka mi vznikne? Musel bych ji udělat, jenže nemám pod kontrolou interpreter - takže stejně bych to nechytal tam, kde mám. Stejně se nezbavím větvení - výjimku bych musel vytvářet - to věc moc nezachraňuje... Prostě hledáš jen kraviny...

Ale nejvtipnější na tvém komentu je, že jsi nahradil část kódu jen jeho částí - a napsal jsi, že ať se zbytek udělá... :) :)

explode("\n", file_get_contents('file.txt')) == file("file.txt")

A pod tím bude zbytek mého kódu... :D

Editováno 7.9.2013 19:09
 
Nahoru Odpovědět
7.9.2013 19:07
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:7.9.2013 19:22

A máme zde oblíbené téma Security through obscurity. To jsem zvědav, kdy z toho vyrosteš.

Ty tvé další obskurity jsem dál už nezkoumal. Obvykle mi stačí, když někdo použije boolean tam, kde není potřeba vůbec nic...

Nahoru Odpovědět
7.9.2013 19:22
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 54.