검색 엔진 친절한 PHP 페이지

Zend 기술 - 화랑 스포트라이트를 암호로 하십시오 - 검색 엔진 친절한 PHP 페이지
당신은 문제의 더 나은 이해가 있을 이니까, 해결책을 보자. (및 그 결과로 색인) 주어진 페이지를 횡단하는 거미의 순서를 따라, URL는 매개변수의 어떤 외관든지 가 면제된다 한다. 그러나 주어진 페이지가 매개변수가 제대로 작용할 것을 요구하는 경우에, 무엇이 행해질 수 있는가? 응답은 당신이… URL를 개조할 수 있는 $PATH_INFO 환경 변수의 사용에서 속인다,
http://www.zend.com/myscript.php?myvalue=Hello

… 거미 친절한 체재에:
http://www.zend.com/myscript.php/myvalue/Hello

전혀 통과되는 어떤 매개변수든지 있다 거미 친절한 체재가 아무 표시도 포함하지 않는다는 것을 주의하십시오. 오히려, 그것은 단순히 우리가 zend.com 위치 /myscript.php/myvalue/Hello에 전화번호부에 접근하는 것을 시도하고 있는 처럼 본다, 페이지에 접근하는 어떤 검색 엔진 거미에는 어떤 말썽도 URL를 따르는 없을 것이다. 그러나 실제로 우리는 원본 myscript.php를 수행하고 있다.

그러나 당신의 매개변수에 무엇이 일어났는가?
당신의 숨겨지은 자료를 얻는 방법

전화번호부 구조인 것처럼 보이는 무슨이 내의 당신이 성공적으로 당신의 매개변수를 숨길 이니까, 어떻게 당신은 그(것)들을 밖으로 얻는가? (우리가 거미 친절한 위의 예제에서) 했다 PHP 원본이 파일 이름의 끝에 추가된 여분 경로 자료로 수행된다 언제든지, 웹 서버는 이 정보를 포함하는 환경 변수 $PATH_INFO를 창조한다. 당신은 PHP를 통해서 그 때 이 환경 변수에 자동적으로 접근할 수 있고, 우리의 자료를 만회하기 위하여 그것을 분석한다. 따라서 우리의 더 이른 URL…

http://www.zend.com/myscript.php/myvalue/Hello

… $PATH_INFO 가변에를 가진 사람을 거주케 할 것입니다:

/myvalue/Hello

… 분석할 당신이 그 때 수 있고 전한 정보를 만회하는지 어느 것을에서.
당신의 자료 암호문을 해독

당신의 매개변수가 어디에 있는지 당신이 알고 있을 이니까, 다음 단계는 사용할 PHP가 수 있는 체재로 그(것)들을 암호문을 해독하기 위한 것이다. 이것을 하기를 위한 필수 방법이 없더라도, 나는 당신이 당신의 자료를 주어진 여건에서 배열했다고 추정할 것이다:

/var_name/var_data/var2_name/var2_data/…

이 방법을 사용하여, 남겨두는 모두는 이다:

* 우리가 내리침 ("/")를 만날 때마다 제공한 끈을 끊으십시오
* 그들의 각각 가치 (var_data, var2_data, 등등과) 이름 (var_name, var2_name, 등등)를 관련시키기 위하여 창조하십시오 가변을

마음에서 이것 모두로, 어떤 진짜 부호를 보자.
원본

많은 강력한 기술로 것과 같이, 당신의 원본에 있는 이 능력을 창조할 것을 요구된 부호는 발전하기 어렵지 않다. 과정은 자료 $PATH_INFO에 근거를 둔 배열을 횡단하고, 그것에 근거를 둔 가변을 창조하는 이루어져 있다. 결국, 목표는 URL를 가지고 가기 위한 것이다…

http://www.zend.com/myscript.php/myvalue/Hello

… 그 때 대응 가변을 건설하기 위하여 제공된 $PATH_INFO 가변에서 자료를 사용하십시오:

$myvalue = "여보세요"
부호 교류

* $PATH_INFO의 실존을 위한 검사
* 배열로 쪼개지는 $PATH_INFO
* 매개변수의 총계가 동등한 경우에, 다음 단계에 있는 순회를 간단하게 하기 위하여 끝에 여분 빈 성분을 추가하십시오
* 배열을 횡단하고 $PATH_INFO 자료에 근거를 둔 가변을 창조하십시오

<>

만약에 (isset ($PATH_INFO)) {

$vardata는 = 폭발한다 ("/", $PATH_INFO);

$num_param = 조사 ($vardata);

만약에 ($num_param == % 2 0) {

$vardata [] = ";
$num_param;
}

를 위해 (var $i = 1; $i <>

$$vardata [$i] = $vardata [$i 1];
}
}

? >

Uncategorized의 밑에 신청하는 |

대답을 남겨두십시오



아래에 보여진 부호를 입력하십시오 (당신이 누르기 코멘트를 복종시키기 전에 당신이 인간적다는 것을 확인하기 위하여).


직업 코멘트 감시에 의해 보호하는