2011-11-11 2 views
0

DB에 데이터를 저장하기 위해 AJAX를 사용하는 페이지가 있습니다. 아래 버튼을 클릭하면 add-to-db.php에 데이터가 게시됩니다.AJAX와 PHP를 통해 어떻게 이러한 변수를 게시 할 수 있습니까?

제 문제는 제 테스트를 위해 값 대신 숫자를 사용하고 작업 한 것입니다. 이제는 그것을 사용하지 않는 변수를 사용해야합니다.
$dealid$myid의 값을 게시해야하지만 어떻게해야합니까?

감사합니다. 내 product.php에서

내가 가진이

<script> 
$(function(){ 
    $("#JqPostForm").submit(function(e){ 
     e.preventDefault(); 

     $.post("add-to-db.php", 
     function(data){ 

      $("#message_post").html("Thank you"); 


     }); 
    }); 

}); 
</script> 

$dealid = (int)$_GET["id"]; 
$myid = $_SESSION['SESS_MEMBER_ID']; 

과의

나는이 쿼리를 가지고 있지만 그것은 DB

에서
$query = "INSERT INTO reverse_relations (user_id, product_id, ip) VALUES ('$_SESSION['SESS_MEMBER_ID']', '$dealid', '$_SERVER[REMOTE_ADDR]')"; 
를 저장하지 않습니다 추가에-db.php를

그러나 내가 VALUES ('1', '2', '$_SERVER[REMOTE_ADDR]')";을 추가했을 때

+0

테스트는 추가로-db.php를 수동으로 일부 $ _GET 변수 쿼리에 무슨 일이 일어나고 있는지 볼 수 있습니다. 값을 따옴표로 묶지 않으므로 숫자에서 영숫자로 전환 할 수 없습니다. 또한 SQL 주입에주의하십시오. –

답변

2

첫 번째로 product.php은 add-to-db.php로 보내야합니다. 현재는 $ .post() 호출에 아무 것도 지정되지 않았기 때문에 변수가 전송되지 않습니다. 이 작업을 수행하려면 다음을 추가-에-db.php를 위해 변수를 전송하면

$.post("add-to-db.php", $("#myform").serialize(), function (data){ 
    $("#message_post").html("Thank you"); 
}); 

, 당신은 당신의 php.ini에서 register_globals의를 OFF가 가정하고 $ _POST 배열에 액세스하여 읽을 수 있습니다, 이 코드를 사용하지 않는 - 당신의 필드는 그러나

$query = "INSERT INTO reverse_relations (user_id, product_id, ip) VALUES ('$_SESSION['SESS_MEMBER_ID']', '".$_POST['dealid']."', '$_SERVER[REMOTE_ADDR]')"; 

dealid라고합니다. 모든 POST를 santize해야하며 쿼리에서 SESSION 및 SERVER 변수를 삭제해야합니다. 그렇지 않으면 웹 사이트의 안전을 위협 할 수 있습니다.

$dealid = mysql_real_escape_string($_POST['dealid']); 
$sessid = mysql_real_escape_string($_SESSION['SESS_MEMBER_ID']); 

그리고 대신 SQL 쿼리에서 이러한 변수를 사용

$query = "INSERT INTO reverse_relations (user_id, product_id, ip) VALUES ('{$sessid}', '{$dealid}', '$_SERVER[REMOTE_ADDR]')"; 
+0

고맙습니다.하지만 dealid는 URL에서 가져 왔습니다. 형식이 아닙니다 – EnexoOnoma

+0

그러나 작동하고 있습니다. 텍스트 상자에 넣지 않고 product.php? id = 1을 얻고 싶습니다. – EnexoOnoma

+1

add_to_db.php에 id라는 get 매개 변수를 전달하려면, 당신은 쉽게 숨겨진 양식 변수에 그것을 출력 할 수 있습니다 :''/>'. 이것은 POST에 add-to-db.php를 포함시킬 것입니다. –

관련 문제