phpjssession
‘壹’ 在php页面中的js代码,如何获取其他页面的session传过来的值,求详解,最好有代码,谢谢。
session是存在服务器上的,js没法获取,但可以将值保存在js变量
var id = '<?=$_SESSION["id"] ?>';
我猜你大概是遇到类似下面的情况:
有一个用户登陆了网站之后,服务器端把用户信息(比如用户名)保存在了服务器端的session中,然后在一个页面中,js脚本可能调用到这些用户信息,于是你就问怎样才能用js访问session.
如果是上面的情况,那么很好解决.
由于session是保存在服务器端的,客户端无法更改或者读取到session,你想想,要是客户端能更改了,那我把我的session权限更改为管理员或者自己想要的,不是可以为所欲为了吗?
不过,仅仅是传递给js让js来使用是可以的.那么如何将session信息传递给js呢?答案就是在php页面中直接为js变量赋值.比如我想让js脚本中的一个变量 a 等于 $_SESSION['user']中的值,那么就可以这么写php代码:
echo "<script>var a = '".$_SESSION['user']."';</script>";
简单地说,直接把这个值打印出来赋值到js脚本的变量中去就行了.
这样就简单地实现了php(服务器端)向js(客户端)传值.
‘叁’ 不用ajax,在js中如何获取PHP中的session值
我可不可这么理解你的要求: 1.默认是需要验证的:2.php验证; 2.符合条件的就不需要验证了,直接看到了主体内容:index.php 即然要判断用户需不需要验证,那么在index.php之前是不是还有一个页面呢?在这个页面里POST 隐藏控件传参到index.php, if($_POST('hidden') == "OK") { ... } else { header("Location: 2.php"); } 设SESSION很简单了,跟定义变量一样:$_SESSION['变量名'] = “值”; 销毁变量:unset($_SESSION['变量名'])www.10086zg.com回答
‘肆’ PHP 与 NodeJS 如何共用 Session
PHP 与 NodeJS共用 Session的方法是PHP暴露一个Service,向Node提供Session数据。php_session.php?SID=xxxx
1、php代码:
<?php
function getSessionByID($SID) {
if (session_id()) {
// 关闭当前session
session_destroy();
}
// 初始化指定session
session_id($SID);
session_start();
// 返回操作接口更友好的JSON
// 必要的FLAG看这里 http://www.php.net/manual/en/json.constants.php
return json_encode($_SESSION);
}
header('Content-Type:application/json');
echo getSessionByID($_GET['SID']);
?>
2、node实现代码:
var request = require('request');
request('http://localhost/php_session.php?SID=xxxx', function(err, res, body) {
if (!err && res.statusCode == 200) {
// 根据需要使用body(json)
}
});
‘伍’ php关闭浏览器如何使session失效
获取关闭浏览器的事件需要在浏览器打开这个页面的时候,点击关闭浏览器,这个难度有点大
很多安全类的网站是给session设置较短的生存时间,或者在关闭标签页的情况下,销毁session信息,设置sessiom生存期php可以设置,关闭标签页通过一个js获取关闭事件,然后同时ajax发一个标识到php端,销毁当前session就可以的
‘陆’ php利用session怎么判断用户已离线
方法有好多种,但应该都跟心跳请求类似。
首先用户打开一个页面后,页面里面会有段js脚本来反复请求一个地址,即判断用户是否在线的地址(跟新浪微博隔一段时间请求一个地址查看是否有新消息类似)
比如判断页面为A,打开的页面为B ,则B 内的js脚本以ajax请求的方式每隔1分钟来访问A,A可以记录下最后一次的请求时间,然后你就可以拿这个最后一次请求的时间来判断用户是否离线,比如B每隔1分钟发送一次请求,如果最后活动时间与当前时间相差两分钟,就可以认为用户已离线。
还有一种方法,就是利用js的onunload事件
当用户关闭浏览器的时候,可以用onunload发送一个请求,注销掉session,或者将用户状态置为离线,都可以,不过没有上面靠谱就是,因为F5刷新页面也同样触onunload事件
方法还有很多,结合你需要实现的功能和业务,多想想就出来了
‘柒’ PHP中 cookies和SEssion的详细用法
一、sesion 是一个常用的方法,在不同的编程语言中的用法不一样。
下面就把如何在php中用session和大家分享一下。
page1:session.php
<?php
session_start();
session_register("username");
$_SESSION[''username'']=''user'';
?>
这个页面是给session变量附值,与数据库结结合方法也是一样的。
我们可以根据需要设置session的属性。
page2:session1.php
<?php session_start();
echo $_SESSION[''username''];
?>
这个页面主要是输出session的值,但是我们要注意。session_start();
一定要在每次使用之前打开。
好了,这是使用session的一般方法。希望对你有用。
二、Cookies的使用。
例子 1. setcookie() 发送例子 $value = ''something from somewhere'';
setcookie("TestCookie", $value);
setcookie("TestCookie", $value,time()+3600); /* expire in 1 hour */
setcookie("TestCookie", $value,time()+3600, "/~rasmus/", ".utoronto.ca", 1);
注意 cookie 中值的部分在发送的时候会被自动用 urlencode 编码并在接收到的时候被自动解码并把值赋给与自己同名的 cookie 变量。如果不想这样并且在使用 PHP 5 的话,可以用 setrawcookie() 来代替。下面这个简单的例子可以得到刚才所设定的 cookie 的值:
<?php
// 输出单独的 cookie
echo $_COOKIE["TestCookie"];
echo $HTTP_COOKIE_VARS["TestCookie"];
// 另一个调试的方法就是输出所有的 cookie
print_r($_COOKIE);
?>
要删除 cookie 需要确保它的失效期是在过去,才能触发浏览器的删除机制。下面的例子说明了如何删除刚才设置的 cookie:
例子 2. setcookie() 删除例子 // 将过期时间设为一小时前
setcookie("TestCookie", "", time() - 3600);
setcookie("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca", 1);
也可以通过在 cookie 名称中使用数组符号来设定数组 cookie,可以设定多个 cookie 作为数组单元,在脚本提取 cookie 时所有的值都放在一个数组种: 例子 3. setcookie() 中使用数组的例子 <?php
// 设定 cookie
setcookie("cookie[three]", "cookiethree");
setcookie("cookie[two]", "cookietwo");
setcookie("cookie[one]", "cookieone");
// 刷新页面后,显示出来
if (isset($_COOKIE[''cookie''])) {
foreach ($_COOKIE[''cookie''] as $name => $value) {
echo "$name : $value <br />\n";
}
}
?>
这就是session 和cookie 的使用方法。
‘捌’ php怎么把session值传到html
session的key-value都是存在server的,浏览器没法直接获取。
在html里能通过js拿到jesessionid之类的东西。
1、数据量如果小,可以考虑放到cookie里,传到客户端,html里用js就可以拿到。
2、如果数据量大,可以考虑单独做一个jsp或servlet,根据传来的session的key,返回序列化的session的值,比如json之类的。html里用js通过ajax获取。这种方式复杂了点,多一次远程访问,但是灵活方便。
‘玖’ 关于php里session在跳转页面后失效的问题
php 中的session是有时间的,在存储session的时候,要把当前时间也存入,然后你判断的时候,要用当前时间剪去你存储的时间,如果没超时,则继续,超时,则销毁session,退出
‘拾’ 当php session被释放时触发的事件不太懂,有什么可以触发的事件吗
首先,session如果存在文本文件中,当浏览器关闭session就被释放了,其次,session有专门的函数session_destroy()清空session,如果非要说触发事件,那就调用释放函数时去判断或者浏览器关闭时js请求php去做事件