Ha már tudunk adatbázistáblából saját oldalunkon adatokat megjeleníteni - mint ahogyan a
Megyéink című mintapéldában tettük -, illetve
megértettük, hogyan kell egy keresőfunkciót kialakítani - amire a
Települések című oldal mutat példát -, akkor előbb-utóbb
szükségünk lesz arra is, hogy új adatokat tudjunk felvenni az adatbázisba.
Új adatok felvételére számtalan szituációban szükség lehet. Nem is kell ehhez semmi
extrább helyzetre gondolni, mint hogy pl. regisztráció lehetőségét szeretnénk biztosítani
weboldalunkon. Hiszen erre minden olyan oldal esetén szükség van, aminek a tartalmához
a felhasználók is hozzájárul(hat)nak. A folytatásban ennek egy módját tekintjük át.
Mi szükséges tehát ahhoz, hogy egy regisztrációt meg tudjunk valósítani?
1. Megfelelően kialakított adatbázistábla. 2. Regisztrációs felület, vagyis űrlap, ahol a felhasználó megadhatja az adatait. 3.Feldolgozó program, mely az űrlap adatait ellenőrzi, majd az adatokat adatbázisba írja.
Tekintsük át őket sorban.
1. Adatbázistábla
Az elmentendő adatok között - szinte az adott weboldal jellegétől függetlenül - az alábbiaknak
érdemes helyet biztosítani a (pl. user nevű)
táblában:
uid N 11 user azonosító
ustr C 10 alternatív, karakteres user azonosító
unev C 60 felhasználónév
umail C 80 a felhasználó e-mail címe
upw C 50 belépési jelszó
udatum DT a regisztráció időpontja
uip N 32 az IP-cím, ahonnan regisztráltak
usess C 8 a session-azonosító első néhány karaktere
ustatusz C 1 a felhasználó státusza
ukomment TXT megjegyzés
melyekhez a következő megjegyzés fűzhető:
uid: elsődleges kulcs, auto increment tulajdonsággal;
ustr: véletlen karaktersorozat, melyet az URL-ben paraméterként használhatunk
a felhasználók azonosításra a sorszám helyett (a sorszámmal ugyanis az a baj, hogy
könnyű átírni az URL-ben, ami miatt akár egy egyszerű programmal is végigpásztázhatóvá
és ellophatóvá válnának a felhasználóink adatai);
upw: titkosítva illik tárolni, ezért a hosszát ennek megfelelően kell beállítani -
a titkosítás egy egyszerű módját kínálja az
md5()
függvény;
udatum, uip, usess: érdemes megszokni, hogy mindent naplózunk, ami a weboldalunkon
történik - ezek jelentik hozzá az alapadatokat;
ustatusz: ezzel lehet pl. jogosultságok szerint csoportosítani a felhasználókat,
de itt lehet akár jelölni azt is, ha valakinek a tagsága még jóváhagyásra vár, vagy
ha pl. majd törölve lesz;
ukomment: itt (a későbbiekben) bármilyen - mások által nem látható - megjegyzés,
emlékeztető fűzhető a felhasználóhoz az admin részéről.
A felsoroltakon túl - ha a weboldal által megvalósítani kívánt cél indokolhatja - érdemes lehet
további adatok eltárolását is megfontolni. Például:
a felhasználó születési dátuma, vagy akár csak a születési éve;
a felhasználó neme;
a felhasználó lakhelyének irányítószáma, vagy városa, települése, régiója;
profilkép, mint képfájl neve;
rövid bemutatkozás, önjellemzés, érdeklődési kör... stb.
2. Űrlap
Az űrlap kialakítása sok meglepetést nem hordoz magában, hiszen megvalósításakor éppen úgy
kell eljárni, mint ahogyan azt pl. a Vendégkönyv című
feladatnál tettük. Szükség esetén az Űrlap-elemek
oldalon felidézhetjük az alkalmazandó HTML kódokat.
Kizárólag azért, hogy némi újdonság mégis legyen a jelenlegi feladatban is, egészítsük ki
a fenti táblastruktúrát egy megyekóddal (umegye),
ahol eltárolhatjuk, hogy az új felhasználónk melyik megyéből érkezett. A megye kiválasztásának
lehetőségét pedig egy <select>
elemmel kínáljuk majd fel!
A forráskódban hivatkozott megye-adatok adatbázisa a Megyéink
című mintapéldából szerezhető be.
3. Feldolgozó program
A feldolgozó programnak két fontos feladatot kell ellátnia:
le kell ellenőriznie, hogy a felhasználó minden adatot helyesen
megadott-e a felületen;
ha az adatok helyesek és hiánytalanok, akkor azokat be kell írnia
az adatbázistáblába.
Itt az újdonságot az adatbázistáblába írás jelentheti - bár ez sem olyan újdonság,
mint azt esetleg gondolnánk. A PHP programnak, akárcsak a lekérdezésnél, ugyanúgy
oda kell kapcsolódni az adatbázishoz (mysqli_connect),
kezdeményezni kell az adatbázis-műveletet (mysqli_query),
majd le kell kapcsolódni az adatbázisról (mysqli_close).
Az adatok tényleges beírását a PHP-n belül nyilván MySQL kód fogja elvégezni,
amelyhez az INSERT INTO utasításra
lesz szükség. Esetünkben valahogy így:
Az adatbázisba írandó PHP változók közül a $_POST tömb elemeihez talán nem kell magyarázatot
fűzni, hiszen azok értékei az űrlapról érkeznek.
A $pw a fejhasználó által választott jelszó md5() függvénnyel való kódolásának
eredménye.
A $ip, vagyis az IP-cím értéke leggyakrabban a $_SERVER[REMOTE_ADDR] kifejezésből
olvasható ki.
A $sess változóval a munkamenet-azonosítót szeretnénk táblázatba írni:
ennek az értékét a session_id() függvény adja vissza - feltéve hogy indítottunk
munkamenet-kezelést a session_start() függvénnyel a program elején.
A leginkább összetett értékadást a $str változóban tárolni kívánt alternatív,
karakteres user azonosító igényli, mely esetünkben egy tíz karakterből álló véletlen
karaktersorozat. Feltöltése pl. az alábbi kóddal lehetséges:
Készítsen regisztrációs felületet és programot a fenti leírás alapján!
1. Hozza létre phpMyAdmin felületen a szükséges adatbázistáblát! 2. Készítse el a regisztrációs űrlapot! 3. Írja meg a regisztrációt megvalósító programot, mely az adatokat adatbázisba írja!