[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']에 들어가던 정보에 가깝게 넣는 방법이다.

더 참고할 만 한 글

2022/12/30 12:26 2022/12/30 12:26
글 걸기 주소 : 이 글에는 글을 걸 수 없습니다.

덧글을 달아 주세요