0

システム通知を作成しましたが、問題があります。

ログに記録されたユーザーの「new = 1」から「new = 0」への onclick の後にテーブル「通知」を更新したい。

onclick後にajaxなどでデータベースを更新する方法。このように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 を認識していません。また、ユーザーIDを送信すると、ユーザー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 に答える