2016-08-25 1 views
-1

자바 스크립트와 PHP 데이터를 전송하기위한 여러 가지 접근법을 보았습니다. 그러나 효율성과 정확성에 의문을 제기합니다. 그것이 의미하는 바는, 예를 들어 당신은 10 레벨을 가진 자바 스크립트 플랫폼 (게임)을 가지고 있다고 가정 해보십시오. 각 사용자마다 다른 계정을 소유하고 있거나 소유하고있는 사용자가 많습니다. 사용자가이 게임을 만들고 싶어하므로 사용자가 브라우저 탭을 닫거나 저장하고 나중에 재생하려고 할 때; 사용자는 레벨 1에서 다시 시작할 필요가 없습니다. 사용자가 저장하면 사용자가 저장 한 현재 레벨 번호를 자신의 계정 데이터의 mySQL 데이터베이스에 저장합니다. 이제 유일한 문제는 사용자가 완료 한 레벨 수가 javaScript 변수에 저장되어 있지만 그렇게하려면 PHP에서 그 변수를 전송/가져와야한다는 것입니다. 어떻게 할 것입니까? 나는 document.write (< PHP 변수를 여기에 > 설정) 봤어,하지만 난이 접근하는 가장 효율적인 방법이라고 생각하지 않습니다. 이제는 현재 사용하고있는 방법이 백 투 백 (back-to-back) 계산이 더 이상 필요하지 않기 때문에이 작업을 수행하는 다른 방법을 찾은 후에 만 ​​효율성에 의문을 제기합니다. 그래서, 일반적으로 말하자면,보다 융통성있는 다른 효과적인 솔루션이 있습니까?PHP와 JavaScript가 데이터를 전송하는 가장 효율적인 방법은 무엇입니까?

+0

안녕하세요. 이 질문이 화제로 닫히는 이유를 보려면 [help]를 방문하십시오. – mplungjan

답변

1

내 접근 방식은 사용자가 성공적으로 레벨을 마친 후에 AJAX 호출을 통해 완성 된 레벨을 저장하는 것입니다. 그렇게하면 사용자가 브라우저를 닫는 것에 대해 걱정할 필요가 없습니다. 즉 그가 수행하고 레벨을 완료하지 못하면 마지막 단계를 반복해야합니다.

편집 :

JS 스크립트를

$.ajax({ 
    method: "POST", 
    url: "update_finished_level.php", 
    data: { user_id: "1", level_finished: "4", some_other_parameter: "some value" } 
}) 
.done(function(msg) { 
    if(msg == 1) { 
     // OK 
    } else { 
     // SOMETHING WENT WRONG 
    } 
}); 

PHP 스크립트 (당신이 당신의 DB에 연결하는 mysqli를 사용한다고 가정) :

$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db"); 

if ($link->connect_errno) { 
    printf("Connect failed: %s\n", $mysqli->connect_error); 
    exit(); 
} 

if($mysqli->query("UPDATE user SET level_finished = " . $_POST['level_finished'] . " WHERE user_id = " . $_POST['user_id']) === TRUE) { 
    echo 1; 
} else { 
    echo 0; 
} 

을 조심 : 당신은 어떤 출력을 탈출해야 사용자로부터 얻은 것이므로 최소한 mysql_real_escape_string 함수를 사용하십시오.이 함수는 더 이상 안전하지 않습니다.

PHP PDO 라이브러리와 같은 것을 사용하는 것이 좋습니다 : http://php.net/manual/en/book.pdo.php. 준비된 문장과 함께 사용하는 방법에 대한 많은 자습서가 있습니다.

+0

좋은 지적이지만 문제는 내가 말했듯이 각 사용자마다 다른 계정이 있으므로 mySQL을 사용해야합니다. –

+0

mysql은 ajax 호출과 아무 관련이 없다. javascript로 ajax 호출을 한 다음 php & mysql에서 처리 할 수 ​​있습니다. – Unex

+0

그게 내가 질문하는거야, 어떻게 (이 경우) PHP와 AJAX를 연결할 수 있습니다; AJAX에 대한 가장 가능성있는 접근 방식은 jQuery'$ .ajax' 함수이기 때문입니다. –

관련 문제