php + dom - echo mellozese (megoldva)

A cel: a PHP beolvas egy HTML sablont, a kivant reszekre behelyettesiti a megfelelo tartalmat, majd a user kepebe tolja a produktumot. Ez utobbi megkotese, hogy ne hasznaljuk az echo parancsot. Gondoltam akkor majd megoldom DOM-mal, viszont nem ertem igazan a mukodeset. A kovetkezo kodot alkottam, de valami nagyon nem akarozik mukodni, mert semmi sem jelenik meg az oldalon:

$html = new DOMDocument();
$temp = $html->createTextNode("bla");
$html->appendChild($temp);

Egy masik lehetoseggel is probalkoztam - szinten eredmenytelenul:

$html = DOMImplementation::createDocument(null, 'html'); //, $doctype
$temp = $html->createTextNode("bla");
$html->appendChild($temp);

...bar igaz, ezt a DOMImplentation-t nem igazan tudom, hogy miben kulonbozik a DOMDocument-tol...

Nos, a kerdesek:
Mi a baj a koddal?
Vagy van-e mas lehetoseg az echo mellozesere?

Hozzászólások

A fenti kód jó, csak kevés, a $html objektumodtól még el kell kérned a tartalmát, pl a saveXML() metódusával, amit aztán meg kell jelenítened...

Csak az echo-t akarod mellőzni, és a print pl jó? :-)

Igazsag szerint mindennemu echo es print hasonmast ki kene hagyni, viszont nem tudom, akkor hogy gondoltak - talan a HTML header-t kene manipulalni? Mindenesetre egy echo meg csak elfer... :\ De koszonom a valaszt, mostmar mukodik. :) Egyebkent HTML-ben kell megcsinalni, nem XML-ben, de gyanus, hogy a $html->saveHTML() mukodni fog... :P
--
Azt akarom, hogy az emberek ne kenyszerbol tanuljanak, hanem azert, mert tudni akarnak.
Ui.: Kezdo Linux-os vagyok, emberi nyelven valaszoljatok! Koszi! :)

HTML elemek alatt mit ertesz? Es miert kerik, hogy ne echo-t hasznaljak? Mi a kulonbseg az echo es a szamomra-ismeretlen-modszer kozott?
--
Azt akarom, hogy az emberek ne kenyszerbol tanuljanak, hanem azert, mert tudni akarnak.
Ui.: Kezdo Linux-os vagyok, emberi nyelven valaszoljatok! Koszi! :)

amennyiben nincs e betu a klavodon hasznald a print parancsot :))

dom-ot akkor hasznalnak amikor mar nem kell/lehet server oldali programot futtatni. Az hogy a php mire hasznalja a dom-ot fogalamam sincs, nem ismerem atfogoan a technologiat.

Szamomra a dom egyertelmuen jobban kapcsolodik a javascript-hez mint a php-hez.

leirhatnad miert van ez a kikotes mert erdekel.

En is a JavaScript-hez kapcsolom inkabb a DOM-ot, de akkor mit jelent ez a kikotes:

"A .php fájlok (és a sablonok) ne tartalmazzanak html részeket (ne kapcsolgasson oda-vissza html-ből php-ba). Az echo és a print utasítást sem kellene használni PHP-ből a html tag-ek kiíratására."
--
Azt akarom, hogy az emberek ne kenyszerbol tanuljanak, hanem azert, mert tudni akarnak.
Ui.: Kezdo Linux-os vagyok, emberi nyelven valaszoljatok! Koszi! :)

Ezek szerint ha fogom a sablon, beolvasom egy valtozoba, kicserelem a megfelelo reszeket es echo-zom a valtozot, az valszeg nekik is klappolni fog?
--
Azt akarom, hogy az emberek ne kenyszerbol tanuljanak, hanem azert, mert tudni akarnak.
Ui.: Kezdo Linux-os vagyok, emberi nyelven valaszoljatok! Koszi! :)

Igen, valoszinuleg.
Szerintem baromira tulbonyolitod a dolgot a DOMozassal raadasul akkor a php oldalarol lesz vezerelve meg az is hogy mit hova rakjon ki. Ha valami tok egyszeru megoldas kell arra hogy ne keverd a kettot akkor siman csinalj egy html filet, rakjal bele valamilyen specko tageket, (pl "<p>{ide_jon_vi_dinamikus_dolog}</p>") phpbol olvasd be a filet, cserlegesd ki a tageket str_replaceel, vagy preg_replace-el es nyomasd ki az eredmenyt.

Pontosan ezt akartam eredetileg, de megzavart a 'ne hasznaljunk echo-t' kitetel. Koszi a segitseget, mar tisztan latok. :)
--
Azt akarom, hogy az emberek ne kenyszerbol tanuljanak, hanem azert, mert tudni akarnak.
Ui.: Kezdo Linux-os vagyok, emberi nyelven valaszoljatok! Koszi! :)

Igazabol egy melo alkalmassagi vizsgaja, es tudom, hogy kicsit csalok azzal, hogy itt kerek segitseget, de igazabol melo kozben is valahonnan megszerzik az emberek a tudast - es miert ne lehetne mas emberektol megkerdezni, amit nem tudunk?
--
Azt akarom, hogy az emberek ne kenyszerbol tanuljanak, hanem azert, mert tudni akarnak.
Ui.: Kezdo Linux-os vagyok, emberi nyelven valaszoljatok! Koszi! :)

Ne haragudj, de ezek utan nem irigylem a munka adot. Ez tipikus template kezeles lenne, amihez vannak kesz cuccok is pl. smarty. De ha MVC modelt hasznalsz, akkor is a view kulon lesz, tehat oda nem kerul echo "bla bla". Itt szerintem ezt teszteltek hogy ilyeneket ismersz -e, mert ez inkabb program tervezes mintsem programozas maga.

Nem hasznalhatunk elore gyartott kornyezetet... De igen, azt hiszem egy MVC rendszert kell osszedobni, ezert is van html sablon, adatbazis es php.
--
Azt akarom, hogy az emberek ne kenyszerbol tanuljanak, hanem azert, mert tudni akarnak.
Ui.: Kezdo Linux-os vagyok, emberi nyelven valaszoljatok! Koszi! :)

"dom-ot akkor hasznalnak amikor mar nem kell/lehet server oldali programot futtatni."

Ez így khm nem teljesen helytálló kijelentés...

Képzelj el egy olyan rendszert mondjuk, ami futása alatt összerak egy dom dokumentumot, majd a végén egy XSLT transzformációval csinál belőle valamit, amit épp szeretnél, mondjuk XHTML-t, vagy ugyanannak egy nyomtatható verzióját, vagy RSS-t belőle, stb. Ez az egész történhet a szerveren is.

Egy elég rugalmas templating rendszert lehet belőle építeni.

Meg egy kerdes: $_SESSION-ben tarolni peldaul egy jelszot nagy hulyesegre vall? Ugyanis a MySQL adatbazishoz ugye minden oldallehivasnal kapcsolodni kell, ehez viszont jelszo szukseges, amit fajlbol olvasok be, de meg akarom sporolni a fajlolvasas idejet.
--
Azt akarom, hogy az emberek ne kenyszerbol tanuljanak, hanem azert, mert tudni akarnak.
Ui.: Kezdo Linux-os vagyok, emberi nyelven valaszoljatok! Koszi! :)

Sessionban ne azt tárold, hogy mi a jelszava, hanem tárolj egy userID-t. De ajánlott még hozzá valami böngészőfüggő adatot is tárolni (pl IP + user agent) és azt validálni, hogy valóban ugyanaz-e az user, mint aki bejelentkezett (session lopás ellen véd valamennyire).

----------------
Lvl86 Troll

Igen, szabad, sot: kotelezo fajlbol olvasni a konfiguraciot, viszont mivel a fajlban TAB-bal vannak elvalasztva a valtozonevek az ertekekol, es kommentelni is lehet benne, igy egy ertelmezot kell rauszitani, ami viszont emeszti az eroforrasokat. Ezert gondoltam, hogy mikor valaki fellep az oldalra, egyszer lefut a konfig, utana nem kell vele torodni - csak nem tudom, biztonsagos-e $_SESSION-ben tarolni a jelszot. Vegulis a user nem fer hozza, mert a szerveren van, de fene tudja, nem vagyok webguru.
--
Azt akarom, hogy az emberek ne kenyszerbol tanuljanak, hanem azert, mert tudni akarnak.
Ui.: Kezdo Linux-os vagyok, emberi nyelven valaszoljatok! Koszi! :)

Én úgy gondoltam hogy az értelmező maga a php motor.(include a php motornak szól)

Az már egy másik dolog, ha php-n belül kell egy értelmezőt futtatni ami beolvas egy fájt. Ha ez a feladat akkor gyorsíthat a session, és nem hiszem hogy csökkentene a biztonságon, hiszen a mysql jelszót úgyis fájlban szokták tárolni. A session is egy fájl.

Azt hiszem kicsit felreertettem a feladatot: itt is az 'include'-ot emlegetik, en meg irtam ra egy konfig-olvaso fuggvenyt. :D Koszi a segitseget, mostmar menni fog. :)
--
Azt akarom, hogy az emberek ne kenyszerbol tanuljanak, hanem azert, mert tudni akarnak.
Ui.: Kezdo Linux-os vagyok, emberi nyelven valaszoljatok! Koszi! :)