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

php
2022-08-30 20:49:17

调试正在抛出...

注意:未定义的索引:C:\xampplite\htdocs\testsite\wp-content\themes\mytheme\header中的HTTPS.php第4行

如何更改下面的函数以防止错误?

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

这是等价的吗?

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

答案 1

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

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

答案 2

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

isset()检查变量是否“设置”,或者在这种情况下是否可供参考。对于您的情况,这将是最佳选择。


推荐