Re: Re: header
| From: | Jochem Maas | Date: | Wed, 17 Sep 2008 02:15:54 +0000 |
| Subject: | Re: Re: header | ||
| References: | 1 2 3 4 5 6 7 8 9 10 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-280335@lists.php.net to get a copy of this message | ||
Robert Cummings schreef:
On Tue, 2008-09-16 at 21:18 +0100, Nathan Rixham wrote:although I hazard to offer the following as more complete: function get_http_protocol() { $proto = 'http'; if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) !== 'off') { $proto .= 's'; } return $proto . '://'; # Adding the :// is optionial } because if $_SERVER['HTTPS'] happens to be false (which I don't think it ever should be) it would cause the return value to be 'https://' which I don't think would be correct in that case (even thought the case is theoretical and likely to indicate an engine problem if it did occur)Jim Lucas wrote:Just because 443 is the default HTTPS port, doesn't mean HTTPS is being served over 443, nor does it mean HTTPS isn't also being served over another port. This is less effective than using $_SERVER['HTTPS'].Robert Cummings wrote:lol this one's got my brain going; here's mine: <?php function get_http_protocol() { return 'http' . ($_SERVER['SERVER_PORT'] == 443 ? 's' : '') . '://'; } echo get_http_protocol(); ?>On Tue, 2008-09-16 at 18:13 +0100, Nathan Rixham wrote:my way <?php function get_http_protocol() { $proto = 'http'; if ( isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off' ) {I also meant: define('PUBLIC_BASE_HREF' , 'http://php.net/') <head> <base href="<?php echo PUBLIC_BASE_HREF; ?>" /> </head> and further thinking there has to be an easier / cleaner way of getting "http://" / "https://" in php..What's wrong with $_SERVER['HTTPS'] ? Cheers, Rob.$proto .= 's';} return $proto . '://'; # Adding the :// is optionial } echo get_http_protocol(); ?> That is about as simple as you can get.
Cheers, Rob.