|
connection_status
Returns connection status bitfield
(PHP 4, PHP 5)
Return Values
Returns the connection status bitfield, which can be used against the
See Also
Code Examples / Notes » connection_statusmichael
Yes it is true. I made some experiments with that functions 'connection_abortes()'. First a source made an error, which I see. They wrote: ignore_user_abort(); But that only gives you the status of the 'Abort-Setting'. So I try (with little hope) 'ignore_user_abort(true);' And as I readout the setting it has changed it... Next I see that the script runs after I disconnect with the site. But other experiments fail. I try some things and then it was logical after an experiment: flush() is one of the necessary things. Without those output to the client the function 'connection_aborted()' stays on 'false' The Second is that you have to output something. Without that it also doesn't works. So I now know that you have to echo something and then output the buffer. Only then 'the Script' (or the function) 'knows' that the client is disconnected. carlos
Very very useful! I was building a chat and I wanted my script to detect when the browser was closed, so the user could be deleted from the online_users table. <? echo str_repeat(" ",300); ignore_user_abort(true); //this way, the user can stop the output, but not the script. while (true) { echo "test \n"; flush(); sleep(2); if (connection_status()!=0){ include ('dbconnect.inc'); $sql="delete from online_users where online_user=$user"; $sql_exec=pg_exec($vChatDB, $sql); die(); //kills the script } } ?> toppi
Notice ! if you running a loop (while, foeach etc..) you have to send something to the browser to check the status. Example: while(1){ if (connection_status()!=0){ die; } } doesnt work, if the user break/close the browser. But a: while(1){ Echo "\n"; //<-- send this to the client if (connection_status()!=0){ die; } } will work :) i hope it will help some of you to safe some time :) Toppi |