LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Programming (https://www.linuxquestions.org/questions/programming-9/)
-   -   php on apache - is it possible to change session on a running request from another? (https://www.linuxquestions.org/questions/programming-9/php-on-apache-is-it-possible-to-change-session-on-a-running-request-from-another-4175465793/)

eantoranz 06-12-2013 09:41 PM

php on apache - is it possible to change session on a running request from another?
 
Hi!

I think I'll have to create a php script that will generate a stream (sound) to be played on the client.... the thing is that the script has to generate content according to some variables that should be able to be modified by interacting on the client side.... so I want to know if it's possible to see a change on $_SESSION after the script is running if I change a it from another script/request. In case it's not possible, what are the options for some kind of IPC of this kind?

Thanks in advance.

NevemTeve 06-12-2013 11:36 PM

According your plans, how long (in seconds/minutes/hours) your sound-stream-creating PHP script will be running?

eantoranz 06-13-2013 01:08 AM

Seconds, minutes.

NevemTeve 06-13-2013 02:22 AM

And during that time you want to interact with the running PHP-script?
(Note: I'm not sure Apache will allow your PHP to run for minutes)

eantoranz 06-13-2013 06:57 AM

Yes, in a utopic world i should be able to change its behavior by using some kind of ipc.

NevemTeve 06-13-2013 07:36 AM

And who is the other party in the IPC?

eantoranz 06-13-2013 07:44 AM

Another script that is responding to a request from the client.

Guttorm 06-13-2013 08:45 AM

Hi

When one script is running with a started session, other scripts with the same session id will wait until the first is finished. So it can't be done with $_SESSION.

But it can be done. The content sending script should do a "session_write_close" in the beginning. Then $_SESSION is still available, but read only. This will allow other scripts with the same session id to run. It then has to check something shared every now and act when it sees the changes.

The "shared" can be many things. You could use regular files, like $_SESSION does by default. Or a database. Or you can use shared memory. I think a simple file in /tmp would probably be the easiest. The filename could be generated with tempnam() and stored in $_SESSION.

http://www.php.net/manual/en/book.shmop.php

http://www.php.net/manual/en/book.sem.php

eantoranz 06-13-2013 08:47 AM

I'll take a look. Thanks


All times are GMT -5. The time now is 06:17 AM.