Több űrlap kezelése egy oldalon
Sziasztok!
Adott egy oldal, amin több form van. pl.
- mini hirlevél regisztrációs doboz balmenuben,
- login doboz jobboldalon,
- plusz még változatos űrlapok jelenhetnek meg a középső fő szekcióban.
Hogyan szokás megvalósítani ennak a kezelését? Hogyan kell szép, profi megoldással eldönteni hogy melyik formon melyik gombra kattintott az emberünk? A <form> html tag "name" paramétere lekérdezhető valahigyan php-ből?
Butaság az a gondolat, hogy egy "action" nevű rejtett űrlapmező tartalmazza, hogy mi a neve a formnak, ahonnan a POST jött? plusz a GET-el érkező adatok is kb. így néznének ki: index.php?action="listazas"&katID=25
Tehát itt is lenne egy action paraméter.
Írnék egy függvényt ami a $_REQUEST-tömbben megnézi van e "action" kulcs, ha igen csinalok egy call_user_func_array($_REQUEST['action',$tobbiadatarequestbol);
szerű hívást. Persze, ha parásak vagyunk kellhet valami ellenőrzés, hogy akármelyik fv-ünk azért ne hívhassák meg így.
Ez nagyon gányolás? Ez a probléma olyan alapkérdésnek tünik... Mondjátok meg hogyan kell ezt csinálni szépen! :)
Köszönöm!
■ Adott egy oldal, amin több form van. pl.
- mini hirlevél regisztrációs doboz balmenuben,
- login doboz jobboldalon,
- plusz még változatos űrlapok jelenhetnek meg a középső fő szekcióban.
Hogyan szokás megvalósítani ennak a kezelését? Hogyan kell szép, profi megoldással eldönteni hogy melyik formon melyik gombra kattintott az emberünk? A <form> html tag "name" paramétere lekérdezhető valahigyan php-ből?
Butaság az a gondolat, hogy egy "action" nevű rejtett űrlapmező tartalmazza, hogy mi a neve a formnak, ahonnan a POST jött? plusz a GET-el érkező adatok is kb. így néznének ki: index.php?action="listazas"&katID=25
Tehát itt is lenne egy action paraméter.
Írnék egy függvényt ami a $_REQUEST-tömbben megnézi van e "action" kulcs, ha igen csinalok egy call_user_func_array($_REQUEST['action',$tobbiadatarequestbol);
szerű hívást. Persze, ha parásak vagyunk kellhet valami ellenőrzés, hogy akármelyik fv-ünk azért ne hívhassák meg így.
Ez nagyon gányolás? Ez a probléma olyan alapkérdésnek tünik... Mondjátok meg hogyan kell ezt csinálni szépen! :)
Köszönöm!
alapkérdés
A call_user_func_array() hívása közvetlenül felhasználói bemenet alapján nagyon rossz ötlet. Nincs olyan, hogy "ha parásak vagyunk, akkor ellenőrizzük". Mindig "parásak vagyunk"!
Szóval...
action="index.php?action=hirlevelreg"
hogyan különböztetem meg egymástól a submit gombokat? a call_user...-be éreztem, hogy bele fogtok kötni, azért utaltam rá hogy gondolok az ellenőrzésre. :) Milyen megoldást javasolsz? csináljak egy tömböt a zöldlámpás fv-ek nevével? vagy figyeljem, hogy csak olyan fv-ek hivhatók igy, aminek mondjuk "user_" string-el kezdődik a neve? ("user_hirlevelreg")
Submit gomboknak eltérő név
A felvázolt ötlet szerintem nem túl elegáns, meg többnyire felesleges is.
Biztonsághoz pl. inkább szerver oldalon is tárolt kulcs, hogy ne nyúlják le a user sessionjét.
Nem értem :(
Biztonság: tehát call_user... validáció helyett INKÁBB sessionazonosító-tárolás a szerveren? Hogyan helyettesíti egymást a két dolog?
A Tiédet nem találom elegánsnak
Biztonság tekintetében ezek nem vagylagos választások. A user felől jövő adatot mindenképp szűrni kell, ez nem kérdéses; a cikkek közt találsz remek kiindulópontot a kérdésben.
Szintén van a cikkek közt SQL injectionnel, XSS-sel, stb. foglalkozó írás, emlékeim szerint abban volt szó a session ellopásáról is.
Nem írnám le még egyszer, ha nem muszáj, de ha nem találod (vagy kérdésed marad), szólj, és szívesen segítek.
elegancia
Milyen elegánsabb megoldás létezik a felhasználói akció azonosítására és attól függően fv-ek futtatására?
nya
cForm
skacok ne xarakodjatok már a formozással, lécci ;) :)
Több submit
lehetséges akciók
Persze ha valaki nem a korrekt böngésző felületet használja, akkor bármilyen adat lehet, több submit gomb, szükséges adatok hiánya stb. ezeket ellenőrizni kell.