PHP chatbox met AJAX

Door Jorn Engelbart, 20 jaar geleden, 14.640x bekeken

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

 

Er zijn 66 reacties op 'Php chatbox met ajax'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Paul K
Paul K
20 jaar geleden
 
0 +1 -0 -1
Knap zeg....
J A
J A
20 jaar geleden
 
0 +1 -0 -1
Ziet er goed uit ..
- -
- -
20 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
20 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
B a s
B a s
20 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  Hackintosh
Mebus Hackintosh
20 jaar geleden
 
0 +1 -0 -1
Hoe werkt dit:| Gebruik Opera.. gebeurd niet echt veel..
PHP Newbie
PHP Newbie
20 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
20 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
20 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
20 jaar geleden
 
0 +1 -0 -1
Bedankt! Echt super lijp script!
Frank -
Frank -
20 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.
Jorn Engelbart
Jorn Engelbart
20 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 -
20 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
20 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
20 jaar geleden
 
0 +1 -0 -1
oww ja die zal ik ook nog even aanpassen :)
Edit:
gefixt :)
Arjan Schuurman
Arjan Schuurman
20 jaar geleden
 
0 +1 -0 -1
Ziet er goed uit :)
Harry
Harry
20 jaar geleden
 
0 +1 -0 -1
Knap staaltje script werk, ga mij er zeker in verdiepen.
Harry
Harry
20 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
20 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
20 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
20 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.
Jorn Engelbart
Jorn Engelbart
20 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
20 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: [email protected])

Alvast Bedankt

Greetings:

Thursten

PS. (Sorry als bepaalde dingen uit deze reactie nietzijn toegestaan)
Jorn Engelbart
Jorn Engelbart
20 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
20 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
20 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
20 jaar geleden
 
0 +1 -0 -1
en hoe zit het dan met dat Admin Inlogen enzoo ???
Jorn Engelbart
Jorn Engelbart
20 jaar geleden
 
0 +1 -0 -1
Dat moet je gwn in de database ;)
Thursten
Thursten
20 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
20 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
20 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
Thursten
Thursten
20 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
20 jaar geleden
 
0 +1 -0 -1
keb het gwn offline geprobeert :p
Jorn Engelbart
Jorn Engelbart
20 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
20 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
20 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
20 jaar geleden
 
0 +1 -0 -1
Raar :S mis ondersteunt het op en of andere manier geen AJAX :S
Jorn Engelbart
Jorn Engelbart
20 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
20 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
20 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
20 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.


20 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
20 jaar geleden
 
0 +1 -0 -1
Dit werkt niet

m.v.g.
Jorn Engelbart
Jorn Engelbart
20 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
19 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
19 jaar geleden
 
0 +1 -0 -1
Hoezo dat gebeurt toch al?
Toine vd P
Toine vd P
19 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 Peters
robin Peters
19 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
19 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
19 jaar geleden
 
0 +1 -0 -1
Mooi script... :)
- -
- -
19 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 ;)
Toby hinloopen
toby hinloopen
19 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
- -
- -
19 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
19 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
18 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 dsf
Marc dsf
18 jaar geleden
 
0 +1 -0 -1
Hoe kan ik het online gedeelte sneller laten refreshen?
Youri van Weegberg
Youri van Weegberg
18 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
18 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
17 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
15 jaar 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.


15 jaar geleden
 
Het is verouderd.
Stefan de Keijzer
Stefan de Keijzer
14 jaar 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.
Jonas K
Jonas K
14 jaar geleden
 
0 +1 -0 -1
ik krijg altijd deze foutmelding :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/sysadmin/WWW/register.php on line 13
No database selected

Hoe kan ik dit oplossen?
Gerhard l
gerhard l
14 jaar geleden
 
0 +1 -0 -1
Je query gaat fout pas foutafhandeling toe. Maak de volgende keer een nieuwe topic aan voor zon vraag want nu haal je oude scripts weer naar boven.
Chris -
Chris -
14 jaar geleden
 
0 +1 -0 -1
@Jonas; je configuratie klopt niet, er is geen database geselecteerd. Maakt inderdaad zoals Gerhard aangeeft een nieuw topic hiervoor aan, dat is handiger.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Jonas K
Jonas K
14 jaar geleden
 
0 +1 -0 -1
ik heb een nieuw topic gestart kan je mij dit uitleggen wat ik precies moet dan aub?

alvast bedankt

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

Inhoudsopgave

  1. php-chatbox-met-ajax

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.