페이지의 URL 일부로 전달할 토큰을 만들고 있습니다. rawurlencode()을 사용하여 문자열을 인코딩하여 토큰으로 보내지 만 수신 된 토큰 (URL 매개 변수로 전달됨)을 디코딩하면 약간 다른 문자열이 나타납니다. 여기 /path/to/file.html?token=abcd123PHP : URL 인코딩 문제 (rawurlencode 및 rawurldecode)
을 내가 사용하고있는 코드 조각입니다 :
내 URL은 다음과 같습니다. 나는 분명히 진절머리 나는 무엇인가하고 있는가? 그로 인해 실패한 경우, (암호화 된) 토큰을 만들어 URL에 전달하는 더 좋은 방법이 있습니까? 그들은 문제의 원인 아니었다 - -
<?php
//send
$raw = "some secret string";
$token = rawurlencode($raw);
//recieve
$data = rawurldecode($token);
?>
[편집]
나는 (DEC) ryption의 기능성 ENC을 제거하고 붉은 청어했다. 문제를 작업 범위에서 대칭 적이 지 않은 rawurlencode/decode로 좁히고 있습니다.
rawurl 인코딩 된 문자열이 디코딩되면 다른 문자열 (유사한 문자열이지만 일부가 누락 됨)이 나타납니다. 확실하게, URL에 근본적인 것으로서 버그가있을 수는 없습니다 - 그래서 나는 잘못된 것을해야 할 것입니다. ... 문제는 내가 그것을 발견 할 수 없다는 것입니다, 지금까지 아무도 중 하나를 발견 할 수있을 것 같다
[추가 정보]
내가 심포니 웹 프레임 워크를 사용하고 (V1 .3.8), 이것은 아마 뒤에서 인코딩하고 디코딩하는 것에 의한 요청을 망칠 것입니다. 필자는 $ _POST 변수에서 토큰 매개 변수를 직접 가져 와서 Symfony가이 모든 문제의 주범인지 확인하려고합니다.
좋아, 해결했습니다. 그것은 사실 내 사물 끝에 생긴 문제였습니다. rawurlencode()가 호출되기 전에 오류가 발생했습니다. – oompahloompah