PHP 헤더 리디렉션 문제 : URL 매개 변수 통과 및 데이터 업데이트 페이지 새로 고침
이 기사는 PHP에서 페이지 리디렉션에 Header () 함수를 사용할 때 데이터가 업데이트 된 후에는 URL 매개 변수가 잘못 전달되고 페이지를 올바르게 새로 고칠 수 없다는 문제를 해결하는 것을 목표로합니다. 일반적인 오류 원인을 분석하고 올바른 코드 예제 및 자세한 설명을 제공함으로써 개발자가 유사한 문제를 피하고 정확한 페이지 점프 및 데이터 표시를 달성 할 수 있도록 도와줍니다.
문제 분석
페이지 리디렉션에 PHP의 헤더 () 함수를 사용하는 경우 URL 매개 변수의 올바른 전달이 중요합니다. 일반적인 오류는 다음과 같습니다.
- 문자열 스 플라이 싱 오류 : Header () 함수에서 URL 문자열 스 플라이 싱 메소드가 잘못되어 URL 매개 변수가 잘못 인코딩됩니다.
- URL 매개 변수는 올바르게 전달되지 않습니다. 데이터가 업데이트 된 후 업데이트 된 데이터 또는 관련 ID가 올바르게 대상 페이지로 전달되지 않아 페이지가 업데이트 된 정보를 올바르게 표시하지 않습니다.
해결책
1. 올바른 URL 문자열 스티치
PHP에서는 "문자열 스 플라이 싱을 단순화하고 변수를 문자열로 직접 내리는 것입니다. 단일 따옴표를 사용하지 마십시오"와 도트를 사용하지 마십시오. 문자열 스 플라이 싱을 사용하여 오류 가능성이 줄어 듭니다.
Error example:
헤더 ( "위치 : ../lid.php?lidnummer= '. $ lidnummer.'");
Correct example:
헤더 ( "위치 : ../lid.php?lidnummer=$lidnummer");
설명하다:
- 이중 인용문 "변수는 문자열에서 직접 변수를 사용할 수 있으며 PHP는 변수 값을 String으로 자동으로 교체합니다.
- 단일 따옴표 '는 변수 이름을 일반 문자열로 취급하며 대체되지 않습니다.
- 이중 인용문을 사용하면 불필요한 문자열 스 플라이 싱을 피할 수있어 코드가 더 간결하고 이해하기 쉽습니다.
2. 데이터가 업데이트 된 후 페이지를 새로 고칩니다
데이터가 업데이트되면 업데이트 된 데이터 또는 관련 ID를 대상 페이지로 다시 전달하여 페이지가 업데이트 된 정보를 올바르게 표시 할 수 있도록해야합니다.
샘플 코드 :
Create.php 파일이 데이터 업데이트를 처리하고 숨겨진 양식 필드를 통해 Lidnummer를 전달하는 데 사용된다고 가정합니다.
php // create.php // ... 데이터 업데이트 처리를위한 논리 ... $ lidnummer = $ _post [ 'lidnummer']; // 사후 요청에서 lidnummer를받습니다 // lid.php로 다시 리디렉션하고 lidnummer 매개 변수 헤더 ( "위치 : ../lid.php?lidnummer=$lidnummer"); 출구(); // 리디렉션 후 스크립트가 실행되는지 확인하십시오?>
설명하다:
- $ _post [ 'lidnummer']는 게시물 요청에서 숨겨진 양식 필드 Lidnummer의 값을 가져옵니다.
- 헤더 ( "위치 : ../lid.php?lidnummer=$lidnummer") 페이지를 lid.php로 다시 리디렉션하고 lidnummer를 URL 매개 변수로 전달합니다.
- EXIT ()는 스크립트가 후속 코드의 간섭을 피하기 위해 리디렉션 후 실행을 중지하도록합니다.
lid.php 파일에서 Lidnummer 매개 변수를 수신하고 처리해야하며 해당 데이터는 매개 변수에 따라 표시되어야합니다.
php // lid.php if (isset ($ _ get [ 'lidnummer'])) { 'contain/read.php'포함; $ lidnummer = $ _get [ 'lidnummer']; // ... 데이터 표시의 논리에 따라 ... show_single_lid ($ conn, $ lidnummer); } 또 다른 { // 오류 메시지 표시 또는 기본 페이지로 점프하는 등 Lidnummer가 통과되지 않은 상황을 처리합니다. "오류 : Lidnummer가 전달되지 않습니다!"; } ?>
설명하다:
- ISSET ($ _ get [ 'lidnummer']) Lidnummer 매개 변수가 URL에 전달되는지 확인합니다.
- $ _get [ 'lidnummer']는 URL에서 lidnummer 매개 변수의 값을 가져옵니다.
- show_single_lid ($ conn, $ lidnummer)는 Lidnummer에 따라 해당 데이터를 표시합니다.
- Lidnummer가 전달되지 않으면 프로그램 오류를 피하기 위해 오류 메시지가 표시되거나 기본 페이지로 점프됩니다.
3. 주목할만한 것들
- 출력 전에 헤더 () 함수를 호출해야합니다. Header () 함수 (공백, HTML 태그 등 포함) 앞에 출력이 있으면 Header () 함수가 유효하지 않습니다.
- exit () 함수를 사용하여 리디렉션 후 스크립트가 실행되는지 확인하십시오. 이렇게하면 후속 코드의 간섭을 피하고 페이지가 올바르게 점프 할 수 있습니다.
- URL 매개 변수의 적절한 검증 및 필터링을 수행하십시오. URL 매개 변수를 수정하여 무단 데이터에 액세스하는 악의적 인 사용자를 피하십시오.
요약
페이지 리디렉션에 PHP의 Header () 함수를 올바르게 사용하려면 URL 문자열의 스 플라이 싱 방법과 데이터 업데이트 후 URL 매개 변수의 올바른 전달에주의를 기울여야합니다. 일반적인 실수를 피하고 모범 사례를 따르면 페이지 점프의 정확성과 올바른 데이터 표시를 보장 할 수 있습니다. 실제 개발에서 프로그램의 보안 및 안정성을 향상시키기 위해 특정 상황에 따라 적절한 검증 및 필터링이 필요합니다.
위 내용은 PHP 헤더 리디렉션 문제 : URL 매개 변수 통과 및 데이터 업데이트 페이지 새로 고침의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Stock Market GPT
더 현명한 결정을 위한 AI 기반 투자 연구

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

usefilter_var () tovalidateemailsyntaxandcheckdnsrr () toverifydomainmxrecords.example : $ email = "user@example.com"; if (f ilter_var ($ 이메일, filter_validate_email) && checkdnsrr (Explode ( '@', $ email) [1], 'mx')) {echo "validandDeliverableEmail & qu

AseUnserialize (Serialize ($ obj))는 AllDataisserializable 이하의 경우 FordeepCopying; 그렇지 않으면, ubstract__clone () tomanuallyduplicateNestEdObjectSandavoidshartReferences.

USEARRAY_MERGE () TOCOMBINEARRAYS, DUCRITINGDUPLICATESTRINGKEYSANDENTEXINGUMERICEYS; FORSIMPLERCONCATENATION, 특히 인포드 55.6, USETHESPLATOPERATOR [... $ array1, ... $ array2].

네임 스페이스 인 네임 스페이스 inphorganizecodecodecodeandnamingnamingconflictsbygroupingclasses, 인터페이스, 함수, andconstantsOnspecificname.2.defineanamesUsUsingThenamesPaceyWordAtTHETOPOFOFILE, AFFORBINSPACENAME, suchATESKEYSTOI

The__call ()는 MethodsibleorundorundeRunded에서 정의 될 때 MethodStrigged를 정의하고, themodnameandarguments, asshowningwhendingderdefinedmethodslikesayhello ()

toupdateadaBasereCordInphp, FirstConnectusingpdoorMysqli, whenEseprepredStatementStoExecuteAcureCuresqlupDateQuery.example : $ pdo = newpdo ( "mysql : host = localhost; dbname = your_database", $ username, $ username, $ sql = "squer erestemail);

이 기사에서는 케이스 문을 사용하여 MySQL에서 조건부 집계를 수행하여 특정 필드의 조건부 합산 및 계산 방법에 대해 자세히 설명합니다. 실제 구독 시스템 사례를 통해 레코드 상태 (예 : "END"및 "CANCEL"과 같은 총 기간 및 이벤트 수를 동적으로 계산하여 복잡한 조건부 집계의 요구를 충족시킬 수없는 전통적인 합계 기능의 한계를 극복하는 방법을 보여줍니다. 튜토리얼은 합 함수로 사례 문의 적용을 자세히 분석하고 왼쪽 조인의 가능한 널 값을 다룰 때 Coalesce의 중요성을 강조합니다.

useathinfo ($ filename, pathinfo_extension) togetThefileExtension; itreliablyHandleSmultipledOtsededGecases, returningTheextension (예 : "pdf") oranEmptyStringifnoneExists.
