使用$ _SERVER ['HTTPS']的未定义索引错误

时间:2011-02-06 04:12:18

标签: php

调试正在抛出......

  

注意:未定义的索引:HTTPS中的   C:\ Xampplite文件\ htdocs中\测试网站\可湿性粉剂内容\主题\ mytheme的\的header.php   第4行

如何更改下面的功能以防止错误?

function curPageURL() {
 $pageURL = 'http';
 if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
 }

这会等同吗?

if ( isset( $_SERVER["HTTPS"] )) {$pageURL .= "s";}

2 个答案:

答案 0 :(得分:34)

如果请求不安全,某些服务器根本不设置$_SERVER['HTTPS']。其他一些人可能会将其设置为'off'。你必须这样检查:

if ( isset( $_SERVER["HTTPS"] ) && strtolower( $_SERVER["HTTPS"] ) == "on" ) {
    $pageURL .= "s";
}

答案 1 :(得分:3)

Notice: Undefined index: HTTPS表示HTTPS不是$_SERVER数组中的关键字。它不存在,因此您无法将其与"on"进行比较。

在这种情况下,

isset()检查变量是否“设置”或甚至可用于参考。这将是您的最佳选择。