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?
- 1214 megtekintés
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ó? :-)
- A hozzászóláshoz be kell jelentkezni
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! :)
- A hozzászóláshoz be kell jelentkezni
Bírom ezt amikor valaki félreértésből pl. a táblázatokat is div-ekből akarja felépíteni...
Ha ez egy feladat, valószínűleg az a lényeg hogy ne html elemeket echo-zz ki hanem használj dom elemeket. Csak semmi túlzás...
- A hozzászóláshoz be kell jelentkezni
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! :)
- A hozzászóláshoz be kell jelentkezni
Nem tudom mit akarnak de valószínűleg nem akarják hogy úgy építs fel egy html oldalt hogy
echo "<html><body><div>...";
stb..
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
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! :)
- A hozzászóláshoz be kell jelentkezni
ez azt jelenti hogy ne keverj ossze php kodot html "koddal" (tagekkel). Foleg azt akarja veled elkerultetni hogy a html filejaidban phpval echozz ki html dolgokat.
- A hozzászóláshoz be kell jelentkezni
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! :)
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
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! :)
- A hozzászóláshoz be kell jelentkezni
meg szabad kerdezni hogy ez a "kovetelmenyleiras" honnan szarmazik? (marmint ez valami melo, vagy valami tanintezmeny?)
- A hozzászóláshoz be kell jelentkezni
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! :)
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
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! :)
- A hozzászóláshoz be kell jelentkezni
"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.
- A hozzászóláshoz be kell jelentkezni
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! :)
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
Szerintem a mysql jelszóra gondolt.
A session is fájlból olvasódik, úgyhogy szerintem nem spórolsz sokat.
Amúgy ezt include-al szokták megoldani,(config.php-ban van egy $mysql_pass=[password] beállítás, utána include php) de nem tudom hogy ezt neked szabad-e.
- A hozzászóláshoz be kell jelentkezni
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! :)
- A hozzászóláshoz be kell jelentkezni
É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.
- A hozzászóláshoz be kell jelentkezni
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! :)
- A hozzászóláshoz be kell jelentkezni
Annyi hátulütője lehet ennek, hogy a SESSION-ban hagyományosan az user dolgait szokás tárolni, így struktúrálisan kicsit igénytelen lesz a program.
- A hozzászóláshoz be kell jelentkezni