이 PHP 스크립트를 사용하여 webservice를 호출 할 수 있습니다. 파일 이름은 데이터베이스에 기록됩니다. 그들은 요청되었고 존재하지 않습니다.CURL을 사용하여 보낸 잘못된 REQUEST_URI에 대한 솔루션
$url = "http://test.com/test.php?request=file name.jpg"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url ); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE ); $data = curl_exec($ch); print($data); curl_close($ch);
문제는 "file name.jpg"입니다. 인코딩되지 않았습니다. 는 웹 서비스에 요청을 받으면 는 URI 그것은 최초의 우주 문자의 시작 URL을 자릅니다이
["REQUEST_URI"]=> string(28) "/test/test.php?filename=file"
것 같습니다.
내 문제는 사람들이이 요청을 보내는 방식을 제어 할 수 없다는 것입니다. 물론 그들은 urlencode 함수를 사용해야하지만 강제 할 수는 없습니다.
그래서 전체 요청 URI를 얻거나 오류로 잡으려면 해결책이 필요합니다. 사람들이 아리 잘못된 요청을 보내는 경우
당신이 말한대로 어떤 종류의 요청을 제어 할 수 없습니다. 당신은 아무것도 얻을 수 있습니다. 그래서 나는 올바른 파일 이름 (예 : 확장에 대한 제한)을 포함하는 올바른'filename' 매개 변수가 있는지 확인하는 유일한 방법이 될 것이라고 생각합니다. –
그럴 수 없습니다. 일부 파일에는 실제로 확장자가 없습니다. – danidacar
사람들이 ** 잘못된 url **을 보내는 경우 - 다음은 문제입니다. – zerkms