A PHP programozási nyelv

Példaprogramok

1. Dátumellenőrzés

Feladat:
Reguláris kifejezések felhasználásával ellenőrizzük le, hogy a felhasználó által megadott dátum valóban dátum-e! Elég az 1900. jan. 1. és 2100 dec. 31. közti dátumokat ellenőrizni.

datum.zip .

Szerző neve: Karácsony Orsolya
Készítés éve: 2008.

2. Fórum

Feladat:
Készítsünk internetes fórumot! Először kérjük be a felhasználónevet és a jelszót, majd ellenőrizzük azok helyességét. A beléptetés után jelenjenek meg a korábbi hozzászólások; a legújabb legfelül - és természetesen legyen lehetőség hozzászólásra és kilépésre. Jegyezzük meg az adatokat a böngésző bezárása esetén (session-ök használata).

forum.zip .

Szerző neve: Karácsony Orsolya
Készítés éve: 2008.

3. Pizzarendelés

Feladat:
A jól ismert pizzarendelő oldalakhoz hasonló létrehozása, minél több lépésben, az információ eltárolásával. Oldjuk meg, hogy ne csak adott számú pizza közül lehessen választani (a pizzák száma ne legyen beégetve a kódba).

pizza.zip .

Szerző neve: Karácsony Orsolya
Készítés éve: 2008.

A táblát létrehozásához szükséges SQL-parancsok:

CREATE TABLE php_users (
name VARCHAR NOT NULL,
password VARCHAR NOT NULL,
CONSTRAINT php_users_primary PRIMARY KEY(name)
);
CREATE SEQUENCE php_orders_seq INCREMENT BY 1 MINVALUE 1 NO MAXVALUE START WITH 1;
CREATE TABLE php_orders (
id BIGINT NOT NULL DEFAULT nextval('php_orders_seq'::regclass),
"user" VARCHAR NOT NULL,
address VARCHAR,
CONSTRAINT php_orders_primary PRIMARY KEY(id)
);
CREATE TABLE php_order_items (
order_id BIGINT NOT NULL,
pizza_id BIGINT NOT NULL,
amount INTEGER DEFAULT 0,
CONSTRAINT php_order_items_primary PRIMARY KEY(order_id, pizza_id)
);
CREATE SEQUENCE php_pizzas_seq2 INCREMENT BY 1 MINVALUE 1 NO MAXVALUE START WITH 1;

CREATE TABLE php_pizzas2 (
id BIGINT NOT NULL DEFAULT nextval('php_pizzas_seq2'::regclass),
name VARCHAR,
price INTEGER,
CONSTRAINT php_pizzas_primary PRIMARY KEY(id)
);
INSERT INTO php_pizzas (name, price)
VALUES ('Hawaii', 900);
INSERT INTO php_pizzas (name, price)
VALUES ('Pepperoni', 1100);
INSERT INTO php_pizzas (name, price)
VALUES ('Prosciutto', 1200);
INSERT INTO php_pizzas (name, price)
VALUES ('Margherita', 800);

4. Notesz

Feladat: Webes felülettel rendelkező feljegyzés-gyűjtemény készítése. A felhasználónak a regisztráció, majd a belépés után lehetősége van feljegyzéseket készíteni, ill. a régieket megtekinteni és törölni. A feljegyzések adatbázisban tárolandóak. A példaprogram elérhető itt:
notes.zip

Szerző neve: Hackspacher Tamás
Készítés éve: 2010.

5. Vizsgáztató Rendszer

Feladat:
Készítsünk Vizsgáztató Rendszert.

Admin-ként belépve lehessen felhasználóneveket/kategóriákat/nyelveket létrehozni/kezelni, nehézségi fokot, helyes válaszok darabszámát beállítani, kérdés-felelet tesztsort rekordonként beírni, adatokat módosítani, törölni, lekérdezni.

vizsga.zip

Szerző neve: Halmos Tamás Kristóf
Készítés éve: 2009.

6. Polimorf PHP

Az objektum-orientált fejezetében taglalt polimorf problémákra nyújt megoldást a programom.
A program Bluefish szerkesztőben készült és 5.2.6 vagy magasabb verziójú php-vel futtatható.

polyphp.zip.

Szerző neve: Antyipin Artyom Szergejevics
Készítés éve: 2009.

7. Filefeltöltő

Feladat:
Készítsünk filefeltöltő rendszert a programozási nyelvek kezeléséhez! Először kérjük be a felhasználónevet és a jelszót, majd ellenőrizzük azok helyességét. Amennyiben a bejelentkezett felhasználó nem adminisztrátor jogosultságú, a beléptetés után jelenjenek meg a felhasználó korábbi feltöltései. Legyen lehetőség újabb file-ok feltöltésére ZIP-pel tömörített formátumban, lehessen törölni a feltöltött file-okat, illetve a feltöltött anyag megtekintésére egy már kész XML-parser használatával. A munka befejezése után legyen lehetőség a kijelentkezésre.

Amennyiben a felhasználó adminisztrátori jogosultsággal rendelkezik, az összes felhasználó által feltöltött file-t listázza ki.

uploader.zip .

Szerző neve: Halmos Tamás Kristóf
Készítés éve: 2010.

8. Fotómegosztó

A cél olyan fotósoldal készítése volt, ahová a felhasználók feltudnak tölteni képeket (vagy más file-okat).
A felhasználók regisztrálás után be tudnak lépni az oldalra, ahol lehetőségük van fotókat feltölteni vagy böngészni a feltöltött képek között.
Saját fotó estén a rendszer biztosítja az átnevezési lehetőséget.
Amennyiben a felötlött file (kép) publikusnak lett megjelölve feltöltéskor, akkor azt minden felhasználó láthatja, ellenkező esetben csak a feltöltő vagy az adminisztrátori joggal rendelkező felhasználók érheti el az adott file-t. A könnyebb átláthatóság végett a fényképek a lekicsinyített formátumban jelennek meg. A rendszer kereshetővé teszi a képeket a feltöltött file neve alapján.
Amennyiben a felhasználó adminisztrátori jogosultsággal rendelkezik, az összes felhasználó által feltöltött file-okat listázza ki. Továbbá az adminisztrátori joggal rendelkező felhasználók adminisztrátori jogot adhatnak más felhasználóknak.

A megjelenítés Smarty 2.6.22 segítségével történt, míg az adatok MySQL adatbázisban tárolódnak.
Az átirányítást az Apache web-szerver Rewrite modulja segítségével történik. A program működéshez szükséges a következő adattáblák létrehozása:

CREATE TABLE Users( UserID int not null auto_increment, UserName VARCHAR(32), PassWord VARCHAR(32), IsAdmin int DEFAULT 0, PRIMARY KEY (UserID) ) CREATE TABLE Files( FileID int not null auto_increment, FileName VARCHAR(255), FOREIGN KEY (UserID) REFERENCES Users(UserID), FileSize int not null, Mime VARCHAR(255), UploadTime DATETIME, Public int DEFAULT 0, PRIMARY KEY (FileID) )

photoshare.zip

Szerző neve: Kerti Csaba
Készítés éve: 2011.

9. Süti Kezelő

A feladat olyan program készítése volt, ami sütiket tud létrehozni, módosítani és törölni.
Illetve meg tudja jeleníteni a SütiKezelővel egy tárhelyen levő más php oldalak által létrehozott sütiket is (de törölni például nincs joga azokat).
Funkciók listája:

sutikezelo.zip

Szerző neve: Fekete György
Készítés éve: 2011

10. BigBrother

A feladat a következő volt:
A littlebrother.php-ben levő modulok lefutásáról a program bejegyzést készít a MYSQL adatbázisba, mely bejegyzéseket a bigbrother.php programmal tekinthetünk meg.
A littlebrother.php program a következőket tudja:

A bigbrother.php sessiononként megmondja, hogy

Az adatok MySQL adatbázisban vannak eltárolva. MYSQL tárhelyről a felhasználónak kell gondoskodnia.
A program működéséhez ezen adattáblák létrehozása szükséges:

CREATE TABLE bigbrotherlog( logid int NOT NULL auto_increment, ip VARCHAR(15), sessionid CHAR(32), modul int, client VARCHAR(255), mikor DATETIME, PRIMARY KEY (logid) );

bigbrother.zip

Szerző neve: Fekete György
Készítés éve: 2011

11. Időjárás megjelenítő

A feladat olyan program készítése volt, mely képes a Yahoo weather szolgáltatás adatait megjeleníteni.
Funkciók listája:

weather.zip

Szerző neve: Tornóczky Zoltán
Készítés éve: 2011

12. Teendő kezelő

A feladat olyan oldal létrehozása volt, amin a felhasználó tudja kezelni a teendőit.
Funkciók:

todos.zip

Az oldal futtatásához HTML5-öt támogató böngészó ajánlott (pl. Opera 11.61)

Szerző neve: Horváth Péter
Készítés éve: 2012

13. Piac

A feladat egy piactér elkészítése volt, ahol a játékosok valósidőben tudnak nyersanyagokkal kereskedni. A feladat megoldásában szempont volt:

A programhoz tartozik egy felhasználó kezelő rész. Az adatbázis 4 táblából áll, ezek sémája a csomagban database.sql néven elérhető. A program Mysql adatbázis kezelő rendszerrel való kapcsolatra van felkészítve.

A program nyomokban JavaScriptet tartalmaz!

A beüzemeléshez a következő lépések szükségesek:

  1. Mysql adatbázis feltöltése a mellékelt táblákkal
  2. modul.php kitöltése az adatbázishoz kapcsolódás szükséges paramétereivel
  3. Opcionális: Phpmailer osztály beszerzése és az index.php mellé rakása után a felhasználó kezelő rész képessé válik smtp-n keresztül felhasználók megerősítésére, illetve elfelejtett jelszó visszaállítására.

piac.zip

Szerző neve: Rutkai András
Készítés éve: 2012.

14. TTF Text

A feladat, hogy egy honlapon dinamikusan, tetszőleges betűtípussal tudjunk akár többsoros szöveget képként kiíratni. A fájl két GET paramétert vár:

A betűtípus, a betűszín és a maximális szélesség be van égetve a kódba. A kimenet átlászó hátterű, élsimított PNG kép: a program nem fájlba ír.

A tördelés szavanként történik, illetve ha egy szó nem fér ki, az az utolsó betűnél törik meg, ami még kifér.

A hívás módja: http://localhost/ttftext.php?text=Lorem ipsum dolor sit amet&size=24

Megjegyzés: a HTML5 szabvány már natívan támogatja a saját betűtípusok használatát, így a feladat megoldására valós alkalmazások esetében ezen program használata nem ajánlott.

ttftext.zip

Szerző neve: Piri Zoltán
Készítés éve: 2012.

15. Login

A feladat egy bejelentkezés kezelő alkalmazás. Az alkalmazás a felhasználókat és jelszavaikat adatbázisban tárolja. A jelszavakat titkosítva tároljuk a biztonság érdekében.

Az alkalmazás MySQL adatbázis használ, és a működéséhez egy táblára van szükség:

CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user` varchar(20) NOT NULL, `password` varchar(34) NOT NULL, PRIMARY KEY (`id`) );

A beüzemeléshez a következő lépések szükségesek:

  1. Mysql adatbázis feltöltése a mellékelt táblával
  2. db.php kitöltése az adatbázishoz kapcsolódás szükséges paramétereivel

login.zip

Szerző neve: Illés Zoltán
Készítés éve: 2012

16. Recept

Az alkalmazás az MVC keretrendszer használatát hivatott bemutatni PHP programok esetében és a CodeIgniter nevű keretrendszer segítségével készült.
Lehetővé teszi egy adatbázisban tárolt receptek kezelését a következő funkciókkal: receptek keresése, új recept hozzáadása, saját szakácskönyv összeállítása SESSION-ben tárolt információk alapján.

Az alkalmazás működéséhez szükség van ci/application/config/database.php fájl megfelelő kitöltésére, az adatbázishoz való csatlakozáshoz és ebben az adatbázisban a következő tábla létrehozására.

CREATE TABLE IF NOT EXISTS `Recipes` ( `id` int(11) NOT NULL auto_increment, `Name` varchar(50) character set ucs2 NOT NULL, `Time` varchar(50) character set ucs2 NOT NULL, `Difficulty` int(11) NOT NULL, `Ingredients` varchar(500) character set ucs2 NOT NULL, `Instructions` varchar(1500) character set ucs2 NOT NULL, `Added` int(11) NOT NULL, PRIMARY KEY (`id`) )

recept.zip

Szerző neve: Hodosy Gábor
Készítés éve: 2012

17. Mátrixműveletek weboldal

Feladat:
A honlap célja az alapvető mátrixműveletek megvalósítása PHP segítségével, hogy a felhasználó könnyen, csupán az adatok megadásával megkaphassa az eredményt.

A következő műveleteket valósítottam meg:

matrix.zip

Szerző neve: Mari Dániel
Készítés éve: 2013

18. Adatbázis-kezelő weboldal

Feladat:
A weboldal egyszerű adatbázis-műveletek tesztelésére ad lehetőséget, mint beszúrás, módosítás, törlés.
Érvénytelen vagy értelmetlen utasítások esetén figyelmezteti a felhasználót.

A működéshez adatbázis-kapcsolat és egy teszttábla ("teszt") szükséges, benne egy kulcs ("id") és egy érték ("nev") oszloppal.

adatbazis.zip

Szerző neve: Pápai Dávid
Készítés éve: 2013

19. MVC Blog minta

Feladat:
A kód egy egyszerű MVC mintára épülő blog motor alap, modern frameworkok felhasználásával.

A használatához egy adatábázisra van szükség, ennek nem feltétlenül kell MySQL-nek lennie a RedBean több rendszert is támogat. Az adatbázis létrehozó script a "web1.sql" fájlban található, az adatbázis konfigurációt a gyökérkönyvtárban található "index.php"-ban lehet beállítani az "R::setup()" függvényben. (ez a PHP PDO-s formát követi.)
Ha nem a localhoston futtatjuk, akkor a "config.ini"-ben a "PROJECTBASEURL"-t is szükséges még az aktuális helyre állítani.

Egy nagyon alapszintű felhasználói jogosultság kezelés is van a rendszerben, ha azt szeretnénk, hogy többen is tudjanak bejegyzést készíteni, akkor az adatbázisban a "user" táblában a megfelelő felhasználó "rank"-ját 1-re kell állítani, az alapértelmezett 0-ról.

micro_web_blog_mvc.zip

Szerző neve: Radics Gergely
Készítés éve: 2014

20. Bejegyzés adminisztráció Yii keretrendszerben

Feladat:
Egy egyszerű bejegyzés admiinisztrációs oldal tartalmaz a példa Yii keretrendszerben, bootstrap extension-nel. Lehetőség van bejegyzéseket létrehozni, megtekeinteni, szerkeszteni, és törölni.

A használathoz létre kell hozni a "post" táblát, melynek attribútumai:

Egy alapszintű felhasználói jogosultság kezelés is van a rendszerben. admin/admin felhasználónév jelszó párral be lehet lépni.

post.zip

Szerző neve: Bónis Balázs
Készítés éve: 2014

21. Egyszerű webshop

Feladat:
Egy nagyon egyszerű webshop motor. Tökéletes minthafeladat azoknak, akik most kezdenek el a PHP-val ismerkedni. Ha admin néven vagyunk bejelentkezve termékeket vihetünk fel a rendszerbe, amelyeket kategóriákba sorolhatóak. A oldalon felhasználók regisztrálhatnak, majd bejelentkezés után elemeket adhatnak hozzá a kosarukhoz, amelyeket később megvásárolhatnak. A program kizárólag az alap PHP-s technológiákat használja, bemutatja a PHP alapjait, mint fájlkezelés, SESSION kezelés, oldalak generálása stb. Illetve használ néhány, a webes világban alapvető megoldást, mint a jelszavak hash-elése, illetve a JSON kódolás.

webshop.zip

Szerző neve: Lipp Marcell
Készítés éve: 2014

22. MVC Controller

Feladat:
Rugalmas és robosztus Controller megvalósítása az MVC minta alapján.

controller.zip

Szerző neve: Zvara Zoltán
Készítés éve: 2014

23. Karakterkódolás konverter

Feladat:
Egy feltöltött szöveges fájl karakterkódolásának a megváltoztatása

convert.zip

Szerző neve: Konkoly Dávid
Készítés éve: 2014