2012-12-01 55 views
0

我建立系統通知,並有我的問題。onclick後更新表php

我希望更新表'通知'後onclick從'新= 1'爲新='0'爲用戶登錄。

如何在數據庫更新後與ajax或其他東西onclick。 如果我發送請求,服務器與阿賈克斯這樣的:

 function readNotifications(str) 
    { 
    if (window.XMLHttpRequest) 
     {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
     } 
    else 
     {// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
    xmlhttp.onreadystatechange=function() 
     { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
     document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 
     } 
     } 
    xmlhttp.open("GET","controlpanel.php?notification=readNews",true); 
    xmlhttp.send(); 
    } 

服務器不知道哪個用戶ID來更新警報。 如果我在時間發送用戶ID是可以更改用戶ID,每個人都可以更新對方的通知,這不是安全。

對不起我的英文,如果我不明白你可以問一個問題。 謝謝!

+0

[你嘗試過什麼?](http://whathaveyoutried.com) – jan267

+0

是你的問題唯一的服務器不知道什麼是用戶ID或以上? –

回答

0

如果您希望它更安全,請使用POST。 http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp

通常,如果有人想手動更改用戶ID值,他們會找到方法來做到這一點。您可以使用一些安全措施,如SSL,這會使發送數據更安全。

+0

請不要參考[W3Schools](http://w3fools.com)。 – jan267

+0

W3Schools和SQL中的JavaScript部分沒有任何問題。 W3Fools基本上覆蓋了錯誤的HTML部分,而不是JavaScript和SQL – Yang

+0

W3Schools有什麼問題? – Dharman

2

我認爲它更好地爲您保存在USER_ID一旦用戶登錄會話變量。

<?php 
session_start(); 
// store session data 
$_SESSION['user_id']=100001; 
?> 

和訪問它從你的Ajax請求的處理過程中後面的代碼。

$_SESSION['user_id'] 


如果您使用cookie,你還是可以接受的,從你的服務器端代碼。

$_COOKIE["user_id"]; 
will do it. 

只要確保將withCredentials屬性設置爲true即可。

var req= new XMLHttpRequest(); 
req.withCredentials = true; 
+0

我使用cookie工作,但這並不能幫助我。並可以更改會話。 – user999705

+0

我不明白它是什麼用的。我認爲這不適合我。 – user999705