Question

The bugzilla (perl-based) system has a feature to login automatically by using a http server environment variable. If you fill in the right ID or username, you are automatically logged in.

My server runs Joomla (PHP-based) and has all the information about who is logged in. It runs bugzilla within a sub-frame.

So, how can I set this enviroment value from a PHP script?

To put it in another way, how does the following script return my own-set variable elsewhere in a session from PHP:

#!/usr/bin/perl -wT
print "Content-type: text/html\n\n";
while (($key, $val) = each %ENV) {
        print "$key = $val<BR>\n";
}
Was it helpful?

Solution

This is only a guess, but (assuming you are using Apache2) you can set environment variables using apache_setenv(). However this will only last for the lifetime of the current http request, so I'm not sure how you make it work - the request for the bugzilla page from your browser frame will be considered completely separate by Apache. You might be able to use virtual() to invoke a sub-request to Bugzilla which should then be able see that environment variable. I'm not sure whether you would need to do that for every Bugzilla page request or just the one that initiates the login.

Sorry if I've missed the point or got this very wrong

OTHER TIPS

I'm not sure about what you need to do to create the session in Bugzilla, but I do know what needs to happen on Joomla!'s end: you will want to create a user plugin that responds to the onLoginUser event. For an example of this in action, take a look at the onLoginUser function in plugins/user/joomla.php.

(Note, this is only for Joomla! 1.5)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top