php跨域session
1. php 不能获取 Session 值(跨域但在同一台服务器上面)
我也有遇到这问题,SESSION在当前页下能获取值,当跳转了一个页面后就获取不到了。搞得我都登录不了后台了。。
2. thinkphp 如何子域名session跨域
给你一个方案
在A站登陆成功后,在提示页面输出一个<script src="B站的同步登陆api"></script>
其中 B站的同步登陆api 地址带上用户的ID及登陆授权参数. 然后这个API中通过用户的ID及授权参数判断是否合法.合法则在B站添加session 这样就实现了同步登陆.
然后同步退出,方法也是一样的
3. PHP session问题
setcookie ( 'PHPSESSID', session_id (), time () + $expire );
SESSION 本身就有 COOKIE 并且是同步于连接会话。不会产生跨窗口问题。但是你在这里设置了有效时间的 COOKIE 值。使得 SESSION 在生命周期内可以进行跨窗口访问。。
之所以你在本地会正常的原因在于,本地的 COOKIE 只在当前域下作用。你应该是在本地 Apache 设置了虚拟主机。。
跟据我的测试结果。。在本地模拟 COOKIE 跨窗口、跨域操作。都被视为同一个域下的会话。即使你用三台电脑分别模似WWW服务器,DNS服务器,客户机,由于它们都在同一个域下。全部无效。
所以开不同的窗口访问,也就是新建了连接会话。记忆的 COOKIE 无效化。。而传到服务器以后,客户机和服务器不是同一个域下了。COOKIE 跨窗口生效。。
解决办法就是。。不要给 SESSION_ID 设置有效时间。。你自己重新生成一个 COOKIE 值代替它。。或者干脆你自己建立 SESSION 机制。用 MYSQL 或者 文件。存在服务器上。
不建议你用这种设计思路来记住变量值。因为 SESSION 是有周期的。不可能长时间保存。。
4. PHPSESSID的问题
session好像跨域就会不同,如果跨域跳转老的session就会丢失好像。后面的问题我就不知道了
5. php中$_session[]是什么意思
用户会话保存变量
1.php文件
<?php
session_start();
$_SESSION["str"]="我是中国人!!!";
?>
2.php文件
<?php
session_start();
echo $_SESSION["str"];
?>
先执行1.php,,再执行2.php,,会看到在1.php里面设置的变量被输出了,,就这作用,,用来保存跨域的变量
楼上说的不对,,session虽说是保存在服务器端,,但对客户端仍有数据发送,并且是以cookie的方式,,如果客户端禁用了cookie,,session也是用不了的.....还有,,session也是可以造假的...并不一定百分之一百安全
6. php中 session_id() 是什么意思
session_id()
session_id() 存取目前 session 代号。
语法: string session_id(string [id]);
本函数可取得或者重新配置目前存放 Session 的代号。若无参数 id 则表示只有取得目前 Session 的代号,加上参数则表示将 Session 代号设成新指定的 id。输入及返回均为字符串。
输出 session_id()
<?php
session_start();
echo session_id();
// 输出 dqr58dnuqj2gufvg4o3tmjb9v4
?>
设置 session_id()
<?php
session_id("NowaMagic");
session_start();
echo session_id();
// 输出 NowaMagic
?>
7. php session 作用域范围
这因为发生跨域,所以是不能的,$_SESSION 作为超级变量是可以在整个域内进行访问的,一旦跨域就不能够直接访问了,得使用其他的方法传递过去,比如URL后面带着问号的方法进行GET传递到另一个域,然后另一个域对接收的的变量进行处理生成那个域的会话等等。