使用 ajax 将会话 cookie 从 javascript 传递到 php

Pass session cookies from javascript to php using ajax

我想从 javascript 传递会话变量。 Javascript 本身是由 PHP

生成的问题
echo "<script>"
."if(confirm('Evaluation is already exist! Do you want to update evaluation?'))
  {
    //Here I want to add : $_SESSION['confirmed']=1; so I can proceed to save process
    alert('Evaluation Saved!);
  }
  else
  {
     alert('Evaluation Cancelled!);
  }"
    ."</script>";

我怎样才能完成这项工作?提前致谢。

使用Ajax存储会话变量

echo "<script>"
."if(confirm('Evaluation is already exist! Do you want to update evaluation?'))
  {
    $.post( '/setsessionvariable.php', function(){
      alert('Evaluation Saved!);
    });

  }
  else
  {
     alert('Evaluation Cancelled!);
  }"
    ."</script>";

并在 setsessionvariable.php 文件中

session_start();
$_SESSION['confirmed'] = 1;

有一点我要说。您无法使用 java 脚本创建 SESSION。因为 SESSION 将 运行 在服务器端。 js 将 运行 在前端(浏览器)。或使用 AJAX 传递变量。试试这个代码 hepls 来解决你的问题。

   <?php
session_start();
$confirmed=1;
if($confirmed==1){
    $_SESSION['confirmed']=1;
    echo "<script> alert('Evaluation Saved!'); </script>";
  }

  else
  {
session_destroy();// to destory existing session
     echo "<script> alert('Evaluation Cancelled!'); </script>";
  }
?>

如果您正在谈论进行 ajax 调用并在 header 中传递 session cookie,那么您不需要手动执行此操作,因为所有 ajax对同一域的调用应已具有所有相应的 cookie。

但是如果您从不同的域进行 ajax 调用,那么它将没有 session cookie。由于 AJAX 调用仅在您调用的 url 与您的调用脚本位于同一域时才发送 cookie。