Home > Archive > PHP DB > April 2007 > Re: [PHP-DB] Determine AuthMySQL* directives in script?
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Re: [PHP-DB] Determine AuthMySQL* directives in script?
|
|
|
| Dwight Altman wrote:
> Is there an existing way via a function or variable to determine Apache
> mod_auth_mysql directives (specifically AuthMySQLDB) in use for the current
> script?
>
> On our servers, some directories use a basic .htaccess file while some use a
> database under mod_auth_mysql while the latest user management system uses a
> different database still using mod_auth_mysql.
>
> I would like to have my PHP script determine which .htaccess technique is
> being used for its directory, so that the script checks the correct database
> for more fine grained ACL role privileges.
>
> An alternative is that I'd have to write a routine to parse the .htaccess
> file to check for the directive in a regular expression (and if that
> directive is in use {regardless of whitespace} or commented out and not in
> use).
Depends. How are you specifying the variables in the .htaccess file?
Are they 'ENV' variables? Do a print_r($_ENV); and they should show up..
--
Postgresql & php tutorials
http://www.designmagick.com/
| |
| Dwight Altman 2007-04-19, 6:57 pm |
| I only agree to it "depending" if I have to write my own function using a
regular expression to parse the .htaccess file, but I was wondering if it is
already available from a PHP function or variable.
In the .htaccess file, the AuthMySQLDB directive:
1) may not be present
2) may be commented out
3) may appear like the following starting in the first columns:
AuthMySQL...
AuthMySQLDB aDataBaseName
AuthMySQL...
4) may be commented out with a valid entry present
#AuthMySQLDB oldInactiveDataBaseName
AuthMySQLDB newActiveDataBaseName
5) who knows? -- it may have other "white space" and not start in the first
column
AuthMySQLDB newActiveDataBaseName
Is that what you meant? How else can it be specified in the .htaccess file?
It does not appear in $_ENV.
I also didn't see anything in the apache specific functions catching my eye,
however I did see the mod_auth_mysql module loaded with
"apache_get_modules()" (but I can't rely on this because I need to know
which database is being used).
apache_getenv seems to load what I already see in phpinfo(). I just don't
see an AuthMySQLDB entry.
Regards,
Dwight
> -----Original Message-----
> From: Chris [mailto:dmagick@gmail.com]
> Sent: Wednesday, April 18, 2007 7:28 PM
> To: Dwight Altman
> Cc: php-db@lists.php.net
> Subject: Re: [PHP-DB] Determine AuthMySQL* directives in script?
>
> Dwight Altman wrote:
> current
> use a
> uses a
> is
> database
> .htaccess
> in
>
> Depends. How are you specifying the variables in the .htaccess file?
>
> Are they 'ENV' variables? Do a print_r($_ENV); and they should show up..
>
>
> --
> Postgresql & php tutorials
> http://www.designmagick.com/
| |
|
| Dwight Altman wrote:
> I only agree to it "depending" if I have to write my own function using a
> regular expression to parse the .htaccess file, but I was wondering if it is
> already available from a PHP function or variable.
>
> In the .htaccess file, the AuthMySQLDB directive:
> 1) may not be present
> 2) may be commented out
> 3) may appear like the following starting in the first columns:
> AuthMySQL...
> AuthMySQLDB aDataBaseName
> AuthMySQL...
> 4) may be commented out with a valid entry present
> #AuthMySQLDB oldInactiveDataBaseName
> AuthMySQLDB newActiveDataBaseName
> 5) who knows? -- it may have other "white space" and not start in the first
> column
> AuthMySQLDB newActiveDataBaseName
>
> Is that what you meant? How else can it be specified in the .htaccess file?
No, I meant it depends on how it is defined in the htaccess file.
http://httpd.apache.org/docs/1.3/mod/mod_env.html
SetEnv AuthMySQLDB dbName
would allow you to:
$dbname = getenv('AuthMySQLDB');
Apart from that I'm out of ideas :)
--
Postgresql & php tutorials
http://www.designmagick.com/
| |
| Dwight Altman 2007-04-20, 6:57 pm |
| Cool alternative.
We don't write .htaccess files like that though.
Anyway, I actually wrote a function to parse the .htaccess file, but I will
try this SetEnv/getenv technique also.
Thanks.
Regards,
Dwight
> -----Original Message-----
> From: Chris [mailto:dmagick@gmail.com]
> Sent: Thursday, April 19, 2007 7:20 PM
> To: Dwight Altman
> Cc: php-db@lists.php.net
> Subject: Re: [PHP-DB] Determine AuthMySQL* directives in script?
>
> Dwight Altman wrote:
> a
> it is
> first
> file?
>
> No, I meant it depends on how it is defined in the htaccess file.
>
> http://httpd.apache.org/docs/1.3/mod/mod_env.html
>
> SetEnv AuthMySQLDB dbName
>
> would allow you to:
>
> $dbname = getenv('AuthMySQLDB');
>
>
> Apart from that I'm out of ideas :)
>
> --
> Postgresql & php tutorials
> http://www.designmagick.com/
| |
| Dwight Altman 2007-04-20, 6:57 pm |
| It appears that apache still needs the directive without the SetEnv prefix
to actually use the mod_auth_mysql authentication, but an additional line
with the SetEnv directive will pass that variable to the script.
AuthMySQLDB aDataBaseName
SetEnv AuthMySQLDB aDataBaseName
SetEnv ApparentlyAnyVariableName aValue
So it isn't really reading the apache AuthMySQLDB directive in use, and we'd
have to hope that whoever wrote the .htaccess file included the correct
database name.
The following could happen:
#AuthMySQLDB oldDataBaseNameNotBeingUsedSinceItIsComm
entedOut
AuthMySQLDB newDataBaseNameBeingUsed
SetEnv AuthMySQLDB wrongDataBaseNamePassedToScript
So if anyone knows a function or variable to definitely get the Apache
AuthMySQLDB directive in use for the current script, it may be safer than my
attempt to parse the .htaccess file.
Regards,
Dwight
> -----Original Message-----
> From: Dwight Altman [mailto:dwight@multicam.com]
> Sent: Friday, April 20, 2007 9:32 AM
> To: php-db@lists.php.net
> Subject: RE: [PHP-DB] Determine AuthMySQL* directives in script?
>
> Cool alternative.
>
> We don't write .htaccess files like that though.
>
> Anyway, I actually wrote a function to parse the .htaccess file, but I
> will
> try this SetEnv/getenv technique also.
>
> Thanks.
>
> Regards,
> Dwight
> using
>
> --
> PHP Database Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
|
|
|
|
|