Jump to content

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?
Link to comment
https://forums.phpfreaks.com/topic/5735-javascripthtmlphp-chatroom/
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! :)
This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

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.