Hirdetés

2024. április 20., szombat

Gyorskeresés

Hozzászólások

(#1) szimeonov


szimeonov
tag

Eloszor grat a hasznos irashoz!
Egyenlore csak at futottam, de erdekesnek hasznalhatonak tunik.
Mi a munkaban a Zend Framework keretrendszert hasznaljuk.
JavaScript-et sajatokat fabrikaltunk, de az csak ganyolas volt aztan nemreg tertunk at jQuery-re.
Biztos bele lehet integralni a Smarty-t is a ZF-be.
En meg egy jQuery-s cikket szivesen fogadnek.

[ Szerkesztve ]

(#2) zhagyma


zhagyma
őstag

Jó kis írás. Annak idején sohasem volt időm / kedvem "belekukkantani" a smarty-ba, ezért számomra hasznos írás volt. Főleg most, hogy újra php-t kell használnom egy projekt erejéig.

(#3) ddekany


ddekany
veterán

Csak gyorsan átfutottam, szóval lehet hogy csak nekem maradt ki valami... de mintha a beszúrt értékek nem lennének HTML-kódolva ("<"-ből "&lt;", stb). Ha pedig így van, az elég súlyos hiba, és biztonsági rés. Amúgy template engine-knél ez tipikus tervezési hiba, hogy nem az az alapértelmezés, hogy HTML-kódolnak (HTML encode, HTML escape... ki hogy hívja). Gondolom a Smarty sem kivétel.

(#4) sutszi


sutszi
veterán

Üdv!

Jó kis ismertető...és a folytatásba szánt téma is felkeltette az érdeklődésem. Kíváncsian várom.

Üdv:
sutszi

Mondja, Mr. Babbage, ha rossz adatokat ad meg a gépnek, akkor is jó válasz fog kijönni belőle?" Képtelen vagyok felfogni azt az értelmi zavart, ami valakit egy ilyen kérdés feltevésére késztethet. - by Charles Babbage

(#5) nemmind1_85 válasza ddekany (#3) üzenetére


nemmind1_85
csendes tag

Szerintem ez nem hiba, ugyanis smarty-val nem csak html-t tudsz előállítani (bár alapvetően ez a feladata), de ha mégis ezt akarsz, akkor neked, vagyis a php programozónak kell gondoskodni a változók html kódolásáról is.
Ez szerintem hasonló probléma, mint amikor egy formon adsz meg adatokat, amit a db-be akarsz írni. Itt se azon kell filózni, hogy a html, php hibája hogy bele lehet írni sql parancsokat is, hanem a programozónak kell gondoskodni az sql injection védelemről.

(#6) Komondor


Komondor
csendes tag

Azt azért mindenképp szükségesnek tartanám hozzátenni, hogy bár a sablonrendszer használata köztelező mindazoknak akik nem akarnak felesleges pluszmunkát maguknak, de nem a Smarty az egyedüli megoldás.

Ha a webdesigner megbízható, nem külsős, akkor maga a php is tökéletesen jó sablonnyelv, hiszen eredetileg annak készült. Kódolási stílus és fegyelem kérdése, hogy a logikát és a megjelenítést elválasszuk egymástól.

(#7) ddekany válasza nemmind1_85 (#5) üzenetére


ddekany
veterán

Nekem az a határozott véleményem, hogy ez hiba, mivel egy template engine-ről van szó, aminek feladata nagy részben az, hogy változók értékeit szúrja be valamibe. Tehát azt elvárni, hogy manuálisan oldja meg az ilyen-olyan encoding-ot (pl. HTML kódolást) valaki, minden egyes beszúrásnál, ostobaság, és felesleges biztonsági kockázat (mert sokan sokszor ki fogják felejteni). Az, hogy ez mégis így van rengeteg template nyelvben egyszerűen annak köszönhető, hogy nem tudnak elrugaszkodni a készítők az általánosabb célú nyelvektől. DE, lehet, hogy Smarty-nak van erre megoldása, csak akkor kimaradt a cikkből.

Ami a többféle formátumot illeti, közölni kell a template engine-el hogy melyik template kimenete milyen formátumú, és kész. Pl. az alapértelmezés HTML, ha meg nem HTML-t generálunk, akkor meg kell adni template elején a formátumot... ilyesmik.

Az SQL injection egy jó példa arra, hogy hova vezet, ha nem próbálja megoldani a nyelv vagy a programozói könyvtár automatikusan az ilyen alacsony szintű problémákat. Soha sehol senkinek nem szabadott volna string összefűzéssel előállítani SQL parancsokat (OK, kivéve néhány extrém esetben), csak sablonokkal, pl ilyesmi: sql("SELECT id FROM something WHERE cat = ?", catVar). Itt is a sablon dolga, hogy biztosítsa az érték SQL szintaxisú "idézését", már ha egyáltalán valaha létrejön az SQL utasítás szövegként... lényeg hogy nem neked kell arra figyelni, hogy olyasmiket írjál, mint sql("SELECT id FROM something WHERE cat = " + sqlEsc(catVar)), ahol az sqlEsc-et nem ér kifelejteni.

[ Szerkesztve ]

(#8) nemmind1_85 válasza ddekany (#7) üzenetére


nemmind1_85
csendes tag

Utána néztem a dolognak, természetesen van rá megoldás:
van egy escape nevű módosító:

php:
$szoveg="<asdf&asdf>";
$smarty->assign("szoveg",$szoveg);

tpl:
{$szoveg|escape}

kimenet:
&lt;asdf&amp;asdf&gt;

hogy ne kelljen mindenhova kiírni az "|escape" szöveget, megadhatjuk automatikus módosítónak ezt a php-ben

$smarty->default_modifiers=array("escape");

ja és bug vagy nem bug helyett inkább bug vagy feature :D

(#9) ddekany válasza nemmind1_85 (#8) üzenetére


ddekany
veterán

Na, szerintem erről érdemes lenne írni a cikkben, annál is inkább mert enélkül a példák is hibásak. Amiről még érdemes lenne írni, hogy default_modifiers=array("escape") esetén hogy lehet escaping nélkül kiírni dolgokat (mikor egy változó szándékosan HTML-t tartalmaz), ill. el lehet-e elkerülni dupla escape-olást (mikor a template szerzője nem tudta, hogy nálad automatikusan escape-olás van, ezért ${...|escape}-t használt)... ezek a tipikus escape-s template szívások Smarty-től függetlenül.

[ Szerkesztve ]

(#10) burgatshow válasza nemmind1_85 (#8) üzenetére


burgatshow
veterán

Szia!

Grat az íráshoz. Nyilvánvaló, hogy aki még nem dolgozott Smarty-val, az fel sem tudja fogni, hogy mekkora erő és hatalom van ebben a rendszerben.

Én is készülök írni egy írást, csak az a saját form építő pluginom-ról fog szólni. :)

(#11) Blaise


Blaise
veterán

Jó cikk :R

Engem nagyon érdekelne egy cikk a mai PHP keretrendszerek összehasonlításáról (Zend Engine, Cake PHP stb)

(#12) Blaise válasza Blaise (#11) üzenetére


Blaise
veterán

szerk: Zend Framework-öt akartam írni

(#13) tgabi333


tgabi333
tag

Köszi, jó írás, tetszik

csak annyi lenne a megjegyzésem, hogy nem fejlesztői eszköz, hanem [fejlesztői] könyvtár.

(#14) Protezis válasza szimeonov (#1) üzenetére


Protezis
őstag

Bele lehet rakni a smarty-t a Zend-be, de nem ajánlom. Egy évig smartyztam, csak probléma volt vele, semmi előnyt nem tapasztaltam. Indokaim:
- Sok - a Zend_View-ba épített - lehetőség körülményesen, vagy egyáltalán nem használható smartyval.
- Az alkalmazás logikát nélküle is szét lehet választani, erre gyönyörű példa a ZF ( és még lehet lehet további rétegeket is használni ). Úgyhogy ez egyáltalán nem előny.
- Sok fejlesztőeszköz nem támogatja, legjobb esetben csak kódszínezést érsz el velük. (Ecplise plug-in van, jó régi, nem működik; Zend Studio szintúgy, PHPed színezi)
- Rengeteg esetben kapsz smarty hibát, ami persze nem a smarty hibája, csak épp irtóra megnehezíti a debuggolást.
- Plusz CPU idő.
- Ha kicsit "furmányos" dolgot akarsz művelni, felkötheted a gatyát. Olyan apróságról beszélek, mint amikor mondjuk két változó értékének konkatenációja adja az elérendő elem kulcsát egy tömbben, és hasonlók.

Egy MVC mintát használó keretrendszerbe értelmetlen dolog belerakni bármelyik template rendszert.

[ Szerkesztve ]

(#15) Panther


Panther
HÁZIGAZDA

Ez biztosan helyes? {$smarty.post.page} ugyanaz, mint $_GET['post']

[ RIOS Release 5 – multiportal engine by Panther ]

(#16) szimeonov válasza Protezis (#14) üzenetére


szimeonov
tag

Igazad van, en is csak azt mondtam hogy bele lehe rakni.
ZF-el foglalkozol komolyabban?

(#17) Protezis válasza szimeonov (#16) üzenetére


Protezis
őstag

Igen, dolgoztam egy-két nagyobb ZF-es projektben.

(#18) burgatshow válasza Panther (#15) üzenetére


burgatshow
veterán

Nem tutira elírta. :D

Az a $_POST['page']-val egyenerteku,

(#19) burgatshow válasza Protezis (#14) üzenetére


burgatshow
veterán

Nem akarsz te is írni valami jó ehhez hasonló cikket írni a ZF-ről. Engem komolyabban is érdekelne a ZF, csak ahhoz nagyon bele kéne ásni magam, amire nem nagyon van idő, hogy mindent ki tudjak használni belőle. :)

(#20) nemmind1_85 válasza burgatshow (#18) üzenetére


nemmind1_85
csendes tag

bocs, javítottam.

Amúgy a keretrendszerek közül inkább a codeigniterrel foglalkoztam, erről majd fogok írni, ha van rá érdeklődés.
Egy ZF cikk engem is érdekelne

(#21) Protezis válasza burgatshow (#19) üzenetére


Protezis
őstag

Vizsgaidőszak után ( jövő hét után ) lehet írok egy bevezető jellegűt, aztán ha lesz rá igény, esetleg folytatása is lesz.

(#22) lezso6 válasza Protezis (#21) üzenetére


lezso6
HÁZIGAZDA
LOGOUT blog

Az nekem is jól jönne. :R
Most éppen nézegetem mit is tud ez a ZF, mert amúgy már egy éve kb csinálom a saját frameworkömet, kisebb nagyobb sikerekkel - itt azon van hangsúly, hogy könnyen kezelhető legyen, gyorsan lehessen pl relációs adatbázist varázsolni - ez a ZF meg elsőre elég bonyolultnak tűnik... :B De biztos jó, hisz elég sokan használják, s az enyém a közelébe se ér :DDD

nemmind1_85: Grat a cikkhez! :) Már alig vártam, hogy végre valaki írjon webprogramozásról. :K

[ Szerkesztve ]

A RIOS rendkívül felhasználóbarát, csak megválogatja a barátait.

(#23) burgatshow válasza nemmind1_85 (#20) üzenetére


burgatshow
veterán

Azt en is nezegettem korabban, de amikor szoba kerult, akkor annyira keves ido allt a rendelkezesemre, hogy inkabb hanyagoltam az akkori projektben, azota meg nem foglalkoztam vele, valahogy mindig kimaradt.

De ettol fuggetlen a johet majd a cikk. :)

(#24) skrabi


skrabi
senior tag

Helo!

azt szeretném kérdezni, hogy kell beilleszteni .vbs kiterjesztésű scriptet a honlapra, hogy online lefusson?

sejtem, hogy nem a legjobb helyre írtam, de nem találtam más webszerksztéssel kapcsolatos topikot...

[ Szerkesztve ]

18:43 [PDenton91] nem cigány hülyék, hanem roma http://www.facebook.com/skrbkphoto

(#25) pisti@


pisti@
csendes tag

Sziasztok!

Honlapom szerkesztéséhez keresek, smartyban jártas, webmestert!!! :W :R :Y :C :DD

(#26) pisti@


pisti@
csendes tag

:))

(#27) pisti@


pisti@
csendes tag

:DD

Copyright © 2000-2024 PROHARDVER Informatikai Kft.