我已经编写了两个函数setSes()
和getSes()
,在这里我编写了session_start()
。除了IE之外,它对所有浏览器都很感兴趣。
function setSes(){
$res=mysql_fetch_assoc(mysql_query("select * from table1 limit 1"));//data from DB
$_SESSION['ses1']=$res['name'];//Its not working .... $res['name']='Raj'
$_SESSION['ses1']="priyabrata";//Its working
}
function getSes(){
session_start();
print"<pre>";
print_r($_SESSION);
}
请得到一些想法
答案 0 :(得分:1)
您需要先启动会话才能设置变量。您可能正在这样做,但在您链接的代码中,您没有显示调用getSes()或setSes()的顺序,并且您似乎正在动态编辑它,所以我无法真正跟上。
在此处阅读启动会话功能。
答案 1 :(得分:1)
PHP会话编写一个cookie,称为PHPSESSID
或类似的东西。您可以在php.ini中或使用特殊的php函数更改名称。
无论如何,浏览器必须接受cookie才能使会话正常工作。 IE(早期版本,甚至更晚版本)具有强制安全策略,这使得传输cookie变得很困难。
我建议您阅读this文章,该文章对此确切问题进行了全面研究,并提供了解决方案。
我在IE上遇到了这个问题。如果服务器时间戳不正确,或者其他服务器设置对cookie过滤器看起来很“可疑”,则不接受cookie。当然,大多数这些安全设置都可以在IE中更改和关闭,但必须在客户端完成,这是不合适的。
答案 2 :(得分:0)
您的代码意味着您使用getSes()
从会话中获取一些价值,如果您想设置它,则使用setSes()
。从逻辑上讲,你可以在得到它之前设置一个值,对吗?
但是使用此代码,您在设置var时不会调用session_start()
。
在脚本中首先调用session_start()
,它可能会更好......