PHP는 - 내가 Location () 헤더를 호출 한 후 exit ()를 호출해야합니까?
PHPPHP는 - 내가 Location () 헤더를 호출 한 후 exit ()를 호출해야합니까?
리디렉션 함수 헤더를 호출 한 후에 exit를 호출해야합니까?
<?php // fileA
$urlFailToGoTo = '/formerror.php';
if (sth)
{
header(sprintf("Location: %s", $urlFailToGoTo));
exit(); //should I call exit() here? or return?
}
?>
고맙습니다
해결법
-
==============================
1.당신은 분명히해야합니다. 그렇지 않으면 스크립트 실행이 종료되지 않습니다. 다른 헤더 만 설정하면 리디렉션하기에 충분하지 않습니다.
당신은 분명히해야합니다. 그렇지 않으면 스크립트 실행이 종료되지 않습니다. 다른 헤더 만 설정하면 리디렉션하기에 충분하지 않습니다.
-
==============================
2.당신은 @rgroli가 설명하는 것처럼해야합니다. 대괄호를 사용하지 않으려면 exit ()에서 header ()를 호출 할 수도 있습니다.
당신은 @rgroli가 설명하는 것처럼해야합니다. 대괄호를 사용하지 않으려면 exit ()에서 header ()를 호출 할 수도 있습니다.
if(sth) exit(header("Location: http://example.com"));
HTTP / 1.1의 위치 헤더에는 항상 절대 경로가 필요합니다. 여기의 설명을 참조하십시오.
참고 : 이것은 해킹이 아닙니다. 매개 변수가 정수인 경우에만 종료 코드가 사용되기 때문에 header ()는 void (코드 = 0, 정상 종료와 함께 종료 됨)를 생성합니다. Location 헤더 뒤에 있어야하는 것처럼 exit_header () 함수로 보아라.
-
==============================
3.일반적으로 종료하는 것이 좋습니다. (참고 - 키워드이므로 브라우저가 새 페이지로 리디렉션되기 때문에 Location : 헤더를 보낸 후 ()가 필요하지 않으므로 현재 스크립트를 더 이상 실행하지 않는 것이 일반적입니다.
일반적으로 종료하는 것이 좋습니다. (참고 - 키워드이므로 브라우저가 새 페이지로 리디렉션되기 때문에 Location : 헤더를 보낸 후 ()가 필요하지 않으므로 현재 스크립트를 더 이상 실행하지 않는 것이 일반적입니다.
-
==============================
4.헤더 아래에 코드 (PHP 또는 HTML)가없는 경우에는 필요하지 않습니다.
헤더 아래에 코드 (PHP 또는 HTML)가없는 경우에는 필요하지 않습니다.
-
==============================
5.exit는 잘못된 코딩입니다.
exit는 잘못된 코딩입니다.
큰 프로젝트를 개발하고 PHPUnit Test Cases를 만들고 싶다면 종료하면 문제가 발생할 수 있습니다.
exit는 스크립트와 실행중인 테스트를 종료합니다! 테스트를 복구하고 실패했는지 여부를 알 수있는 방법이 없습니다.
리디렉션을 사용하면 출력이없고 스크립트가 자연스럽게 끝나는 방식으로 코드를 구성하십시오.
from https://stackoverflow.com/questions/3553698/php-should-i-call-exit-after-calling-location-header by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
PHP (GET, POST, PUT 또는 DELETE)에서 요청 유형 감지 (0) | 2018.09.09 |
---|---|
코드 보안을 위해 PDO와 암호 해싱을 어떻게 사용합니까? [닫은] (0) | 2018.09.09 |
구문 분석 오류 : 구문 오류, PHP 코드에서 예기치 않은 파일 끝 (0) | 2018.09.09 |
PHP에서 가중치로 무작위 결과를 생성 하시겠습니까? (0) | 2018.09.09 |
MySQL 데이터의 자동화 된 또는 정기적 인 백업 (0) | 2018.09.09 |