Jump to content

Archived

This topic is now archived and is closed to further replies.

0p3n_p0rT

Javascript/HTML/PHP Chatroom

Recommended Posts

Hi,
I recently made a chatroom in php. All messages are written to a chat log, and that chat log is what is read in the conversation screen, which is an iframe. However, I need the frame to refresh every 2 seconds or so, so that it is constantly updated.

At the moment, I am using:
[code]<META HTTP-EQUIV="Refresh" CONTENT="2"; URL="chatlog.htm">[/code]

However, whenever it refreshes and the length of the chat goes beyond the iframes capacity, a scroll bar appears. I want it to automatically keep to the bottom, as whenever it refreshes, it takes the browser to viewing the top part of the iframe. Also, whenever there is a new message, I want it to automatically scroll down to it so it is in view.

How could I do this?

Also, with the PHP:
I have a "connected" list. Whenever someone joins the page, the username from their session is logged to "connected.php". However, I want it to be removed when they exit the chat. Not all people would use a "logout" button so I would need it to somehow remove their name from the connected log file when their session is killed. How could I do that?

Share this post


Link to post
Share on other sites
[!--quoteo(post=358114:date=Mar 25 2006, 01:36 AM:name=0p3n_p0rT)--][div class=\'quotetop\']QUOTE(0p3n_p0rT @ Mar 25 2006, 01:36 AM) [snapback]358114[/snapback][/div][div class=\'quotemain\'][!--quotec--]
Hi,
I recently made a chatroom in php. All messages are written to a chat log, and that chat log is what is read in the conversation screen, which is an iframe. However, I need the frame to refresh every 2 seconds or so, so that it is constantly updated.

At the moment, I am using:
[code]<META HTTP-EQUIV="Refresh" CONTENT="2"; URL="chatlog.htm">[/code]

However, whenever it refreshes and the length of the chat goes beyond the iframes capacity, a scroll bar appears. I want it to automatically keep to the bottom, as whenever it refreshes, it takes the browser to viewing the top part of the iframe. Also, whenever there is a new message, I want it to automatically scroll down to it so it is in view.

How could I do this?

Also, with the PHP:
I have a "connected" list. Whenever someone joins the page, the username from their session is logged to "connected.php". However, I want it to be removed when they exit the chat. Not all people would use a "logout" button so I would need it to somehow remove their name from the connected log file when their session is killed. How could I do that?
[/quote]

For the refreshing, when you generate the results of the chat, then add an anchor link to the last result:

[code]<a name="latestmsg"></a>[/code]

Then refresh with:

[code]<META HTTP-EQUIV="Refresh" CONTENT="2"; URL="chatlog.htm#latestmsg">[/code]

For the PHP, the only way I think possible is to use AJAX. Take a look at the links in my sig at learning how to use it, but basically you can send a request using the "onabort" event:

[code]<body onabort="sendRequest('logout', '<? echo $_SESSION['user_id']; ?>');">[/code]

Or something similar, as you cannot actually execute a PHP function with a JS event handler. Hope that helps! :)

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.