不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2015-08-02 21:35  分类:PHP库/系统/微信  编辑

由于公众平台的特殊形式,用户的消息是通过腾讯服务器直接POST的过来的,服务器是不带Cookie过来的,所以当你想用平时直接设置CookieSession是不行的,Cookie是彻底没戏,Session的问题是 服务器每次过来不带session_id,所有我们也无话读取session文件,解决的办法就是吧用户Post过来的微信名当做sessionid,微信号(openid)是一个唯一不重复的,这样每个用户的状态是可以独立的。

<?php
$wObj = new Weixin();
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$wObj->fromUsername = $postObj->FromUserName;
session_id($wObj->fromUsername);
session_start();
?>

这样后我们就能用session存用户状态了。