我想在加載iframe時更新sql表格。如何更新iframe加載的SQL表?
我看着使用JS的onload()
,但這會帶來安全風險。
這裏是SQL:
<?php mysql_query("UPDATE ".MYSQLTABLE." SET hitter=hitter+".$hit." WHERE user='".$suid."'") or die(mysql_error()); ?>
我將如何去這個沒有它造成的安全隱患?在PHP文件和使用
我想在加載iframe時更新sql表格。如何更新iframe加載的SQL表?
我看着使用JS的onload()
,但這會帶來安全風險。
這裏是SQL:
<?php mysql_query("UPDATE ".MYSQLTABLE." SET hitter=hitter+".$hit." WHERE user='".$suid."'") or die(mysql_error()); ?>
我將如何去這個沒有它造成的安全隱患?在PHP文件和使用
放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>
如果你想以更新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調用
感謝您的幫助,但問題在於安全問題。這裏的問題是用戶可以查看源代碼並使用他們的uid調用php文件。對不起,我的問題不是很清楚。 – stickmanohstickman
而不是將user_id作爲url傳遞,請嘗試通過會話傳遞它,並在文件中可以驗證訪問是否已通過身份驗證 –
請[停止使用'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)。你可以做到這一點,但由於你沒有向我們展示我們無法提供的代碼。 –
你沒有發佈任何細節,你的問題還不清楚。您的主題是詢問如何更新iframe負載上的SQL表,但文字說明如何更正您的查詢以避免安全風險。首先我沒有得到,是爲什麼你使用不推薦的'mysql_query'而不是'mysqli_query'。我不知道你是否還是不正確地逃避你的變量。 – Eda190