2012-05-21 2 views
2

저는 GWT와 PHP를 처음 다루는 초보자이며, 자습서를 읽은 후에 GWT 프론트 엔드와 PHP 백엔드간에 데이터를 효율적으로 교환하는 방법이 명확하지 않습니다. 나는 PHP에서 데이터를 얻기 위해 RequestBuilder 클래스를 사용하도록 제안 된 Google 자습서를 성공적으로 따라 갔다. 그러나 GWT에서 수행 한 작업을 저장해야 할 때 효율적으로 데이터를 PHP로 전달하는 방법은 무엇입니까? 이 작업을 위해 RequestBuilder를 사용하는 방법은 분명하지 않습니다. 내가 지금 발견이 솔루션은GWT와 PHP 사이에 데이터 전달

RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, URL.encode(url)); 
    builder.setHeader("Content-Type", "application/json"); 
     try { 
       Request request = builder.sendRequest("{\"done\":false,\"description\":\"Some text\",\"priority\":0}", new RequestCallback() {... 

이며, PHP 측에서

$arr = json_decode(file_get_contents("php://input"),true); 
$done = (int)$arr['done']; 
$description = $arr['description']; 
$priority = $arr['priority']; 
mysql_query("INSERT INTO Tasks (done, description, priority) 
    VALUES ($done, '$description', $priority)"); 

이 최선의 방법인가? 누군가가 웹에서 실제 사례를 찾았습니까? 모든 의견을 환영합니다 ...

+0

클라이언트의 문자열을 그런 DB에 삽입하지 마십시오. [prepared statements] (http://php.net/manual/en/pdo.prepared-statements.php) 또는 동등한 것을 사용하십시오. –

답변

0

자바가 아닌 서버와 상호 작용할 때 JSON으로 작업하는 것이 좋습니다. 귀하하며 .gwt.xml 파일에서

<inherits name='com.google.gwt.json.JSON'/> 

는 그런 다음

처럼 예를 들어 문자열을 구성 할 수 있습니다 추가 : 당신은 JSON 모듈을 사용하여 안전한 방법으로 클라이언트 측에서 JSON 문자열을 구축 할 수 있습니다
final JSONObject jsonObject = new JSONObject(); 

jsonObject.put("done", JSONBoolean.getInstance(false)); 
jsonObject.put("description", new JSONString("Some text")); 
jsonObject.put("priority", new JSONNumber(0)); 

final String jsonString = jsonObject.toString();