Versio

PHP chatbox met AJAX

PHP chatbox d.m.v. AJAX. Registreren is hierbij ook mogelijk en privé berichten versturen ook.

Soort MSN maar dan online. Bij het voorbeeld kun je inloggen met phphulp en phphulp maar omdat je maar op 1 computer tegelijk ingelogd kan zijn kun je daar niet altijd op en is het beter om een eigen account te maken :)

Het ziet er misschien een beetje slordig uit maar het werkt :D

Ik heb meerdere script van hier gebruikt zoals de ubb parser en het online script heb ik ook van hier maar het is helemaal omgebouwd. Aan het uiterlijk is expres nog niks gedaan want dan kan je het helemaal naar je eigen smaak maken.

Ik zal of en toe wijzigingen maken en dingen toevoegen :)

Edit:

1. UBB bug eruit gehaald.
2. UBB bug nog een keer er uit gehaald.
3. In het voorbeeld een klein beetje opmaak toegevoegd maar wat hier staat is nog zonder opmaak. Het is niet veel maar het ziet er wel wat beter uit.
4. Je leest nu van boven naar onder zoals bij bijna elke chat.
5. LET OP: Als je de code download is de UBB en dat je van boven naar onder leest nog niet goed die moet je even van hier kopiëren.

Voorbeeld: http://meschat.gethost.nl

Gesponsorde koppelingen

PHP script bestanden

  1. php-chatbox-met-ajax

 

62 reacties op 'PHP chatbox met AJAX'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Paul K
Paul K
6 jaar geleden
 
0 +1 -0 -1
Knap zeg....
Jordi Alferink
Jordi Alferink
6 jaar geleden
 
0 +1 -0 -1
Ziet er goed uit ..
Jonathan -
Jonathan -
6 jaar geleden
 
0 +1 -0 -1
Als je het nou gewoon een chatbox met users noemt, is iets duidelijker (lijkt mij). Want een on-line MSN is een scriptje om met je MSN buddy's te MSN-en, zoals eBuddy.
Jorn Engelbart
Jorn Engelbart
6 jaar geleden
 
0 +1 -0 -1
Ja oke maar ik bedoel dat het op msn lijkt omdat je ook apart met mensen kan praten zeg maar
Bas Kreleger
Bas Kreleger
6 jaar geleden
 
0 +1 -0 -1
Ik heb de titel ff aangepast en een mirror toegevoegd. Ziet er functioneel erg goed uit! Zal de code ook nog ff bekijken.. Netjes!
Mebus  vg
mebus vg
6 jaar geleden
 
0 +1 -0 -1
Hoe werkt dit:| Gebruik Opera.. gebeurd niet echt veel..
PHP Newbie
PHP Newbie
6 jaar geleden
 
0 +1 -0 -1
Ik gebruik opera ook mebus en hier werkt het wel.

De code is alleen niet echt overzichtelijk, maar de werking is goed. Eventueel even de leesrichting omdraaien. Bijna in iedere chat lees je van boven naar onder, en niet van onder naar boven (dus nieuwe berichten onderaan toevoegen)

Edit:

Er zit nog een bug in je UBB parser. Als ik [i] typ, zonder deze te sluiten, wordt alles schuin gedrukt
Tjerk Vroon
Tjerk Vroon
6 jaar geleden
 
0 +1 -0 -1
Is het mogelijk om, zodra je op <shift><enter> drukt, dat je een tweede regel in je invoerveld krijgt? Zodat hij de regels niet gelijk in het chatscherm weergeeft?
Jorn Engelbart
Jorn Engelbart
6 jaar geleden
 
0 +1 -0 -1
@bas bedankt :D
@mebus raar :S
@PHP Newbie Ik zal nog even naar de UBB kijken. Van boven naar onder lezen is idd een goed idee ik zal er nog even naar kijken
@Dhawis ook goed idee zal kijken wat ik er mee kan doen :)
Drikus
Drikus
6 jaar geleden
 
0 +1 -0 -1
Bedankt! Echt super lijp script!
Frank -
Frank -
6 jaar geleden
 
0 +1 -0 -1
Ik heb hem niet getest en het zal vast wel werken, maar hier schieten mij als database-man toch de tranen van in de ogen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
`time` varchar(50) NOT NULL,

Wat is er in toch mis met een TIME of DATETIME als datatype? Een tijdstip is toch geen stuk tekst, of wel dan?

Pas dit even aan, het zal de database ook iets sneller maken.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Jorn Engelbart
Jorn Engelbart
6 jaar geleden
 
0 +1 -0 -1
@pgFrank ik ben verder geen iemand die heel erg veel verstand heeft van databases maar als ik die time of datetime verander doet mijn script het niet meer :S hij geeft geen error maar ik heb time() en die lees ik uit en tel wat bij op maar dat gaat niet met TIME of DATETIME (op deze manier dan (denk ik))
Frank -
Frank -
6 jaar geleden
 
0 +1 -0 -1
Je zal natuurlijk wel hier en daar de queries even moeten aanpassen. Duhhh! Jouw queries zijn namelijk ingesteld op het behandelen van tekst, terwijl ze datums en/of tijden moeten behandelen. En dan wel datums en tijden volgens het ISO-formaat dat je voor een DATETIME of TIME nodig hebt.

En verder 'doet het niet meer' is wat vaag, kom met concrete foutmeldingen vanuit de database, mysql_error() doet wonderen bij debuggen.
Leroy Boerefijn
Leroy Boerefijn
6 jaar geleden
 
0 +1 -0 -1
kijk nog is naar je usb parser, want als ik typ krijg ik gewoon te zien (goed)
maar als ik [move] of [pre] oid typ, veranderd gelijk weer alle tekst ;)
Jorn Engelbart
Jorn Engelbart
6 jaar geleden
 
0 +1 -0 -1
oww ja die zal ik ook nog even aanpassen :)
Edit:
gefixt :)
Arjan Schuurman
Arjan Schuurman
6 jaar geleden
 
0 +1 -0 -1
Ziet er goed uit :)
Harry
Harry
6 jaar geleden
 
0 +1 -0 -1
Knap staaltje script werk, ga mij er zeker in verdiepen.
Harry
Harry
6 jaar geleden
 
0 +1 -0 -1
Je MOET de ubb tag afsluiten anders verwerkt de parser het niet naar vet of schuin etc... klopt dat?
Wellicht een knop met alle ubb's afsluiten?
Jorn Engelbart
Jorn Engelbart
6 jaar geleden
 
0 +1 -0 -1
@Harry heb ik ook al aan gedacht. Maar ik heb geen idee hoe :S iemand enig idee?
Harry
Harry
6 jaar geleden
 
0 +1 -0 -1
Even hardop denken:

if statement in $bericht de ubbcode "b" voorkomt dan ubbcode "einde b" aan einde bericht toevoegen? en zo alle ubbcodes doorlopen/controleren?

Wellicht als actie bij het verzenden?

Zou dat een mogelijke oplossing zijn?
Mark
mark
6 jaar geleden
 
0 +1 -0 -1
Leuke chat! Is het mogelijk om de login te koppelen aan je ledensysteem zodat je leden gelijk kunnen inloggen en niet opnieuwe hoefen te registeren.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Jorn Engelbart
Jorn Engelbart
6 jaar geleden
 
0 +1 -0 -1
Zou moeten kunnen als je wat query's aanpassen en rank en lastlogin aan je logintable moeten toevoegen (als je die nog niet had) :)
Thursten
Thursten
6 jaar geleden
 
0 +1 -0 -1
Hij doet het niet :S

hij zegt als je op Verzenden klikt (in de Chatbox zelf) Verstuurd!

maar hij doet niks ver der is alles goed geregelt (in de config.php)

en de Smilies geeft ie niet weer onder je Textarea *-)

wat doe ik fout ???

de site is:

http://school.thurstenx.nl/

kan iemand mij asjeblieft helpen =)

want ik heb het ook nodig voor een School opdracht dus als dit daalijk werkt moet ik hem proberen om te bouwen naar een EmotiChat maar dan wil ik eerst dat hij nu werkt :D

kan iemand mij helpen ???

(Stuur als het niet te veel moeite is Asjeblieft een mailtje naar: thurstenw@hotmail.com)

Alvast Bedankt

Greetings:

Thursten

PS. (Sorry als bepaalde dingen uit deze reactie nietzijn toegestaan)
Jorn Engelbart
Jorn Engelbart
6 jaar geleden
 
0 +1 -0 -1
Ik weet niet maar ik heb even gekeken en er kloppen een paar dingen zoiezo niet (denk ik):
De smilies doen het niet omdat ze niet bestaan :S
En hij doet het niet omdat write.php gewoon niet bestaat ;)
Ook als je een contact wil toevoegen doet hij het niet om die pagina ook niet bestaat ;)
Edit:

Ik ben ook gelijk ADMIN :S
Thursten
Thursten
6 jaar geleden
 
0 +1 -0 -1
jaah ik snap dat hele ding niet :S

want ik wist dus niet hoe IK admin moest worden want waar doe je dat ???

(dus ik heb de Rank in de database veranderd)

Plaatjes staan in: http://school.thurstenx.nl/images/smilies/

omdat ze in eerste instantie al niet werkte had ik de link in het script ook veranderd naar <img src="http://school.thurstenx.nl/images/smilies/(en dan naam van plaatje)>

kortom ik heb er alleen http://school.thurstenx.nl/
ervoor gezet



en de write.php staat

http://school.thurstenx.nl/write.php

en die Contact pagina doet het bij mij wel *-)

maar hoe word je dan Admin als ik die Database niet veranderd had ???

Greetings:

Thursten
Jorn Engelbart
Jorn Engelbart
6 jaar geleden
 
0 +1 -0 -1
de smilies moeten in: http://school.thurstenx.nl/loggedin/images/smilies/ staan en write moet ook in de loggedin map staan daar moet alles staan op register.php, config.php, index.php, logout.php en style.css na voor de rest moet alles in de map loggedin (en de smiles niet, maar dat zal je wel snappen :))

Edit:

als je hem download staat alles meteen in de goede map :)
Thursten
Thursten
6 jaar geleden
 
0 +1 -0 -1
en hoe zit het dan met dat Admin Inlogen enzoo ???
Jorn Engelbart
Jorn Engelbart
6 jaar geleden
 
0 +1 -0 -1
Dat moet je gwn in de database ;)
Thursten
Thursten
6 jaar geleden
 
0 +1 -0 -1
oke dus nu heb ik jou veranderd in member en bij de tabel Login de rank veranderd in member is het dan weer goed ???
Jorn Engelbart
Jorn Engelbart
6 jaar geleden
 
0 +1 -0 -1
Als bij rank wel de standaardwaarde member is het goed anders vult hij standaard niks en dan heb je er helemaal niks aan. Maar als je de tabellen gewoon gekopieerd hebt is het goed :)
Ian Vermeulen
Ian Vermeulen
6 jaar geleden
 
0 +1 -0 -1
Ik weet niet hoe dit komt maar bij elke tutorial van php komt er een deel van de code letterlijk op mijn beeld :s
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Thursten
Thursten
6 jaar geleden
 
0 +1 -0 -1
dat kan ;) misschien heb je een fout in de code of heb je geen PHP ondersteuning op je hosting óf heb je simpel weg een Database nodig en heb je die niet ;)

kijk maar wat je ermee kan :P

BTW. DE MIJNE DOET HET :D :D :D

Greetings:

Thursten
Ian Vermeulen
Ian Vermeulen
6 jaar geleden
 
0 +1 -0 -1
keb het gwn offline geprobeert :p
Jorn Engelbart
Jorn Engelbart
6 jaar geleden
 
0 +1 -0 -1
Wat heb je WAMP of zoiets of het je het zeg maar handmatig gedaan?

Edit:

probeer anders is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
phpinfo();
?>

Ian Vermeulen
Ian Vermeulen
6 jaar geleden
 
0 +1 -0 -1
maar ik zie gwn niks op mijn scherm verschijnen en als er iets op komt dan is het een stuk van de code.

browser: firefox
database: mysql
Ian Vermeulen
Ian Vermeulen
6 jaar geleden
 
0 +1 -0 -1
maar keb NuSphere phpED(een php editor) en daar werkt de output wel, maar zou toch normaal op gwne browser ook moeten werken. of moet het online staan?
Jorn Engelbart
Jorn Engelbart
6 jaar geleden
 
0 +1 -0 -1
Raar :S mis ondersteunt het op en of andere manier geen AJAX :S
Jorn Engelbart
Jorn Engelbart
5 jaar geleden
 
0 +1 -0 -1
Je leest nu van boven naar onder zoals bij elke chat dat is wat fijner :)
J orii
J orii
5 jaar geleden
 
0 +1 -0 -1
ik accepteer ook geen Ajax, maar das meer voetbal gezeik :P

ziet er wel vet uit !! :),, alleen,, ik gebruik een plaatje op mn BG, en de chat staat helemaal rechts, dus klot dat niet,, waarmee doe je dat ?? Iframe ofzo
Jorn Engelbart
Jorn Engelbart
5 jaar geleden
 
0 +1 -0 -1
Ik accepteer wel Ajax, ze staan toch bovenaan :D

maar wat bedoel je??? ik snap er niks van :S
Andre vredeveld
andre vredeveld
5 jaar geleden
 
0 +1 -0 -1
Het scirpt ziet er goed uit
Maar ik had een vraag kun je als de een bericht heb verstuur ook de tijd ervoor zetten
en word er ook een log van gemaakt

m.v.g.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Karl Karl
Karl Karl
5 jaar geleden
 
0 +1 -0 -1
Als ik dat snel goed zie moet je van:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php // kleurtjes
echo '<br /><b>'.$nick.':</b> '.parseubb($bericht);
# hetvolgende maken:
echo '<br />'. $time1 ' <b>'.$nick.':</b> '.parseubb($bericht);
?>

Ik weet niet hoe lang alles word bewaard.
Andre vredeveld
andre vredeveld
5 jaar geleden
 
0 +1 -0 -1
Dit werkt niet

m.v.g.
Jorn Engelbart
Jorn Engelbart
5 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php // kleurtjes
echo '<br /><b>'.$nick.':</b> '.parseubb($bericht);
# hetvolgende maken:
echo '<br />'. date("H:i:s", $time1) ' <b>'.$nick.':</b> '.parseubb($bericht);
?>

Ik denk zoiets.
Rens verhoeven
rens verhoeven
5 jaar geleden
 
0 +1 -0 -1
hoe kan ik dan de gegevens uit de database uitlezen? is hier een script voor.
Jorn Engelbart
Jorn Engelbart
5 jaar geleden
 
0 +1 -0 -1
Hoezo dat gebeurt toch al?
Twan van der Poel
Twan van der Poel
5 jaar geleden
 
0 +1 -0 -1
Leuk script.

P.S. " $check_query = mysql_query("SELECT * FROM login WHERE naam = '" .$_POST['naam']. "'"); " ( kan wel weer wat veiliger he ? )
Robin
robin
5 jaar geleden
 
0 +1 -0 -1
hallo,

bij mij staat dat ik javascript moet aan zetten. geloof dat dat niet klopt.
http://hyperdex.funpic.de/page/irc.html
hoop dat jullie mij kunnen helpen alvast bedankt!!!
Stephan
stephan
5 jaar geleden
 
0 +1 -0 -1
ik vraag me af..,,, hoe kan ik als admin op de chatbox komen,.., en hoe kan ik mensen verwijderen of waarschuwingen geven??? leg me het us uit,
Erik
Erik
4 jaar geleden
 
0 +1 -0 -1
Mooi script... :)
- -
- -
4 jaar geleden
 
0 +1 -0 -1
Ter informatie... Er werd gezegt dat http://dev.ichris.nl/chatroom/ hetzelfde is als dit script, maar dat is dus zó niet waar.

Ten eerste is de scripting van dit systeem verouderd, niet netjes en ook niet veilig. Ten tweede, gebruikt de maker van dit script geen gebruik van een Library, en ik wel. Ten derde, was ik niet op de hoogte van dit script.

Dus nogmaals, die shit van mij is totaal niet hetzelfde als dit. Grappig trouwens, lees nu de post van stephan hierboven mij; mijn systeem heeft wél de mogelijkheid om iemand te kicken en te waarschuwen ;)
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Toby hinloopen
toby hinloopen
4 jaar geleden
 
0 +1 -0 -1
LOL

jouw aJaX script is PRECIES die van w3schools XD

niet dat het erg is :P die van mij heb ik daar ook van gejat, alleen ik heb em ondertussen al aangepast. :P

wel leuk om te zien dat er ook andere aJaX chat's zijn. Ik had er 1 voor onzin.com gemaakt: http://chat.onzin.com/

Helaas is de source té gebonden aan de classes scripts en user data van onzin.com dat het nutteloos is om deze op PHPhulp te posten.

De meest recente versie van die chat die WEL onafhankelijk is van onzin.com is http://www.levensweg.net/chat2/

In deze zit een bansysteem.
Mensen die interesse in de bron hebben: msn me @ tobyhinloopen_2[atje]hotmail.com

mogelijkheden:
UBB support (in- en uitschakelbaar via scripts)
klikbare URL's
Ban (en mute?) support
Rangen support, rangen kunnen aangepast worden via database (phpMyAdmin o.i.d.)
Registratie en login systeem met MD5 encrypted passwords
MySQL opslag
- -
- -
4 jaar geleden
 
0 +1 -0 -1
@Toby: Die van mij, of de TS? Ik weet namelijk ook niets van een AJAX script @ W3schools, maar die zal hoogstwaarschijnlijk geen gebruik maken van Prototype ;)

Trouwens, jouw systeem is ook niet al te veilig. Het verstuurd de inlog/register data via een URL (GET ipv POST) en word ook plain doorgestuurd naar het ajax.php script.. Ziet er overigens voor de rest wel netjes uit!
Toby hinloopen
toby hinloopen
4 jaar geleden
 
0 +1 -0 -1
@noobhulp: jouw aJaX script is letterlijk dezelfde als die van W3schools :P
comments, volgorde, alles
niet dat het uitmaakt :P het viel me gewoon op.
Ik ken dat script, want die van mij heb ik ook gejat vanaf hun site :P
mijne is echter al iets meer aangepast.

Verder weet ik niet hoe aJaX post werkt! leg me dat eens uit xD
die van jou werkt ook met GET... gaat login via een form buiten ajax om dan?

En de neiuwe versie op onzin.com gaat de login NIET met aJaX, dus daar is dat probleem opgelost.

edit: ow, ik zie nu pas dat JIJ niet de TS bent xD
ik vond het al zo raar :P
ik bedoelde dus het script van de TS.

kan jij me mss uitleggen hoe aJaX POST werkt? :P
Thom Lala
Thom Lala
4 jaar geleden
 
0 +1 -0 -1
Ik ben het een beetje aan het uitbreiden en aan en beveiligen, maar ik heb een probleem waar ik niet uitkom. De berichten komen nu bovenaan te staan, ik heb liever dat ze onderaan komen te staan (net als msn). Dit is niet moeilijk, maar je zit dan met die scrollbar.. die scrollt niet mee naar beneden..
Marc
Marc
4 jaar geleden
 
0 +1 -0 -1
Hoe kan ik het online gedeelte sneller laten refreshen?
Phpgast v W
phpgast v W
4 jaar geleden
 
0 +1 -0 -1
Ik ben zelf ook een chat aan het maken, maar van ajax weet ik niet veel, dus ik probeerde een deel te gebruiken (live on-line systeem), maar het werkt, misschien kan iemand mij helpen?

Ik had deze code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<script type="text/javascript">
<!--
function online()
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
  {
  alert ("Your browser does not support AJAX!");
  return;
  }
var url="online.php";
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

setInterval(online, 9000);
//-->
</script>

<?php
// Pagina
?>

<script language="javascript">
online();
</script>
<?php
// Rest van pagina
?>


Kan iemand zeggen hoe het wel moet, of een ander script?
Thomas
thomas
3 jaar geleden
 
0 +1 -0 -1
Goedendag ik heb ook een vraag over dit systeem.
Heb hem helemaal aangepast naar mijn smaak en werkt ook bijna helemaal.
zit maar met 1 ding en dat is als je als admin ingelogd bent en je hebt een contact persoon toegevoegd. dan zie je alleen dat groene rondje bij online staan.
geen naam. maar als ik als die andere contact inlog dan zie ik de naam van de admin wil staan.
dus vriendje admin user is alleen groen rondje
en user admin is wel naam.

Hoe kan dit?
Mike Smit
Mike Smit
3 jaar geleden
 
0 +1 -0 -1
Mooie chat alleen die edit van berichten die als laatst zijn gepost bovenaan had voor mijn niet nodig geweest. Weet iemand hoe je dit terug zet?

Alvast bedankt.
Stefan de Keijzer
Stefan de Keijzer
2 maanden geleden
 
0 +1 -0 -1
Mooi gemaakt ik heb allen een fout als ik of iemand anders uitnodigd voor een vriedschapsverzoek of wat dan ook maar dan komt er bij de ander wel te staan dat hij een verzoek heeft maar het klikken op accetpteren of afwijzen doet het niet, nu is mijn vraag hoe komt dit en hoe kan ik het oplossen.

Alvast bedankt voor dit mooie php chtbox script.
Boris lezek peeters
Boris lezek peeters
2 maanden geleden
 
1 +1 -0 -1
Het is verouderd.
Stefan de Keijzer
Stefan de Keijzer
1 maand geleden
 
0 +1 -0 -1
voor me kaar hij werkt weer wat kleine aanpassingem gaan en nog steeds bezig met het aan passen maar het toevoegen van contacten werkt nu wel.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

  • Labels
  • Geen tags toegevoegd.
Get Adobe Flash player