[PHP] Undefined array key "HTTP_HOST" in ...
Warning: Undefined array key "HTTP_HOST" in /.../xxx.php on line 56
Deprecated: strstr(): Passing null to parameter #1 ($haystack) of type string is deprecated in /.../xxx.php on line 56
$_SERVER['HTTP_HOST']는 값이 비는 때가 더러 있다. 이를테면 HTTP/3을 쓰는 때에 $_SERVER['HTTP_HOST']에 값이 들어가지 않는다. $_SERVER['HTTP_HOST']가 비는 것 때문에 PHP 프로그램에 오류가 난다면, $_SERVER['SERVER_NAME']을 써서 $_SERVER['HTTP_HOST']에 값을 채워 주는 방법을 쓸 수 있다.
if(!isset($_SERVER['HTTP_HOST'])) {
$_SERVER['HTTP_HOST'] = $_SERVER['SERVER_NAME'];
}
또는
if(!isset($_SERVER['HTTP_HOST'])) {
$_SERVER['HTTP_HOST'] = $_SERVER['SERVER_NAME'].($_SERVER['SERVER_PORT']==80 || $_SERVER['SERVER_PORT']==443 ? '' : ':'.$_SERVER['SERVER_PORT']);
}
$_SERVER['HTTP_HOST']는 이용자(클라이언트) 쪽에서 보내므로 값이 빌 때가 있지만, $_SERVER['SERVER_NAME']는 서버 쪽에서 정하므로 값이 비는 때가 없다.
$_SERVER['HTTP_HOST']에는 $_SERVER['SERVER_NAME']에 들어가는 서버 이름 정보에 더해서 포트 번호가 더 들어갈 수 있으므로, 아래쪽이 $_SERVER['HTTP_HOST']에 들어가던 정보에 가깝게 넣는 방법이다.
덧글을 달아 주세요