2010-05-03 2 views
1

간단한 링크를 출력하려고합니다.PHP urlencode()를 사용하고 있습니까? SID = xxx ... 이유가 무엇입니까?

이 잘 작동합니다 : 이것은 잘 작동하지 않습니다

$url = 'http://www.google.com'; 
echo $url; 

:

$url = 'http://www.google.com'; 
echo urlencode($url); 

두 번째 예 침을에 어떤 이유로 URL의 끝에 "SID = xxx는?". 어떻게 이런 일이 일어나지 않도록합니까?

참고 : URL을 생성하는 코드가 무해한 것을 보호하기 위해 변경되었습니다.

답변

1

는 PHP로

HTTP % 3A % 2F % 2Fwww.google.com

,이 같은 URL을 끝낼 것, URL을 인코딩를 urlencode()를 사용하지 마십시오 이 URL은 상대 URL과 유사하므로 쿠키가없는 경우 SID를 추가합니다.

URL 자체는 아니지만 쿼리 문자열 매개 변수를 인코딩하려면 urlencode()를 사용해야합니다.

+0

그건 트릭입니다. 이 버튼과 같은 페이 스북에 대한 쿼리 매개 변수입니다. –

1

이것은 잘못된 쿠키가 아니기 때문에 세션 쿠키가없는 경우 GET 변수를 통해 세션 ID를 추가하는 PHP의 자동 링크 재 작성입니다.

쿠키가 비활성화 된 경우 클라이언트 측에서 세션을 유지하는 것이 필요합니다.

자동으로 설정하는 설정은 session.use_trans_sid입니다. 더 많은 정보 here.

관련 문제