Diskuze: Diskuze,nějaká chybná..
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Tvůrce
Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Jsi nepoučitelný šílenec. Takový web ti bude fungovat možná pár dní a někdo ti ho rozbije. Proč nepoužiješ databázi? S ní to bude jednodušší, rychlejší a bezpečnější.
Abych byl konkrétní: Nechat si poslat v parametru jméno souboru, do kterého se bude v zápětí zapisovat, je sebevražda.
a když už tak je to moje stránka,ne tvoje. já říkám že pro mě je SQL těžké. ty se to možná naučíš za 2 dny,ale já ne ! tak zkus taky trochu myslet...
kdybych chtěl hodnocení webu tak to dám do kritiky,jenže já to dal na fórum,protože chci poadit
Prostuduj si sekci PHP
Pokud nemáš dobrý důvod k tomu dělat něco špatně, tak dej přednost
správnému řešení a jak ti Kit již několikrát pokynul, použij databázi.
Ušetříš se mnohým trablím a zjistíš, že práce s ní je velmi
jednoduchá a efektivní
Musím ale s Kitem souhlasit, dá se to obejít a nedělá to potom dobře i z hlediska bezpečnosti
Tady bych souhlasil s Kitem. Databáze v PHPčku (třeba MySQL) jsou tak strašně jednoduché, že je úplně triviální je používat. Myslím, že je dost zřejmé, proč nepředávat parametrem jméno souboru, do které budeš zapisovat... Zkus se podívat jen na definice funkcí v PHP začínajících mysql_*. Většinou předáváš pár jasných parametrů. Pokud bys potřeboval pomoct s databází, vždycky se tu můžeš zeptat a někdo ti poradí, ale na tohle používat soubory je celkem sebevražda.
Už jsme tady probrali několikrát, jak je nutné použití funkce htmlspecialchars() při generování HTML z textu od uživatele a přesto to ignoruješ.
Ta kritika byla konstruktivní. Představ si, že by někdo jako název souboru dal "cervik.php" a jako text vtipu dal exploit. A máš nechtěného admina.
Však nemusíš použít SQL databázi.
Aspoň si ošetři ta vstupní pole. Je úplně zbytečné do "kategorie" dávat cestu k souboru, tu si přece doplníš v aplikaci po provedení basename() a příponu také.
Ten soubor se ti neotevřel, protože tu cestu máš chybně.
A chybí ti header('Location: ...') na konci skriptu pridej.php. Ale to už jsme také probírali.
Zobrazeno 9 zpráv z 9.