使用 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。
我想从 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。