InterMatrix

Dinamikus Web-oldalak programozásának alapja

Egy fiktív portálmotor felépítése, kipróbálása, letöltése egyszerűsített példákkal, forráskódokkal illusztrálva.

(Frissítve: 2009-12-11 20:27)

Szerver oldali PHP programozás lényege

A PHP vagy más CGI (Common Gateway Interface) programozásra épülő webes rendszerek (portálmotorok, web-áruházak, fórumok, híroldalak, blogok…) gyakorlatilag csak a tartalom formázására használják a HTML nyelvet. A szerver-program feldolgozza a PHP utasításokat, csak a generált HTML kimenetet küldi el a látogató böngészőjének. Az eredeti programkód kliens oldalról nem látható és nem is követhető vissza.

A PHP az egyik legelterjedtebb szerver-oldali kódnyelv, képes együttműködni a MySQL~ és egyéb adatbázis-kezelő rendszerrel, rugalmasan lehet integrálni HTML kódokba, vagy éppen HTML és egyéb kódokat generálni vele. Olyan feladatok végezhetőek el, amelyekre ügyféloldali szkriptek csak korlátozottan vagy nem is képesek, biztonságilag kockázatosak. Ilyenek például az űrlapok adategyeztetése és feldolgozása, fájlkezelő műveletek, adatfeldolgozás és adatbázis kezelés, adatokból dinamikus tartalom előállítása és rendezése, automatikus e-mail visszaigazolás stb. Egy igazi szerver-oldali alkalmazás, az integrált funkciók tudásának függvényében a munka ezen részét, emberi beavatkozás nélkül automatikusan végrehajtja.

A cikk a továbbiakban, egyszerűsített gyakorlati példával megpróbálja illusztrálni, a weben alkalmazott korszerű programozási megoldásokat, vezérlési algoritmusokat, melyek képesek a Web-oldalak intelligenssé tételének megvalósítására. Mindezt azok számára, akik kevésbé ismerik az Interneten ma alkalmazott technológiák mibenlétét. Részben inspiratív lehet egy bemutatkozó portál létrehozására.

Egy egyszerű dinamikus portálmotor felépítése

A Dinamikus Web-oldalak működésének alapja című oldal részletesebben tárgyalja az weboldalak szerkezeti felosztásával kapcsolatos okokat, miérteket, így erre most szükségtelen ismételten kitérni. A példák e korábbi cikktől eltérően csak a szükséges mértékben, minimálisan vannak tovább fejlesztve. Minden megváltozott állomány új elnevezést kapott, továbbá a minta oldalakat leszámítva, a teljes térkép, egy adat és egy feldolgozó fájl létrehozásával bővült.

 _________________
 | Közös fájlok: |
	|_____ adat fájl:........ data_file.txt
	|_____ feldolgozó:....... motor.php
	|_____ kezdő töredék:.... dinamic_head.php
	|_____ záró töredék:..... dinamic_foot.php
	|_____ stílus fájl:...... dinamic_sample.css
	|_____ háttérkép:........ bg_sample.gif
 __________________	
 | Minta oldalak: |
	|_____ Cím oldal:........ index.php
	|_____ Termékek:......... products.php
	|_____ Sikerstory:....... story.php
	|_____ Impresszum:....... impress.php

A közös fájlok a könnyebb érthetőség és áttekinthetőség kedvéért most nincsenek külön védett könyvtárba helyezve, de éles helyzetben mindenképpen ajánlott, mint ahogy a külső hozzáférést és listázhatóságot megakadályozni.

Közös fájlok

Minta oldalak

Az alábbi példákból kikövetkeztethető, hogy egy dinamikus internetes portál dizájnjának és vezérlésének megoldása után, igazából már csak a tatalom feltöltésre kell koncentrálni. Egy jó adminisztrációs felülettel kiegészítve, már egy átlagos informatikai tapasztalat is elegendő.

A fenti négy mintaoldalhoz hasonlóan (egy elképzelt nem létező vállalkozás internetes portálja), további oldalak hozhatók létre, persze a statikus tartalmat, helyenként dinamikussal is lehetne keverni, vagy éppen lecserélni. Megfigyelhető, hogy bármelyik oldalról ugyanúgy elérhető a többi másik.

Néhány szóban a kódolás formázásáról

Dinamikus technológiák használatánál rendkívülien fontos, hogy az esetlegesen közbecsúszott hibákat gyorsan kell kijavítani, mert minden oldal rosszul fog működni, vagy tönkre megy, ahol a hibás kód jelen van.

A forráskódok formázása behúzással, sortöréssel, új sorok beszúrásával történik. A kódok angol nyelvű kifejezéseket tartalmaznak, bonyolultabb kódoknál angol nyelvű megjegyzések segítik a programozó eligazodását, melyet a világ minden területén megértenek, ami következésképpen azt jelenti, hogy egy távolkeleti programozó is épp úgy ki tudja javítani a programhibákat mint egy magyar.

Érdemes böngészőből sorra megnézni, összehasonlítani a négy megnyitott példa-oldal forráskódját, elemezni, megkeresni a dinamikus, valamint statikus részeket és megsaccolni a még csak kezdetlegesnek mondható portál-motor által elvégzett munka mennyiségét.

A kódok letöltése kipróbálásra.

LAMP szerver
(Frissítve: 2011-07-03 12:38)
Linux Apache MySQL PHP

A legtöbb tárhelyszolgáltató UNIX (Linux) alapú szervert működtet, éppen ezért érdemes minél jobban megismerni. Jól működő weboldalak elengedhetetlen kelléke, a fejlesztőgépen való tesztelés lehetősége, asztali…

VirtualHostok
(Frissítve: 2012-01-28 09:12)
Linux Apache Virtual Host

A teszt szerver kialakítása cikk alapján, remélhetőleg egy működő HTTP kiszolgáló rendszert hoztunk létre. A rendszer, ugyan működik, de sok mindenre ebben a formában még nem alkalmas, nehezen kezelhető. Gondoljunk csak…

phpMyAdmin
(Frissítve: 2010-04-12 12:07)
phpMyAdmin

A phpMyAdmin, MySQL adatbázisok internetes menedzselésére PHP nyelven írt grafikus felületű eszköz, mely támogatja a leggyakrabban használt adatbázis műveleteket: adatbázisok kezelése, táblázatok, mezők, kapcsolatok, indexek,…

Apache biztonság
(Frissítve: 2011-06-03 08:14)

Amint egy bármilyen számítógép internetes hálózatra kapcsolódik mindig fenn áll a veszélye, hogy valaki(k) adatokat próbálnak megszerezni, vagy még ezen is túl, megszerezni a számítógép irányítását. Példának okáért az…

.htaccess védekezés
(Frissítve: 2011-10-05 22:55)

A webszerverek különböző sorszámú kódokat küldenek a HTTP munkameneteknek, amelyek naplózási adatokból visszakövethetőek és biztonságtechnikailag felhasználhatóak. Egy részük a fellépő hibákra utalnak, míg más részük a…

PHP–MySQL statisztika
(Frissítve: 2012-02-02 13:52)
Operációs rendszerek megoszlása

Bármely web-oldal életképességének sikere megköveteli a folyamatosan változó látogatói tendenciák követését, a kliensektől érkező információk olyan elemzését, amely konstruktívabb következtetések levonására képeznek…