이 기사의 예에서는 thinkphp의 잘못된 세션 및 쿠키에 대한 해결 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
문제 설명:
로컬에서 디버깅할 때 세션과 쿠키에 문제가 없습니다. 에 업로드한 후 세션을 사용합니다. 서버에서 점프를 발견했습니다. 그 후 세션이 더 이상 존재하지 않습니다. 이유는 무엇입니까? 현재 페이지의 출력 세션이 존재합니다.
제가 독학을 하다보니 조언을 구해줄 선생님도 없고, 조언해주시는 분들도 많지 않아 이런 문제를 겪게 되었습니다. PHP를 하고 있으니 정말 비극적이네요... 바이두와 바이두에서 많은 사람들이 말도 안 되는 소리를 하고 있는데 문제를 해결할 수 있는 게 아무것도 없군요. 수정 3일만에 드디어 근본 원인을 찾아냈습니다. thinkphp를 지원하는 대부분의 서버는 Linux 시스템이고 우리의 프로그래밍은 기본적으로 동일합니다. Windows의 경우 BOM 헤더 문제가 발생하며 PHP는 BOM 헤더를 구문 분석할 수 없지만 직접 제거하여 세션과 쿠키가
해결책:
BOM 헤드란 무엇입니까? UTF-8로 인코딩된 파일에서 BOM은 파일 헤더에 있으며 3바이트를 차지합니다. 이는 파일이 UTF-8 인코딩에 속함을 나타내는 데 사용됩니다. 이제 BOM 헤더를 인식하는 소프트웨어가 많이 있습니다. PHP와 같이 여전히 BOM 헤더를 인식할 수 없는 경우가 있는데, 이는 메모장으로 UTF-8 인코딩을 편집한 후 오류가 발생하는 이유입니다.
BOM 헤더:
1 , editplus로 BOM 헤더를 제거하는 방법
편집기가 UTF8 인코딩 형식으로 조정되면 앞에 숨겨진 문자(즉, BOM) 문자열이 나타납니다. 파일이 UTF8로 인코딩되었는지 여부를 편집기에서 식별하는 데 사용됩니다.
Editplus를 실행하고 도구를 클릭한 다음 환경 설정을 선택하고 파일을 선택한 다음 UTF-8 식별을 선택하면 항상 서명이 삭제됩니다. , BOM 없이 PHP 파일을 편집하고 저장합니다.
2. BOM 헤더를 제거하는 Ultraedit 방법
파일을 연 후 다른 이름으로 저장 옵션에서 인코딩 형식을 선택합니다(utf- BOM 헤더가 없는 8), 확인하면 괜찮을 것입니다. bom 헤더는 매우 간단합니다.
utf8의 BOM 정보는 PHP 파일의 저장 방법을 나타냅니다. BOM이 포함된 UTF-8은 일반적으로 이러한 이유로 인해 발생하지 않습니다.
header("Content-type: text/html; charset=utf-8");
이 문장은 BOM만 사용할 수 있습니다. WINDOWS에서 "메모장"을 사용하여 UTF-8로 저장하면 WINHEX를 사용하여 처음 2바이트가 삭제되도록 변환할 수 있습니다.
Dreamweaver의 인코딩 설정에서 BOM 포함 여부를 설정할 수 있습니다. 일반적으로 PHP의 출력이 그림(GDI 스트림)이 아닌 한 BOM은 문제를 일으키지 않습니다. GDI 스트림에 추가 문자가 있으면
바랍니다. 이 기사는 ThinkPHP 프레임워크를 기반으로 하는 모든 사람의 PHP 프로그램 설계에 도움이 될 것입니다.
thinkphp의 유효하지 않은 세션 및 쿠키 해결과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!