1

我想用ajax设置php会话。我有在 session.php 中设置会话的功能。

public static function set($key, $value) {  
    $_SESSION[$key] = $value;
}

我已经确认 javascript 警报,如果我点击是,我想设置会话。如何简单地设置会话?

编辑16.4.2012 15:31 GMT:+1

大卫:谢谢你的回答,看起来很清楚。我试过了,但在我的电脑上没有做任何事情。所以我有:a.php

<script src="http://code.jquery.com/jquery-latest.js"></script>
<p>I would like to say: </p>
<script>
    $("p").append("<strong>Hello</strong>"); //check jquery is working 
    $.get('a.php', function(data) {
        // do something on success?
    });
</script>

b.php(在同一文件夹中)

<script type="text/javascript">
    alert('aaa');
</script>
<?php
echo "print by b.php";
?>

我在浏览器中运行 a.php

4

1 回答 1

2

你可以有一个简单的 PHP 页面,它只设置值(使用你已经拥有的代码),然后让 jQuery 调用该页面:

$.get('setsessionvalue.php', function(data) {
  // do something on success?
});

如果要扩展它,可以通过在查询字符串上传递值来使调用更通用:

$.get('setsessionvalue.php?key=someKey&value=someValue', function(data) {
  // do something on success?
});

然后,您将从$_GET服务器上的集合中提取这些查询字符串值,就像任何其他页面一样。

从服务器端代码的角度来看,它与任何其他页面没有什么不同。您只是不需要呈现 UI(并且可以根据需要呈现数据,可能最简单的 JSON 格式)。JavaScript 代码只是像调用任何其他页面一样调用该页面。

当然,值得注意的是,用户可以根据需要手动调用此页面。因此,不要将其用作会话值的任何“安全性”。如果用户访问 URL:

setsessionvalue.php?key=someKey&value=someValue

然后他们将能够手动设置他们的会话值。甚至覆盖您已经设置的值(他们可以在 JavaScript 代码中看到)。我不会特别愿意将会话值的结构(尤其是它们的键)暴露给这样的客户端代码。似乎距离您的网站存在一些安全漏洞很近。

于 2012-04-16T11:07:17.587 回答