0

我建立系统通知并遇到问题。

对于登录的用户,我希望在 onclick 从“new = 1”到 new =“0”后更新表“通知”。

我如何在使用 ajax 或其他东西的 onclick 后更新数据库。如果我像这样使用 ajax 发送请求服务器:

        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。如果我在某个时间发送 USER ID,则可以更改 USER ID,每个人都可以更新彼此的通知,这并不安全。

对不起我的英语,如果我不明白你可以问一个问题。谢谢!

4

1 回答 1

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;
于 2012-12-01T17:16:02.357 回答