是否可以访问JavaScript中创建的会话变量,以及如何在JavaScript中复制此PHP代码?
if(empty($_SESSION['name'] {
echo 'foo';
}
答案 0 :(得分:4)
您可以通过Ajax访问页面,该页面将返回变量值:
使用jQuery:
$.get('myVariable.php', function ( data ) {
alert(data)
});
PHP页面(myVariable.php):
<?php echo $_SESSION['user_id']; ?>
答案 1 :(得分:4)
如果您设置要通过php解析的javascript,您可以像在php中一样访问会话变量:
// Test.php
<?php session_start(); ?>
<?php $_SESSION['foo'] = 'bar' ?>
<script type="text/javascript">
alert('<?php echo $_SESSION['foo'] ?>');
</scrip>
<?php var_dump($_SESSION['foo']) ?>
答案 2 :(得分:3)
抱歉,但你不能:(
首先是一点背景:
PHP中的会话支持包括一种在后续访问中保留某些数据的方法。这使您可以构建更多自定义应用程序并增加网站的吸引力。
访问您网站的访问者会被分配一个唯一ID,即所谓的会话ID。这可以存储在用户端的cookie中,也可以在URL中传播。
会话支持允许您注册要在请求之间保留的任意数量的变量。当访问者访问您的站点时,PHP将自动检查(如果session.auto_start设置为1)或您的请求(显式通过session_start()或通过session_register()隐式检查)是否已随请求发送特定会话ID。如果是这种情况,则重新创建先前保存的环境。 来自http://www.php.net/manual/en/intro.session.php
基本上,会话涉及存储数据服务器端并在cookie客户端存储ID。这意味着JS理论上可以访问cookie,但是你所拥有的只是访问PHPSESSID变量(会话ID)。
要实现您的目标,您可以使用ajax。 (与流行的误解相反)ajax请求仍然为服务器提供访问cookie和会话所需的所有信息。
所以只需创建一个像getName.php
这样的服务器端脚本,其中包含:
if(!empty($_SESSION['name'])) {
echo $_SESSION['name'];
}
使用ajax获取响应:)
答案 3 :(得分:1)
嗯... ajax很好,但是如果你真的想要,你可以将它们作为变量打印在头部的标签中,并通过js访问它们。我从来没有用会话变量做过,但是我一直以这种方式从php(mysql)中打印出来的值
答案 4 :(得分:0)
是否可以从javascript
访问php中创建的会话变量
没有。它们驻留在您的Web服务器的内存中,幸运的是,javascript无法访问它。
答案 5 :(得分:0)
会话变量存储在服务器上。使用javascript(客户端)访问它们的唯一方法是使用AJAX向后端发出请求到php页面,然后将该值返回给您。
答案 6 :(得分:0)
不,你不能。会话变量存储在服务器中,而不是存储在客户端中。您可以做的最接近的事情是在php脚本中验证会话变量,并使用ajax调用它。