PHP urlencode()固定在?SID=xxx上。。。为什么?
我试图输出一个简单的链接 这非常有效:PHP urlencode()固定在?SID=xxx上。。。为什么?,php,session,urlencode,Php,Session,Urlencode,我试图输出一个简单的链接 这非常有效: $url = 'http://www.google.com'; echo $url; 这不太管用: $url = 'http://www.google.com'; echo urlencode($url); 出于某种原因,第二个示例将“?SID=xxx”附加到URL的末尾。如何防止这种情况发生 注意:生成URL的代码已更改以保护无辜者。这不是urlencode()的错误,是PHP的自动链接重写在没有会话cookie的情况下通过GET变量添加会话ID 如
$url = 'http://www.google.com';
echo $url;
这不太管用:
$url = 'http://www.google.com';
echo urlencode($url);
出于某种原因,第二个示例将“?SID=xxx”附加到URL的末尾。如何防止这种情况发生
注意:生成URL的代码已更改以保护无辜者。这不是
urlencode()
的错误,是PHP的自动链接重写在没有会话cookie的情况下通过GET变量添加会话ID
如果客户端禁用了Cookie,恐怕这是在客户端持久化会话所必需的
自动执行此操作的设置为会话。请使用\u trans\u sid
。更多信息。不要使用urlencode()对URL进行编码,您将得到这样一个URL
http%3A%2F%2Fwww.google.com
对于PHP来说,这看起来像一个相对URL,所以当缺少cookie时,它会附加SID
urlencode()应该用于编码查询字符串参数,而不是URL本身。这就是诀窍。这是一个类似facebook的按钮的查询参数。