Re: pulling script in interval of second.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



your code did not make any sense, PHP code executing from top to bottom line by line. you can't expect it to enter the loop and do the unset($_SESSION) staff at the same time.
let me tell you what your code do exactly:

1. at first you set and unset a session key for 50 times, the $st 's value is the time() of the 50th loop plus 10 2. you enter a loop and check if time() > $st, as $st is time() + 10 , it is always larger than time(), so it enter the if statement and write the temp file , then the process exist



于 2014年07月01日 11:07, hadi 写道:
As http server is stateless, php can not know if a client has stop requesting.
you should do your trick on the client side.

But if you insist doing this on the server, you may need to write a daemon
process or crontab job , here's the step

1. Everytime the client make a request, your php code write a timestamp in a
temp file.
2. Your daemon process should read this file and compare to the timestamp
by NOW, if it is larger than you expect ,then do the if statement thing in the
daemon process.
Look what I have accomplished in my script, the problem in my script when " session_destroy();" and " unset($_SESSION['timeout']);" happen it supposed to kill "timeout" then "while loop if(time() >  $st) " will stop. But theses not happing im wondering why. Can you look in my code and see?

<?php
session_start();
?>


<?php

for( $x=0; $x< 50; $x++ )

{

$st = $_SESSION['timeout'] = time() + 10;

session_destroy();

unset($_SESSION['timeout']);
}

$loop= true;

while($loop)

{

if(time() >  $st)

{

file_put_contents('/tmp/phptest1234.txt', 'test');
$loop=false;
}
}

?>

Hi hadi:

As http server is stateless, php can not know if a client has stop requesting.
you should do your trick on the client side.

But if you insist doing this on the server, you may need to write a daemon
process or crontab job , here's the step

1. Everytime the client make a request, your php code write a timestamp in a
temp file.
2. Your daemon process should read this file and compare to the timestamp
by NOW, if it is larger than you expect ,then do the if statement thing in the
daemon process.

于 2014年07月01日 08:21, hadi 写道:
You will have to make the script 2 parts. One to reload and the other
to execute the else (exiting). You need to use ajax to call the php
script every second (for the first part) and use the page's onunload
method to execute the second part (user exited):


http://www.w3schools.com/jsref/event_onunload.asp
I already tried your method with onunload, the problem with onunload
when I change the page the script getting execute.

I already have javascript to pull php script, just I need php script
doing the flowing; when javascript stop pulling php script. Block in
if  statement should run.

Can you give me php script ? please.

On Mon, Jun 30, 2014 at 7:56 PM, hadi <almarzuki2011@xxxxxxxxxxx>
wrote:
I have javascript to pull my php script every interval of second.

When javascript stop pulling my php script, block in if statement
should execute.

Can someone provide me with the php script please ?

Thank you.


You will have to make the script 2 parts. One to reload and the other
to execute the else (exiting). You need to use ajax to call the php
script every second (for the first part) and use the page's onunload
method to execute the second part (user exited):


http://www.w3schools.com/jsref/event_onunload.asp


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php





[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux