Készítettem egy modult, ami létrehoz egy térkép node-ot.
A hook_insert()-ben a $node változóba nem kerül bele az egyik elem (map_data), pedig a $_POST változóban benne van. Nem tudok rájönni miért. Ha valakinek van ráérő ideje, és kedve forráskódot bogarászni... :) Persze működik a tárolás, csak az a kérdés meddig !?
Drupal verzió:
Fórum:
mi itt a probléma?
Én nézem és nekem belekerül. Van $node->map_data változó és az az érték van benne amit átadtam. Érted? Amit átadtam. Mivel ez egy rejtett változó ezért az is marad benne elintézi neked a form_api, hogy ne lehessen rommáhekkelni a modulodat. Javaslom tegyél hidden helyet egy textfield-et és abba told az adatokat. A textfield-et nyugodtan el is rejtheted.
Én anno ezt úgy csináltam, hogy volt két beviteli mező a lat és lang valamint a cím. A lat és lang el lett rejtve, ha volt js és a térkép a színes szagos bevitellel pedig megjelent. A Drupal nem tudta, hogy van térkép ő csak azt látta, hogy a megfelelő mezők megfelelő képen ki vannak töltve.
http://drupal.hu/hirek/20080331/palocz-istvan-terkep-es-drupal
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
A probléma ott van, hogy
A probléma ott van, hogy insert-nél nekem nem kerül bele semmi. :(
Azt hiszem ideje egy szűz drupal alá betennem a modult....
A textfield esetén a form_api, vagy valami más vizsgálja, hogy került-e bele pl. javascript ?
...mit tudok: http://web.termuves.hu
nekem mondom volt ;)
Feltettem a modulodat és új létrehozásakor a kiírt cuccban ott volt minden. Ha default_value-t írtam neki akkor az is megjelent benne.
A textfield esetén a form_api, vagy valami más vizsgálja, hogy került-e bele pl. javascript ?
Ha js-el módosítod a tartalmát akkor azt hogy az öreg ördögbe vizsgálná szerver oldalon valaki is? Olyat lehet csak, hogy nem elfogadható tartalmak ne jöjjenek vissza. Pl. rejtett mezőt nem módosíthat a júzer, tehá az nem változhat, select-ből nem jöhet olyan érték ami nem volt benne az option-ok között stb.
ha javascript kódot akarsz beletenni azt meg valószínűleg egy kimeneti xss filter fogja kidobni a kódból. (ezt könnyedén megkerülheted)
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
Mégsem értem: Mivel ez egy
Mégsem értem:
Mivel ez egy rejtett változó ezért az is marad benne elintézi neked a form_api, hogy ne lehessen rommáhekkelni a modulodat. Javaslom tegyél hidden helyet egy textfield-et és abba told az adatokat
Ne használjak hidden mezőt, mert az nem biztonságos, helyette inkább textfield-et (elrejtve), vagy a form_api elintézi, hogy ne lehessen rommáhekkelni az oldalam, de azért inkább használjak textfield-et ?
Lényeg a lényeg: melyik a biztonságos(abb) ?
...mit tudok: http://web.termuves.hu
Sose bízz a felhasználótól jövő adatokban!
Az alap felállás az az, hogy a hidden mező az egy olyan mező, amibe a júzer a kliens oldalon nem írhat semmit, azt nem módosíthatja. Legalábbis ebből a totálisan téves kiindulási pontról szoktak az egységsugarú kezdők elindulni. Aki már látta a firebug-ot az tudja, hogy nevetségesen egyszerű ezeket módosítani. (egyébként se nehéz, de ehhez szakértelem se kell, csak fogod és átírod) Ezért van az talán, hogy a formAPI, melyet nagy tudású emberek írtak talán nem engedi, hogy módosított adatok menjenek feléd. (ha lesz időm utána túrok)
Van viszont egy szabály, a Nagy Tudás végletekig leszűrt sűrítménye, mely önmagában megmutatja az Egyetlen Egy Igaz Utat számodra és megválaszolja fenti és jövőben felteendő kérdéseidet a témában:
Sose bízz a felhasználótól jövő adatokban!
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
Miután a hook_insert
Miután a hook_insert $node->map_data-ban továbbra sem volt semmi :)
(legalábbis nálam :)
A
helyett
került.
Ami nem tetszett a FormAPI-nak(?) az a '' value érték (vagyis a semmi). Ezenkívül mivel több pontot is meg lehet adni a térképen (és törölni is lehet őket), ezért a karakterek száma meghaladta a 128-at. A textfield alapbeállításon dobta az adatokat, csak kiegészítette még egy hibaüzenettel. Valószínű a hidden ugyanezt tette, csak nem reklamált.
Most működik.
...mit tudok: http://web.termuves.hu
#default_value
jaja... ezen nekem is mindig átsiklik a szemem. A lényeg, hogy sose használj #value-t mert az felülírja azt ami jött a POST-ban. A helyes a #default_value
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu