Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : Miscellaneous Functions : connection_status

connection_status

Returns connection status bitfield (PHP 4, PHP 5)
int connection_status ( )


Code Examples / Notes » connection_status

michael

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


Change Language


Follow Navioo On Twitter
connection_aborted
connection_status
connection_timeout
constant
define
defined
die
eval
exit
get_browser
__halt_compiler
highlight_file
highlight_string
ignore_user_abort
pack
php_check_syntax
php_strip_whitespace
show_source
sleep
sys_getloadavg
time_nanosleep
time_sleep_until
uniqid
unpack
usleep
eXTReMe Tracker