From: "Michael Alaimo" on
I am trying to use register_shutdown_function. Previous to the script
shutting down I use curl to grab a website.

Basically I want to know if the user has hit the stop button or left the
page prematurely.

The only problem is that curl runs and finishes its call before the
shutdown function is called. Because of this I have no way to know if
the user canceled the request somehow. Any suggestions?

Mike


From: Ashley Sheridan on
On Thu, 2010-06-17 at 09:05 -0400, Michael Alaimo wrote:

> I am trying to use register_shutdown_function. Previous to the script
> shutting down I use curl to grab a website.
>
> Basically I want to know if the user has hit the stop button or left the
> page prematurely.
>
> The only problem is that curl runs and finishes its call before the
> shutdown function is called. Because of this I have no way to know if
> the user canceled the request somehow. Any suggestions?
>
> Mike
>
>
>


You can't. When a visitor closes their browser, or stops the page from
completing its loading, no message is sent to the server, so your PHP
script won't know about it.

The only way I know of currently to check for this is use some form of
regular check-in, with Ajax or something, that calls home at regular
intervals to inform your script that it is indeed still connected. If it
fails to call home in time it either means there's lag on the connection
or they broke it.

Thanks,
Ash
http://www.ashleysheridan.co.uk


From: "Michael Alaimo" on
> On Thu, 2010-06-17 at 09:05 -0400, Michael Alaimo wrote:
>
>> I am trying to use register_shutdown_function. Previous to the script
>> shutting down I use curl to grab a website.
>>
>> Basically I want to know if the user has hit the stop button or left the
>> page prematurely.
>>
>> The only problem is that curl runs and finishes its call before the
>> shutdown function is called. Because of this I have no way to know if
>> the user canceled the request somehow. Any suggestions?
>>
>> Mike
>>
>>
>>
>
>
> You can't. When a visitor closes their browser, or stops the page from
> completing its loading, no message is sent to the server, so your PHP
> script won't know about it.
>
> The only way I know of currently to check for this is use some form of
> regular check-in, with Ajax or something, that calls home at regular
> intervals to inform your script that it is indeed still connected. If it
> fails to call home in time it either means there's lag on the connection
> or they broke it.
>
> Thanks,
> Ash
> http://www.ashleysheridan.co.uk
>


I wish that curl would just stop processing. I think you can use
connection tracking to know what the user has done. I just cannot use it
with my current situation as the code is.

Mike

From: Ashley Sheridan on
On Thu, 2010-06-17 at 09:37 -0400, Michael Alaimo wrote:

> > On Thu, 2010-06-17 at 09:05 -0400, Michael Alaimo wrote:
> >
> >> I am trying to use register_shutdown_function. Previous to the script
> >> shutting down I use curl to grab a website.
> >>
> >> Basically I want to know if the user has hit the stop button or left the
> >> page prematurely.
> >>
> >> The only problem is that curl runs and finishes its call before the
> >> shutdown function is called. Because of this I have no way to know if
> >> the user canceled the request somehow. Any suggestions?
> >>
> >> Mike
> >>
> >>
> >>
> >
> >
> > You can't. When a visitor closes their browser, or stops the page from
> > completing its loading, no message is sent to the server, so your PHP
> > script won't know about it.
> >
> > The only way I know of currently to check for this is use some form of
> > regular check-in, with Ajax or something, that calls home at regular
> > intervals to inform your script that it is indeed still connected. If it
> > fails to call home in time it either means there's lag on the connection
> > or they broke it.
> >
> > Thanks,
> > Ash
> > http://www.ashleysheridan.co.uk
> >
>
>
> I wish that curl would just stop processing. I think you can use
> connection tracking to know what the user has done. I just cannot use it
> with my current situation as the code is.
>
> Mike
>


If this situation is occurring often, maybe a re-think of the structure
of your app. What is cURL fetching? Is it something that you can cache
at your end, like an RSS feed, etc? If so, maybe use the local cache and
only refresh if the local copy is too old.

Thanks,
Ash
http://www.ashleysheridan.co.uk


From: Andrew Ballard on
On Thu, Jun 17, 2010 at 9:05 AM, Michael Alaimo <malaimo(a)sesda2.com> wrote:
> I am trying to use register_shutdown_function.  Previous to the script
> shutting down I use curl to grab a website.
>
> Basically I want to know if the user has hit the stop button or left the
> page prematurely.
>
> The only problem is that curl runs and finishes its call before the
> shutdown function is called.  Because of this I  have no way to know if
> the user canceled the request somehow.  Any suggestions?
>
> Mike

I don't know that it will affect cURL, but if you are just looking to
log completed versus abandoned requests, this might help:

http://www.php.net/manual/en/function.ignore-user-abort.php

Andrew