Autor Zpráva
RastyAmateur
Profil
Dobré odpoledne,

chtěl jsem si vyzkoušet udělat online chat. Google mi nepomohl najít přesně to, co jsem potřeboval. Našel jsem několik tutoriálů, které nefungovali dle mých předtav. Pak jsem hledal zde - na diskusi, a něco málo jsem našel. Když jsem si nějak srovnal myšlenky, vylezlo několik nápadů.

1) Chat zapisovat do nějakého txt bloku a v každém časovém intervalu mazat obsah chatu a načítat soubor znovu, přičemž by bylo něco jako clear funkce (= když napíše nškdo do chatu "clear", txt soubor se zazálohuje a vymaže.

2) Vše zapisovat do databáze a dělat to tak, že v časovém intervalu se přes ajax zeptám, jestli je něco nového...
2a) A to tím způsobem, že si zapamatuju poslední čas, kdy jsem se ptal, a pak v dotazu na db se budu ptát WHERE date>'".$posledni_dotaz."'
2b) Ještě jsem našel zde na diskusi možnost, že to někdo dělá tím způsobem, že si zapamatovává počet příspěvků a pak kontroluje, jestli to číslo je větší...

Napadlo mě ještě pár blbostí, ale ty jsem ihned vyřadil...

Má někdo jiné řešení, lepší, nebo nějakou připomínku k těmto? U té jedničky - je mi jasný (už mi to bylo několikrát řečeno), že mazat celý blok, abych ho vypsal znovu, není dobré. Ovšem byla to nejjednodušší možnost.

Děkuji, RastyA.
askjustask
Profil
1)Můžeš použít txt nebo xml nebo databáze
2)Nemusíš se ptá zda-li je něco nového stačí pro přidání komentář či článku přidat článek/komentář tam kam jsi zvolil viz1
To jsou ty nápady
Jinak pokud by chtěl někdo smazat chat nemusíš to mazat v souboru (zase viz1) jenom napsat funkci ,která to skryje nebo ještě lépe pokud bude-li vypisování komentářů dělat javascript tak můžeš jednoduše obnovit stránku
No je mnoho možností jak to udělat v tom je krása developingu
RastyAmateur
Profil
askjustask:
Děkuji za reakci
yFang
Profil
RastyAmateur:
Jako alternativu se můžeš podívat na socket.io.
KryVosa
Profil
1) Blbost mazat a přepisovat. Není to jednodušší. Jednodušší je mít objekt DOMu, který naduplikuješ a vložíš do nějakého elementu. Tím pádem ani nemusíš mít zprávy nikde v prohlížeči zálohované.

Clear: Doporučuju udělat v tom případě celý 'příkazový' systém. Nejlépší by bylo, kdyby všechny příkazy začínaly lomítkem ("/clear").

2)Pak už jde jen o to, co s těmi zprávami pak budeš chtít dělat. Protože pořadí zprávy si můžeš z času a data zjistit, ale z 'id' zprávy datum a čas ne.

Reloadovat stránku je holý nesmysl, stahuje se celá stránka znovu.
RastyAmateur
Profil
yFang:
myslel jsem na to a stejně jsem to zapomněl napsat. Nechci sockety. Četl jsem o tom v jednom vlákně tu na diskusi a nemyslím si, že je to dobrá varianta.

KryVosa:
Speciálnì příkazový řádek je k ničemu. Stačí to chatovací pole. Ale také děkuji za reakci.
KryVosa
Profil
RastyAmateur:
Speciálnì příkazový řádek je k ničemu
Však všechny příkazy by se psaly rovnou do chatovacího pole. Akorát vše, co by začínalo lomítkem, by javascript zpracoval jinak.

Jinak, tady je ukázkový příklad, jak se to dá udělat ošklivě a rychle.
RastyAmateur
Profil
KryVosa:
Děkuji za příklad.
Tak ono jestli zkoumat, zda-li to začíná lomítkem, nebo jestli je ten řetězec roven nějaké funkci, je stejné. Já si to představoval takto:

$prikazy = array("clear","kick","necodalsiho");
if(in_array($_POST["zprava"],$prikazy)){

}
KryVosa
Profil
O to by se měl (V zájmu nepřetěžování už tak zatíženého internetového spojení) starat javascript.
Jde o to, že lomítkem žádná normální zpráva nezačíná, na rozdíl od například slova 'clear'
RastyAmateur
Profil
KryVosa:
Dobře, beru na vědomí :)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: