2011-03-11 5 views
0

설명하기가 다소 어려울 수 있지만 어쨌든 시도해 보겠습니다.URL 매개 변수에 따라 내비게이션을 처리하는 방법

내 PHP 응용 프로그램에서는 다른 "추적기"로 연결되는 기본 탐색을 사용합니다. 예를 들어 "? trk = 1"매개 변수를 URL 끝에 추가합니다.

나는 시스템의 다른 "트래커"에 대해 다른 필요가있는 보조 탐색 기능을 가지고 있습니다. 기본 추적기 페이지에서 "trk"매개 변수의 ID를 쉽게 얻을 수 있으며이를 기반으로 보조 탐색을 만들 수 있습니다. 하지만, 내 애플 리케이션은 "트래커"수준 아래에 많은 하위 페이지가 있습니다. 예를 들어, 모든 트래커에는 프로그램이 있고 프로그램이있는 프로그램이 있습니다.

내가 생각했던 솔루션 중 하나는 모든 페이지를 통해 "trk"매개 변수를 전달하는 것이 었습니다. 이렇게하면 내 추적기 수준 아래의 모든 수준에서 실행되는 내 tracker.header.php 파일이 각 추적기에 대한 맞춤 보조 탐색 기능을 올바르게 생성 할 수 있습니다.

나는 제 2 차 메뉴에 대한 수업을 할 수 있다고 생각했습니다. tracker.header.php에서이 메뉴 객체를 만들면 모든 하위 수준에서이 객체 변수에 액세스하여 추적기별로 쉽게 사용자 정의 할 수 있습니다. PHP에서 생성 된 모든 HTML을 변수로 유지 한 다음 응용 프로그램의 마지막 줄에 변수를 반향시키는 것이 표준입니까?

답변

0

그렇습니다. 하나의 엔트리 페이지 (index.php)를 갖는 것이 표준이며, 호출되는 모든 페이지는 단지 GET 또는 POST을 통해 매개 변수를 가진 index.php입니다. 많은 사람들이 아파치 재 작성을 사용하여 그들이 이것을 수행하고 있다는 사실을 숨 깁니다.

예를 들어 URL이 "./index.php?trk=1&prog=23&proj=12" 일 수 있으며 특정 매개 변수가 전달되지 않은 경우 수행 할 작업을 결정해야합니다.

페이지 상태 정보를 session에 보관하는 것이 일반적입니다.

0

난 당신의 게시물에 두 가지 질문이 있다고 생각하지만, 나는 내가 할 수있는 무엇을 대답 할 것이다 :

다른 범주 내에서 묻혀 카테고리 따라서 통과해야하는 경우가 약 갈 수있는 몇 가지 방법이 있어요 그것, 다른 사람들보다 쉽게. 이러한 접근법 중 하나는 URL 자체에서 탐색되는 범주 체인을 추가하는 것입니다. 예를 들어, ?trk=123&program=456&proj=789?trk=123|456|789으로 줄일 수 있습니다. 여기서 스크립트는 모든 파이프 문자를 trk로 분할합니다. 끝 부분이 누락되어 있으면 아직 설정되지 않았다고 가정 할 수 있습니다.

또한 페이지가 생성되는 동안 보통 echo으로 페이지를 출력하거나 정적 HTML 용 PHP 태그를 이스케이프 처리하는 것이 일반적입니다. 중간에 많은 양의 테이블 데이터가있는 대형 페이지를 보내는 경우 페이지가 완전히 생성 될 때까지 기다리면 일부 브라우저에서 서버가 응답을 멈춘 것으로 가정 할 수 있습니다. 또한 이러한 상황에서는 웹 페이지의 거대한 중간 부분을 어떻게 든 비동기로 만들어 사용자가 참을성을 갖지 않도록하는 것이 좋습니다.

관련 문제