일부 데이터베이스 작업을 수행 한 페이지를 디자인하려고하는데, 사용자가 원래 페이지로 리다이렉트합니다. 문제는 데이터베이스에 연결하기 위해 require()
함수를 사용하므로 헤더가 이미 전송 된 것입니다. meta 태그는 문제가되지 않습니다. 왜냐하면 나는 모든 프로세스가 그들이 나온 페이지에서 완료된 것처럼 보이기를 원하기 때문입니다. 어떤 팁? require()
과 header()
을 사용할 수있는 방법이 있습니까? 아니면 하나 놓아야합니까? header()
에 대한 대안이 있습니까?header() 또는 메타없이 PHP 리디렉션
답변
Artefacto가 지적했듯이 데이터베이스에 연결하면 출력이 필요하지 않습니다. 포함되지 않은 내용 (예 : database_connect.php)을 출력하지 않도록 수정하십시오. "숨겨진"출력을 찾는 데 도움이 될 수있는 "이미 보낸 헤더"문제에 대해서는 this search을 참조하십시오.
당신은 절대적으로 옳았습니다. 내 필수 파일에서 php 태그를 끝낸 후에 여분의 공간을 찾았습니다. – Yoshiyahu
일부 콘텐츠가 이미 전송 된 후에는 머리글을 보낼 수 없습니다. header()
호출을 require()
호출 전에 이동하십시오.
스크립트가 일부 데이터베이스 작업을 수행해야하므로 리디렉션 할 수 없습니다. – Yoshiyahu
일부 콘텐츠가 전송되기 전에 header()
을 보낼 수 없으면 아무 것도 보내기 전에 ob_start();
을 스크립트 시작 부분에 배치하여 output buffering을 사용하십시오. 이렇게하면 모든 내용이 버퍼에 저장되고 스크립트가 끝날 때까지 또는 버퍼의 내용을 수동으로 보낼 때까지 보내지 않습니다.
또 다른 참고로, 단순히 포함 된 스크립트가 보내지 않는 한 다른 파일은 어떤 헤더/내용도 생성하지 않습니다. require
이것의 가장 일반적인 "숨겨진"원인은 <?php ?>
태그 앞이나 뒤에 공백이 있습니다.
아, 버퍼가하는 것입니다. 나는 결코 모른다. – think123
데이터가 클라이언트로 전송 된 후에는 헤더를 보낼 수 없습니다.
그러나 require
을 사용하면 결과물을 출력하지 않습니다. 귀하의 권리를 이해하는 경우 데이터베이스 파일을 포함하고 쿼리를 실행 한 다음 사용자를 리디렉션 할 수 있습니다. 이것은 완벽하게 유효합니다.
출력을 보내야하는 경우 (리디렉션을해야하는 이유는 무엇입니까?) 다른 옵션은 출력 버퍼링을 사용하는 것입니다. 출력 버퍼링을 사용하면 데이터를 반향 출력 할 때 브라우저로 데이터를 보내지 않지만 버퍼에 저장합니다. ob_end_flush으로 전화를 걸거나 스크립트가 끝나면 데이터가 전송됩니다. ob_end_flush 이후에는 새 헤더를 보낼 수 없습니다. ob_start을 사용하여 출력 버퍼링을 시작합니다.
출력을 보내지 않습니다. 'require()'는 헤더를 자동으로 보내는 것 같습니다. 출력 텍스트가 없습니다. – Yoshiyahu
ob_start(); // start output buffering
echo "<html......"; // You can even output some content, it will still work.
.
.
.
.
.
header("Location: mypage.php");
ob_flush(); //flush the buffer
이 경우 모든 출력이 버퍼링됩니다. 즉, 헤더가 먼저 처리 된 다음 출력이 재생됩니다.
출력 버퍼링을 사용할 때 header()
과 require()
을 사용할 수 있습니다. 즉, 스크립트 전체가 버퍼링되고 스크립트가 끝나면 먼저 전송됩니다.
나는이
ob_start("ob_gzhandler"); //begin buffering the output
require_once('/classes/mysql.php');
// Some code where I access the database.
header('/somepage.php');
exit;
ob_flush(); //output the data in the buffer
- 1. php header download 리디렉션
- 2. POST 변수를 사용하여 PHP header() 리디렉션
- 3. 리디렉션 전에 PHP header() & exit()가 스크립트를 안전하게 종료합니까?
- 4. ajax 호출에서 php header() 명령을 사용하여 리디렉션 할 수 있습니까?
- 5. HttpResponse.TransmitFile의 리디렉션 또는 PHP 버전?
- 6. 빠른 리디렉션, PHP 또는 htaccess?
- 7. 페이지 리디렉션 방법 - 자바 스크립트 또는 PHP?
- 8. header()를 사용하여 $ _GET 변수로 안전하게 리디렉션
- 9. php image jpg header problem
- 10. xml tree with php + header
- 11. 메시지로 PHP 리디렉션
- 12. PHP, 다른 페이지로 리디렉션
- 13. php jquery 조건부 알림 또는 리디렉션
- 14. PHP 리디렉션 루프
- 15. PHP 인라인 URL 리디렉션?
- 16. PHP 301 리디렉션 아이디어
- 17. php 클래스에서 $ header 변수가 정의되지 않았습니다.
- 18. PHP 리디렉션
- 19. PHP 리디렉션
- 20. 리디렉션 기능 PHP
- 21. php - 색인에 서 언어 리디렉션
- 22. "header()"PHP 함수가 전역 변수를 설정 해제합니까?
- 23. php header ('Location :')로 리퍼러 설정
- 24. IE6에서 @header()로 리디렉션 한 후 전체 페이지가 비워집니다.
- 25. onClick PHP PHP 함수 다음 리디렉션
- 26. 예외 : 리디렉션 또는 렌더링?
- 27. PHP 세션에서의 JavaScript 리디렉션 문제
- 28. PHP 301 리디렉션 위치 URI 형식
- 29. PHP 로그인 리디렉션
- 30. 301 리디렉션 php 사이트에 대한 windows
어떻게 데이터베이스에 연결이 헤더를 전송하게 않습니다 수행하여 그것을 짓을 한거야? – Artefacto