Re: php script calling another one (on different machine), session variables

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

 



On 8/1/05, James <jtu@xxxxxxxxxxxxx> wrote:
> I have two Windows machines.
> 
> machine A has apache/mysql/php (main host)
> machine B has apache/media server (secondary host for high bandwidth
> media such as video)
> 
> I have admin tools (written in PHP and using sesson variables) on A
> which allows for updating of the database with pictures and such. The
> admin tools also allows you to delete records.
> 
> When the user deletes a record using the admin tools on machine A, I
> also want to delete some media files on machine B.
> 
> At this point, I figured that I should have my admin tools call a PHP
> script on machine B to delete files from the B's filesystem.
> 
> I did a search online and it seems that I should use a header() call
> to call the PHP script on machine B.
Um.. No. You use header when you want to pass additional headers to
the browser, that is downloading your content. An example of this
would be when you want to serve up a PNG image, instead of html, you
would use header("Content-type: image/png")

You can use a header to redirect a user to scripts on another system.
To do this you would pass a location header header("Location:
serverb.com/whatever")

If you want to call a script on machine B, then you can either simply
use file handling functions eg: fopen("http://machineb/page.php";), or
www.php.net/curl

> 
> But what if I want to RETURN the user to the admin tools?  Can I send
> another header() from machine B's script?  What will happen to the
> session variables?  How can I hold onto the session variables while
> moving between web servers?
Do the two machines share a common domain name? are your machines for
example boxa.commondomain.com and boxb.commondomain.com if so then you
can have the cookies(which hold the session tracking number) operate
at the commondomain.com level. All you have to do then is configure
one machine to get session files from the other.

Otherwise you can use session.use_trans_sid and add the SID to the url
when you header("Location")

In windows you could do this by setting up a share containing the
session files, and modding your php.ini file to reflect that the
session info is stored in this file.

If you don't have admin access to your boxes, then you could write a
session handler on one of the systems to dl the necessary sesssion
info on demand. For more info see

Having that said, it seems to be a fairly common requirement - so
there may be a cleaner solution to the one I have outlined here. I've
just never needed it  - so therefore I've never come across it.

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

-- 
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