Autor Zpráva
nowis
Profil
Zdravím,

řeším teď problém, jak uchovat nastavené filtry v tabulce vypsané z databáze a asi nejsnazší způsob mi přijde uložit do $_SESSION konec SQL dotazu "WHERE......"

Nejsem si ale úplně jistý, jestli je to čisté nejen programátorsky (působí to na mně jako trochu prasárna) ale také s ohledem na bezpečnost, ikdyž nevím jak by se toho dalo zneužít. Prostě mi něco říká, že bych to tak dělat neměl. Jaký na to máte názor, řešili byste to stejně, nebo jinak a jak?

Dík!
Tomáš123
Profil
nowis:
Čistejšie by bolo ukladať do $_SESSION iba konkrétne hodnoty a SQL zostavovať až na mieste, kde sa použije.
nowis
Profil
jo jo, určitě je to elegantnější...


...a bezpečnost? Příjde někomu původně zamýšlené řešení z tohoto pohledu špatně?
Alphard
Profil
nowis:
jak uchovat nastavené filtry v tabulce vypsané z databáze a asi nejsnazší způsob mi přijde uložit do $_SESSION
Předpokládám, že tím je myšlen normální get formulář s parametry v url a session se používá pouze pro zapamatování si posledního nastavení. Tak je to v pořádku, ale nezapomenout na možnost všechy filtry smazat.

a bezpečnost?
Tam problém nevidím. Escapování vstupů to databáze je samozřejmost, žádná dodatečná opatření nejsou třeba. Session hodnoty uživatel změnit nemůže, ale daná data pochází z uživatelských vstupů; v podstatě jako by tam žádné session nebyly.
Martin2
Profil *
nowis:
Nejsem si ale úplně jistý, jestli je to čisté nejen programátorsky (působí to na mně jako trochu prasárna)
Je to svým způsobem prasárna. Programová logika by měla být oddělena od dat.

s ohledem na bezpečnost
Session je poměrně bezpečné místo. I když na sdíleném hostingu ne tak jistě, PHP používá serializaci do obyčejných textových souborů.

Správný postup nastínil Tomáš123. Zapamatuj si jen pole parametrů, SQL dotaz sestav z něj. Pomoci by ti měla nějaká databázová vrstva, která většinu práce udělá za tebe.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0