Heim > Backend-Entwicklung > PHP-Tutorial > PHP微信公众开发笔记(三)

PHP微信公众开发笔记(三)

WBOY
Freigeben: 2016-06-23 13:49:58
Original
731 Leute haben es durchsucht

PHP微信公众开发笔记系列

日期:2014.9.2


今天主要的任务是昨天提到的那个处理缓存信息的问题,我需要保存一些消息用来做二次判断。


首先,记录一些PHP语法知识吧。

1、PHP中字符串的连接语法:

在lua中,两个字符串的连接很简单,加入有两个字符串 "aaa";"bbb"; 需要将这两个字符串连接起来,只需要用两个句点 .. 便可以了:"aaa" .. "bbb"; 这里要注意,字符串与句点直接需要有空格,没有空格会报错;

而在PHP中,连接只需要一个句点就可以了:"aaa"."bbb"; 而且不需要强制在字符串和句点之间用空格;


2、得到时间,转换为日期格式:

使用date函数,格式为:date('Y-m-d H:i:s',time());挺简单的,记录一下


公众平台开发需求完成进度。

现在回到昨天留下的那个任务:利用session缓存记录信息,实现我们构想的那个菜单:

php中关于session的使用,我不是很清楚,所以就一直度娘度娘的,折腾了一番,总算是实现了我的功能需求了,不过还是觉得有一些不足的地方,留给以后再来修正吧。

昨天提到了,我要实现的菜单,希望能记住上一条信息。即提醒用户输入查询,进入查询菜单,在用户发送过来“查询”之后,下一条信息就应该转入查询菜单了,即我需要记住用户发送过“查询”这个信息。在度娘度了好久之后,查找到了要么就用数据库,要么就用session,在PHP中用数据库还不会,然后我感觉就简单的处理一下记住信息应该不需要动用数据库,所以采用的是使用session。

使用Session来实现我们的需求:

php中关于session具体该怎么用,以后还是需要度娘来详细了解一番,现在我们这只是简单的使用。

在查阅资料的时候,有网友提到用用户的username作为唯一id,这样就使得针对每个用户存储的信息会不一致(因为我们现在是服务器发送消息,每个用户都会发送消息过来,不能影响别的用户的使用),所以代码实现如下:

session_id($postObj->fromUsername);  //这个是微信服务器post过来的xml数据包中用户名字,用这个作为id

session_start();  //这个应该是开启session的意思吧?

而我这两行代码该放到哪里也不是很清楚,现在我是将这个代码放在 responseMsg函数中了,不知道是不是这样的,后面的测试是有用的。

开启了session之后,就是记录信息了:

$_SESSION['menu_type'] = $this->getUserMenu($textWord); //这里的getusermenu是我用来根据用户输入得到菜单类型的函数;记录信息用到了$_SESSION这个变量,这里是以数组形式使用??

在我们记录好了信息之后,该进行信息的判断了,使用到:

isset($_SESSION['menu_type']); //用isset来判断我们是否设置了这个值,这样就能判断用户是否选择了一个菜单了

然后在我们不需要使用的时候,则使用以下函数来销毁这个:

unset($_SESSION['menu_type'];


在代码中再做相应的调整,便可以实现我们的需求了。然后现在觉得不足的地方是,我该在哪个时候销毁保存的用户选择的菜单类型呢?假如用户选择了“查询”菜单,那么我们这边就是响应用户的查询行为了,至少在用户查询的过程中我们不应该销毁掉保存的菜单类型。我感觉合理的销毁有三种情况:用户关掉了对话框(即用户退出了和我们这个公众号的聊天框,但网上没查到怎么知道用户退出了);用户长时间内没有执行查询操作(即用户在选择了“查询”菜单的前提下,经过了一个给定的时间内没有执行相应的查询操作,这个时候自动销毁);最后就是用户自动选择退出。不销毁记录的信息,会出现这样的问题,在用户选择了“查询”菜单,然后用户退出了与公众号的聊天,下一次再进入的时候,还会保存记录的用户选择的菜单信息,感觉这样是不合理的。


抛开上面提到的问题,至少这一步我们需要的功能是实现了,有关的问题慢慢修复吧。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage