2012-07-14 3 views
1

내 문제는 이것입니다. 브라우저에서 GPS 위치 정보를 얻는 자바 스크립트 코드가 있습니다. 그런 다음 자바 스크립트에서 SQL 데이터베이스에 좌표를 쓸 수 없어 PHP로 직접 보낼 수 없기 때문에 컨트롤러 "사이트"로 이동하여 메서드 "writeToDatabase"를 사용하고 URL에 4 개의 세그먼트를 추가합니다. 실제로 내가 자바 스크립트에서 가져온 그 좌표 .. 그래서문자열로 변환하는 0으로 시작하는 정수 (그 앞에 0을 유지)

자바 스크립트에서 내가 가진 :

window.location = getBaseURL() + "site/writeToDatabase/" + splittedLatitude[0] + "/" + splittedLatitude[1] 
     + "/" + splittedLongitude[0] + "/" + splittedLongitude[1] + "/"; 

을 이제 브라우저는 (가짜 좌표 단지 예) www.mysite.com/index.php로 이동/site/writeToDatabase/47/707223/16/054322

이제 사이트 컨트롤러의 writeToDatabase 메서드가 해당 세그먼트를 읽습니다 (코드 서명자를 사용하므로 실제로 읽기 쉬운 URL 세그먼트). 세그먼트를 읽은 후 위도의 첫 번째 부분과 위도의 두 번째 부분을 연결하고 점을 넣습니다. " 사이에 (그래서이 예제에서 나는 47.707223과 16.54322를 얻는다), 나는 경도와 같은 것을한다. 그런 다음 데이터를 데이터베이스에 쓸 때 내 데이터베이스에서 이상한 숫자를 얻는다. 또한 나의 세그먼트 중 하나가 0으로 시작하면 (위 예제에서와 같이) 0이 제거되어 053232에서 54322를 얻습니다. 위의 예처럼 16.54322가됩니다.

이제이 문제는 이상한 숫자로만 작성됩니다. 데이터베이스 전체 좌표 .. 만약 내가 경도의 첫 번째 부분을 작성하거나 경도의 두 번째 부분 (위도에 대해서도 동일 함)이 있으면 모든 것이 잘되고 올바른 값이 쓰여진다 ..

다른 누구나이 문제의 해결책이 있습니까? 나는 그들이 같은만큼 왜 그냥 매개 변수를 보내지 않는 아이디어

+1

앞에 오는 0이있는 숫자는 보통 8 진수로 해석됩니다. 분수 부분을 별도로 유지하는 경우 "이상한"비트가 10 진수로 소수가 아닌지 확인하십시오. –

+1

숫자가 아닌 문자열에 관심이있는 것 같습니다. 선행 0은 어떤 식 으로든 숫자에 영향을주지 않습니다. –

+1

다음과 같이 매개 변수를 보내면 어떨까요? http : //www.example.com/foo/bar/? lat = 47.11 & lng = 5.012' – fdomig

답변

0

에서 모든이야 :

http://www.example.com/foo/bar/?lat=47.11&lng=5.012 

그 문제를 해결 않습니다.

그러나 이러한 간단한 문자열 연결을 사용하면 (정수가 아닌 문자열이기 때문에) 사용자가 할 수 있습니다. (수동뿐만 아니라 그렇게 할 경우, 그리고 캐스트하지 않음) CHAR 필드,하지의 INT를 만들 -

$lat = $_GET['first'] . '.' . $_GET['second]; 
+0

나는 여전히 동작하지 않습니다 .. 지금 내 URL은 다음과 같습니다 www.mysite.com/index.php/site/writeToDatabase/?lat=45.7071587&lng=16.0575276 와 내가 CodeIgniter를 통해 this : $ locationGPS = $ this-> uri-> segment (3); $ this-> db-> query ('UPDATE 테이블 SET locationGPS ='. $ locationGPS. 'WHERE id ='. $ id); 저 .. – Drag0

0

정수는 하나를 필요로하는 경우, 앞에 0을하지 않습니다.

관련 문제