2015-04-20 54 views
-1

我想在加載iframe時更新sql表格。如何更新iframe加載的SQL表?

我看着使用JS的onload(),但這會帶來安全風險。

這裏是SQL:

<?php mysql_query("UPDATE ".MYSQLTABLE." SET hitter=hitter+".$hit." WHERE user='".$suid."'") or die(mysql_error()); ?> 

我將如何去這個沒有它造成的安全隱患?在PHP文件和使用

+1

請[停止使用'mysql_ *'函數](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions -in-PHP)。他們不再被維護,並[正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。瞭解[準備的陳述](http://en.wikipedia.org/wiki/Prepared_statement),並使用[PDO](http://jayblanchard.net/demystifying_php_pdo.html)。你知道iframe加載的唯一方式是客戶端事件,它需要觸發服務器端事件(AJAX)。你可以做到這一點,但由於你沒有向我們展示我們無法提供的代碼。 –

+0

你沒有發佈任何細節,你的問題還不清楚。您的主題是詢問如何更新iframe負載上的SQL表,但文字說明如何更正您的查詢以避免安全風險。首先我沒有得到,是爲什麼你使用不推薦的'mysql_query'而不是'mysqli_query'。我不知道你是否還是不正確地逃避你的變量。 – Eda190

回答

0

放SQL:

<script type="text/javascript"> 
document.getElementById('ifrm').onload = function() { 
    $.ajax({ 
     url: 'sql.php', 
     type: 'post', 
     success: function(data, status) { 
      // worked 
     }, 
     error: function(xhr, desc, err) { 
      //error 
     } 
    }); 
} 
</script> 
0

如果你想以更新IFRAME負載計數,那麼你可以使用iframe標籤的onload屬性。並且您可以使用由ajax調用或由Html HttpRequest更新的更新。

這是可以做到像下面

<iframe id="ifrme" src="demo.html" onload="doSomething()"></iframe> 

而且現在的Ajax調用來調用PHP腳本。

<script type="text/javascript"> 
$(document).ready(function(){ 
    function doSomething(){ 
     $.ajax(
       { url: 'your_update_url.php?uid=123', 
       type : 'GET', 
       dataType: 'json', 
       success : function (jsXHR) { 
       }, 
       failed : function(status,data){ } 
       } 
     ); 
    } 

}); 
</script> 

通過這種方式你可以調用腳本。欲瞭解更多信息,請檢查使用PHP的AJAX調用

+0

感謝您的幫助,但問題在於安全問題。這裏的問題是用戶可以查看源代碼並使用他們的uid調用php文件。對不起,我的問題不是很清楚。 – stickmanohstickman

+0

而不是將user_id作爲url傳遞,請嘗試通過會話傳遞它,並在文件中可以驗證訪問是否已通過身份驗證 –