Jednoduchý online chat v PHP a JavaScripte – rámec head
V poslednom pokračovaní si rozoberieme rámec head a ukážeme si ako sa vypisujú odkazy v rámci show a online prihlásený v rámci online. Nájdete tu aj odkaz na zdrojové súbory.
V rámci head sa každých HEAD_RELOAD_TIMER sekúnd spustí nasledovný skript, pričom funkcia OnLineHead() vráti opäť reťazec online prihlásených oddelených znakom „>“.
|
Funkcia OnLineHead() okrem vrátenia reťazca, odstráni zo súboru s online prihlásenými starých užívateľov, ktorý už viac ako AUTO_LOGOUT_TIMER sekúnd nepridali novú správu. Tak ako pri premenovávaní súborov, aj tu sa snažíme zistiť veľkosť súboru v cykle s ošetrením výpisu chybových správ funkcie FileSize(). Ak sa veľkosť nepodarilo zistiť (niekto so súborom pracuje) funkcia vráti false, čo pri automatickom pretypovaní PHP môže byť to isté, ako súbor s nulovou veľkosťou. Preto, vrátenú hodnotu FileSize() porovnáme pomocou operátora === (3 rovná sa), čo bude pravda iba ak sú hodnoty rovnaké a rovnakého typu.
Odpočítavanie zabezpečuje jednoduchý JavaScript, ktorý po uplynutí HEAD_RELOAD_TIMER sekúnd obnoví rámec head s nasledovnými parametrami, predanými v URL.
|
Teda s veľkosťou súboru s odkazmi (aby sme vedeli, kedy obnoviť rámec show), reťazcom online prihlásených pred časom HEAD_RELOAD_TIMER (aby sme vedeli, kedy obnoviť rámec online) a našim menom, ktoré je prihlásené, čo vieme podľa naplneného inputu chatar v rámci form. Hodnotu inputu chatar získame pomocou JavaScriptu. Najskôr sa pomocou objektov dostaneme do rámca form (parent.frames.form) a potom získame hodnotu inputu chatar z formulára form (document.form.chatar.value). Po spustení skriptu head.php kontrolujeme, či sa takto získané meno nachádza vo vrátenej hodnote funkcie OnLineHead(). Ak sa tam nenachádza, znamená to, že toto meno bolo automaticky odhlásené z online chatujúcich. Musíme teda zabezpečiť obnovenie rámca form, pretože takéto meno už nie je medzi online.
Počas chatovania môže nastať prípad, že niekto odošle formulár a kým príde odpoveď zo serveru nemusí byť rámec form ešte kompletne načítaný, teda nemusí existovať formulár a ani hodnota chatar. Preto je v rámci head JavaScriptová funkcia Timer() ošetrená, aby čakala na to dokiaľ neexistuje objekt parent.frames.form.document.form. Ak tento prípad nastane, vo formulári rámca head sa na tento čas objaví znak „w“.
Výpis odkazov v rámci head je takmer rovnaký, ako v prvom jednoduchom chate. Pribudla tu jedine možnosť zobrazovať odkazy na stránke v opačnom poradí, teda nový odkaz sa objaví hore. V zdrojovom kóde je prednastavený výpis, že nové odkazy sa zobrazujú dole. Ak by to niekomu nevyhovovalo, stačí dať do poznámok funkciu FPassThru(), a odstrániť poznámky /* … */.
|
Výpis online užívateľov do rámca online je podobný ako pri funkciách OnLine… Do rámca reklama.php si pridáme formulár na zobrazenie odkazov od … do. Formulár sa nikdy neodošle, iba po stlačení buttonu sa vykoná funkcia Zobraz(), ktorá prekontroluj či vstupy od … do vyhovujú a otvorí pomocou JavaScriptu nové okno, kde zobrazíme odkazy od … do. Toto zabezpečuje skript zobraz.php (nie sú ošetrené parametre predávané cez URL).
|
Dúfam, že skript vám pobeží bez problémov, pretože i po absolvovaní mnohých skúšok ešte stále môže nastať nepredvídateľná udalosť. Skript napríklad nemá obmedzenie na počet naraz prihlásených užívateľov. Ďalšie vylepšenia sú už len na vás, úloha, ktorú som si dal ja, bola doplniť prvý chat o zoznam online prihlásených bez databázy a zabrániť prihláseniu sa dvoch rovnakých mien, a to bez zložitých identifikácií užívateľa. Odskúšaný bol v IE 5.5, NN6, Mozilla 0.9, Opera 5.12. Zdrojové súbory (zip) sú k stiahnutiu tu. A dnes už naposledy odkaz na ukážku chatu.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Od iPhonu po Android: Ultra HDR přináší nový standard fotografií
1. listopadu 2024 -
Praktické rady na zabezpečení redakčního systému WordPress
27. února 2023 -
Regulace digitálních služeb: Co přináší nové nařízení DSA?
20. února 2024
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024