사용자가 특정 페이지에 액세스하지 못하게하려면 사용자를 리디렉션해야합니다. 예를 들어 header('Location: ../acc/login.php');
의 신뢰성은 어느 정도입니까? 브라우저가 302 개의 오류를 무시할 수 있습니까? 이것이 올바른 방법입니까? 미리 감사드립니다!PHP 헤더(); 신뢰성
답변
당신이하고있는 일은 많이 달라집니다. 기술적으로 말하면 header()
은 다소 다소입니다. PHP 사용자 중 상당수가 문제가있어 제대로 작동하지 않기 때문에 약간만 사용하십시오.
출력이 이미 브라우저로 전송 된 경우 PHP가 작동하지 않게합니다. 과감한 예 :
<protected page content here>
<?php
header('Location: login-first.php');
exit();
?>
전혀 작동하지 않습니다. 결국 경고가있는 오류 메시지조차도 보게됩니다.
헤더는 디자인 상 다른 컨텐트 (응답 본문)보다 먼저 발송해야합니다. 응답 본문이 이미 시작된 경우 PHP는 더 이상 보낼 수 없으므로 PHP는이 경우 응답하지 않습니다.
그러나 응답 본문 앞에 머리글을 보내면 해당 기능이 작동합니다. 또한 엉망 뭔가 최대 분명히 위험성도 더 이상 그 과감한되지 않습니다 : 당신이 리디렉션 후 스크립트를 종료하지 않으면
<?php
header('Location: login-first.php');
exit();
?>
<protected page content here>
브라우저는 header('Location: ');
전달을 무시할 수 있습니다.
그 이유는 브라우저가 전달을 존중하지 않으면 나머지 코드가 실행되지 않도록 항상 head() 호출 이후에 반환해야합니다.
올바른 방법입니다.
나머지 페이지를 표시하기 전에 header 명령을 보낸 다음 exit 명령 "exit()"(서버에서 PHP 코드 실행을 중지하기 위해)를 보냅니다. 이 방법을 사용하면 302 리디렉션을 무시하더라도 사용자가 페이지 콘텐츠를 보내지 않습니다.
그리고 네 사용자는 302 리디렉션을 무시할 수 있습니다 :
감사합니다. 귀하의 답변이 많이 설명되었습니다. 감사! – Andrey
header
100 % 신뢰할 수있다.
그러나 header('Location: ../acc/login.php')
은 브라우저에서 웹 사이트의 실제 위치로 평가되며 ../acc/login.php는 유효한 URL을 만들지 않습니다!
- 1. 스트림 신뢰성
- 2. 무결성과 신뢰성
- 3. Logback 신뢰성
- 4. PHP 헤더
- 5. 패킷 개재시 TCP의 신뢰성
- 6. EJB 타이머 및 신뢰성
- 7. localhost에서 UDP의 신뢰성
- 8. HTTP HEAD 방법의 신뢰성
- 9. Android에서 videoView의 신뢰성
- 10. 인덱싱 된보기의 신뢰성
- 11. UDP 로컬 소켓 신뢰성
- 12. 스프링 통합의 신뢰성 esb
- 13. PHP 헤더() 문제
- 14. PHP 파일 다운로드 헤더
- 15. PHP 헤더() 함수 휴대
- 16. PHP 헤더 정보
- 17. PHP 및 헤더 사용
- 18. PHP 비누 헤더 도움말
- 19. PHP 헤더 만료 검사
- 20. 헤더 함수에서 PHP 변수를로드하십시오.
- 21. HTTP 헤더 차이 (PHP)
- 22. PHP SoapClient와 복잡한 헤더
- 23. 변수가있는 PHP 리디렉션 헤더
- 24. PHP 헤더 방법은
- 25. PHP 헤더 위치
- 26. 부트 스트랩 PHP 헤더
- 27. PHP 메일 헤더 문제
- 28. PHP 헤더 위치 문제
- 29. PHP Mail() 함수 헤더
- 30. PHP 헤더 및 다운로드
, 검색 엔진은 다음과 같은 내용을 무시하고 인덱스 할 수 있습니다. – DCoder
302는 오류가 아니며 긍정적 인 응답 코드입니다. – Ozerich
올바른 방법이며 모든 최신 브라우저에서 지원합니다. – Serge