Re: [PHP] server name that the user agent used
On 9/13/09 10:24 PM, Tommy Pham tommy...@yahoo.com wrote: --- On Sun, 9/13/09, Tom Worster f...@thefsb.org wrote: From: Tom Worster f...@thefsb.org Subject: [PHP] server name that the user agent used To: PHP General List php-general@lists.php.net Date: Sunday, September 13, 2009, 8:21 PM when using apache with one vhost that responds to a few different hostnames, e.g. domain.org, y.domain.org, x.domain.org, let's say the vhost's server name is y.domain.org and the other two are aliases, is there a way in php to know which of these was used by the user agent to address the server? Did you see what comes up with php_info() for $_SERVER[SERVER_NAME] or $_SERVER[HTTP_HOST] ? SERVER_NAME returns whatever apache has as the vhost's configured server name. the php manual says of HTTP_HOST: Contents of the Host: header from the current request, if there is one. in which the last 4 words are a little off-putting. but: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.23 i much more encouraging. the field is mandatory and should have what i'm looking for. it's absence is cause for a 400. casual testing (with a modern non-ie browser) seems to bear this out. so i'll try using that with fallback to my current techniques if i don't find a good value in HTTP_HOST. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] server name that the user agent used
On 9/14/09 9:03 AM, Tom Worster f...@thefsb.org wrote: On 9/13/09 10:24 PM, Tommy Pham tommy...@yahoo.com wrote: --- On Sun, 9/13/09, Tom Worster f...@thefsb.org wrote: From: Tom Worster f...@thefsb.org Subject: [PHP] server name that the user agent used To: PHP General List php-general@lists.php.net Date: Sunday, September 13, 2009, 8:21 PM when using apache with one vhost that responds to a few different hostnames, e.g. domain.org, y.domain.org, x.domain.org, let's say the vhost's server name is y.domain.org and the other two are aliases, is there a way in php to know which of these was used by the user agent to address the server? Did you see what comes up with php_info() for $_SERVER[SERVER_NAME] or $_SERVER[HTTP_HOST] ? SERVER_NAME returns whatever apache has as the vhost's configured server name. the php manual says of HTTP_HOST: Contents of the Host: header from the current request, if there is one. in which the last 4 words are a little off-putting. but: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.23 i much more encouraging. the field is mandatory and should have what i'm looking for. it's absence is cause for a 400. casual testing (with a modern non-ie browser) seems to bear this out. so i'll try using that with fallback to my current techniques if i don't find a good value in HTTP_HOST. extra info: the Host: header isn't in HTTP/1.0, hence those off-putting 4 words, i guess. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] server name that the user agent used
Tom Worster wrote: On 9/13/09 10:24 PM, Tommy Pham tommy...@yahoo.com wrote: --- On Sun, 9/13/09, Tom Worster f...@thefsb.org wrote: From: Tom Worster f...@thefsb.org Subject: [PHP] server name that the user agent used To: PHP General List php-general@lists.php.net Date: Sunday, September 13, 2009, 8:21 PM when using apache with one vhost that responds to a few different hostnames, e.g. domain.org, y.domain.org, x.domain.org, let's say the vhost's server name is y.domain.org and the other two are aliases, is there a way in php to know which of these was used by the user agent to address the server? Did you see what comes up with php_info() for $_SERVER[SERVER_NAME] or $_SERVER[HTTP_HOST] ? SERVER_NAME returns whatever apache has as the vhost's configured server name. the php manual says of HTTP_HOST: Contents of the Host: header from the current request, if there is one. in which the last 4 words are a little off-putting. but: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.23 i much more encouraging. the field is mandatory and should have what i'm looking for. it's absence is cause for a 400. casual testing (with a modern non-ie browser) seems to bear this out. so i'll try using that with fallback to my current techniques if i don't find a good value in HTTP_HOST. The reason that it might not be available is that PHP is not always running in a web context. $_SERVER['HOST_NAME'] would have no meaning, for instance, in the CLI SAPI. However, if running under a web SAPI, and if the web server provides the info, PHP will pass it on to its scripts. Regards, Torben -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] server name that the user agent used
On 9/14/09 2:11 PM, Lars Torben Wilson tor...@php.net wrote: Tom Worster wrote: On 9/13/09 10:24 PM, Tommy Pham tommy...@yahoo.com wrote: --- On Sun, 9/13/09, Tom Worster f...@thefsb.org wrote: From: Tom Worster f...@thefsb.org Subject: [PHP] server name that the user agent used To: PHP General List php-general@lists.php.net Date: Sunday, September 13, 2009, 8:21 PM when using apache with one vhost that responds to a few different hostnames, e.g. domain.org, y.domain.org, x.domain.org, let's say the vhost's server name is y.domain.org and the other two are aliases, is there a way in php to know which of these was used by the user agent to address the server? Did you see what comes up with php_info() for $_SERVER[SERVER_NAME] or $_SERVER[HTTP_HOST] ? SERVER_NAME returns whatever apache has as the vhost's configured server name. the php manual says of HTTP_HOST: Contents of the Host: header from the current request, if there is one. in which the last 4 words are a little off-putting. but: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.23 i much more encouraging. the field is mandatory and should have what i'm looking for. it's absence is cause for a 400. casual testing (with a modern non-ie browser) seems to bear this out. so i'll try using that with fallback to my current techniques if i don't find a good value in HTTP_HOST. The reason that it might not be available is that PHP is not always running in a web context. $_SERVER['HOST_NAME'] would have no meaning, for instance, in the CLI SAPI. However, if running under a web SAPI, and if the web server provides the info, PHP will pass it on to its scripts. and, for the record, in the web environment there's cause for caution using either HTTP_HOST or, if UseCanonicalName is off or you can't be sure of its value, SERVER_NAME: http://shiflett.org/blog/2006/mar/server-name-versus-http-host in my current app, i should be able to match for acceptable values and fall back to defaults on failure. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] server name that the user agent used
--- On Sun, 9/13/09, Tom Worster f...@thefsb.org wrote: From: Tom Worster f...@thefsb.org Subject: [PHP] server name that the user agent used To: PHP General List php-general@lists.php.net Date: Sunday, September 13, 2009, 8:21 PM when using apache with one vhost that responds to a few different hostnames, e.g. domain.org, y.domain.org, x.domain.org, let's say the vhost's server name is y.domain.org and the other two are aliases, is there a way in php to know which of these was used by the user agent to address the server? Did you see what comes up with php_info() for $_SERVER[SERVER_NAME] or $_SERVER[HTTP_HOST] ? -- 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