我正在尝试通过HTTP GET变量为无cookie客户端发送PHPSESSID.
我已经在各种drupal实现中看到了这一点,?PHPSESSIONID=123ABC它附加到每个链接,但是我如何在PHP中指定它,是否有任何方法可以更改GET参数,因为它可能是?token = 123ABC,甚至通过HTTP POST发送?
标准LAMP堆栈,运行Zend框架.
谢谢!
使用cookie或不使用cookie由以下PHP选项配置:
如果设置了第一个,则尽可能使用cookie.
PHP应该检测是否启用了cookie,并且只有在客户端支持cookie时才使用它们.
要启用通过GET而不是cookie传递会话ID,您可能必须激活session.use_trans_sid,默认情况下禁用(这意味着,通过defaut,会话ID仅通过cookie传递 - 绝不通过GET传递).
但请注意,启用此选项后,PHP将至少通过GET传递会话ID,因为他们将首先访问您网站的每个用户的第一页...因为他们最初不会拥有cookie,而且只能通过检查他们是否支持cookie是通过设置一个,并尝试在下一页上阅读它.
并且不支持cookie的用户,包括我可能会说的搜索引擎,会有会话ID - 这不是很好:-(
并且,您可能还想查看session.name来设置密钥的名称(设置为"token"而不是"PHPSESSID",我的意思是)
有关更多详细信息,您可以查看手册的" 会话处理"部分:-)