微擎扩展模块 下载0.8 扩展封面回复怎么得到id

mixed user_single(array $user_or_uid)
& && 查询微擎后台(web)用户信息
& $user_or_uid 是一个数组形式(若是int可以直接写不用数组)的参数,也就是要查询的用户字段,可以包括 uid、 username、password、status和email
& 如果要查询的用户ID为空,返回FALSE,否则返回用户的详细信息。
& 因为,有时候我们需要微擎系统后台里面的注册用户信息,这些用户包括管理、操作员、门店员等在后台web注册的用户信息,这些用户信息大都保存在表ims_users里面,所以,这个函数的作用就是把这个表中的信息根据传递的参数条件从表ims_users中查询出来。
& 除了这个表外此函数还返回门店店员表ims_activity_clerks和门店表ims_activity_stores部分字段信息。
& 这个函数就是根据参数(假设传递的参数就是$user_or_uid=array('uid'=&4,'username'=&'李店员')这个数组,以下在分析函数时,如果用到参数则就以这个数组作用参考)进行查询表ims_users里面的数据,然后,把根据从ims_users查询出来的数据再查询另外两个表中的字段信息,然后,把所有查询到的用户信息遍历出来并返回。
& 1)判断参数$users_or_uid各种可能的情况:
& 先把这个参数赋给变量$user = $users_or_uid
& 这样做的好处是方便编写代码,再一个就是万一要处理$user 时出问题,不至于引起变量$user_or_uid的问题,这个功能在本函数中没有体现,以后我们在编写代码时,也可以参才这样的方式,有点类似我们不修改原来的东西,而是把原来的东西赋给一个新的东西,既使新的东西弄坏了,原来的也不影响。
& 如果传递的参为空,即条件if(empty($user))成立,则返回false:
if (empty($user)) {
& 要知道参数其实是查询用户信息表ims_users的条件,如果这个条件都没有了的话,就没有必要查询了,所以,从这里可以看出,参数$user_or_uid必须不能为空。
& 如果参数是一个数字或数字字符串的话,则重新组合一个新数组:
if (is_numeric($user)) {
$user = array('uid' =& $user);
& 从这段代码可以知道两点:一是可以传递一个数字,二是因为使用的是pdo_()函数,而这个函数的第二个参数必须是一个数组,所以,如果您在使用查询用户信息函数时,传的第二个参数是一个数字的话,这里装把您传递的数字作为表的ims_users的uid的值,然后,重新组装一个数组。
& 如果$user参数不是一个数组,则返回false:
if (!is_array($user)) {
& 准确的说如果$user参数除数字外,如果不是一个数组的话,将返回false,因为,上面已经对只传递一个数字作了处理了。如果把这一行代码放到上面的话,那么,只传递一个数字就查询不到信息了。
& 2)根据参数$user组装where 条件sql语句:
& 初始化一个where条件:$where = ' WHERE 1 ';
& 初始化一个条件数组:$params = array();
& 判断参数uid、unsername、email和status是否存在,如果存在则拼装where条件语句:
& 从这里可以看出参数就是用来拼装sql语句里面的条件的。
& 判断获取到的条件语句数组$params是不是空,若为空则返回false:
if (empty($params)) {
& 查询表ims_users中的所有信息:
$sql = 'SELECT * FROM ' . tablename('users') . & $where LIMIT 1&;
$record = pdo_fetch($sql, $params);
& 如果查询的结果$record为空,则返回false:
if (empty($record)) {
& 因为,密码比较敏感所以,在查询时要小心处理,如果参数中有密码参数的话,则进行如下处理:
if (!empty($user['password'])) {
$password = user_hash($user['password'], $record['salt']);
if ($password != $record['password']) {
& 把查询出来的salt字段值和参数$user['password']进行加密,看看这个加密后的密码是不是跟查询ims_users里面的密码一致,若不一致则返回false。
& 3)查询店员表activity_clerks:
& 注意,如果参数中传递的uid不是4,则程序不会进入到下面的表中查询数据。
& 如果条件if($record['type'] == ACCOUNT_OPERATE_CLERK) 成立,则进行查询店员表。在这个条件里面常量ACCOUNT_OPERATE_CLERK是在const.inc.php文件中定义的,其值为3。
& 店员表在用户信息表中也有记录,如下图所示:
& 店员类型字段type在ims_users表中值也是3,所以,如果条件成立,说明已经在微擎微信公众号后台添加了店员了,既然,有店员就要查询一下这个店员信息,店员信息在店员信息表ims_activity_clerk里面。
& 店员表结构信息:
& 在这表中保存着店员的重要信息,比如,用户id、手机号、密码、店员名等。其中,最重要的就是uid,这个字段与用户信息表ims_users里面的uid是一一对应的,通过这个uid就可以查找到与店员所有有关的信息。
& 查询店员信息:
$clerk = pdo_get('activity_clerks', array('uid' =& $record['uid']));
& 然后,把店员表中重要的信息查询出来,然后,装进数组$record里面,这个数组原来就装了ims_users表中所有的用户信息(这里因为,查询的是店员信息,所以,这里装的是店员所有信息):
$record['name'] = $clerk['name'];
$record['clerk_id'] = $clerk['id'];
$record['store_id'] = $clerk['storeid'];
$record['clerk_type'] = '3';
$record['uniacid'] = $clerk['uniacid'];
& 根据店员表中的id,即$clerk['storeid']查询门店表ims_activity_stores里面的字段business_name(门店名称)放到数组$record里面:
$record['store_name'] = pdo_fetchcolumn('SELECT business_name FROM ' . tablename('activity_stores') . ' WHERE id = :id', array(':id' =& $clerk['storeid']));
& 如果您传递的参数uid不是4,则表示查询的不是店员信息(目前表中1,2,3是管理员和操作员id,而4是店员信息),上面这段代码就不会执行,则是执行下面的else里面的代码:
$record['name'] = $user['username'];
$record['clerk_id'] = $user['uid'];
$record['store_id'] = 0;
$record['clerk_type'] = '2';
& 最后,返回数组$record:
load()-&model('user');
print_r(user_single(array('uid'=&4,'username'=&'李店员')));
[uid] =& 4
[groupid] =& 0
[username] =& 李店员
[password] =& f5dc415caaae3c52dba41dace83402
[salt] =& O1PICiEp
[type] =& 3
[status] =& 2
[joindate] =&
[joinip] =& 39.71.202.237
[lastvisit] =&
[lastip] =& 39.71.202.237
[remark] =&
[starttime] =& 0
[endtime] =& 0
[name] =& 李店员
[clerk_id] =& 1
[store_id] =& 1
[store_name] =& 女装
[clerk_type] =& 3
[uniacid] =& 3
PHPOS微信网:专注于、、技术研究,为网站前后台和微信开发工程师提供教程资源。||——03-2303-2303-2303-2203-2203-2203-21
查看: 694|回复: 0
微擎0.8_9.3 修复COS保存失败 获取粉丝unionid获取不到等
威望睿币贡献
0.8_9.3 修复COS保存失败 获取粉丝unionid获取不到等
FIXED 修复系统在https下部分内容不显示,云服务无法使用
FIXED 修复COS保存失败
FIXED 修复获取粉丝unionid获取不到
FIXED 紧急修复了空白问题,请更新到最新版
下载地址:
后台一键更新
微擎一键更新域名提交帖:
本帖的地址:1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与新睿社区享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和新睿社区的同意
4、本站所有资源来源码于网络,仅供学习交流使用,本站不提供任何技术支持
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其完整性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、新睿社区管理员和版主有权不事先通知发贴者而删除本文,客服Email:
长期对论坛的繁荣而不断努力,或多次提出建设性意见
活跃且尽责职守的版主
曾经为论坛做出突出贡献目前已离职的版主
为论坛做出突出贡献的会员
&&& &&版权所有
非法入侵必将受到法律制裁 法律顾问:北京瀚诚律师事务所&&网站颜色:
无论是赞助及合作办会、自主办会还是赞助医生参会,它们各自..
究其原因,城市等级医院(指地级以上城市的二、三级医院,含..
掉出南方所百强榜的企业有:
微E名片2.5――微擎原版微赞通用模块
浏览:242次 评论:0条
责任编辑:
千线微名片,全新微名片,精仿千线微名片。详情可参考eqianxian.com。这不是简单的微名片,帮你快速结交朋友,建立人脉。生成一个名片二维码,扫描二维码可以保存到手机联系人中。可以更换背景音乐,更换背景图片。演示帐号 &去侣行 &发送 &名片VIP会员下载链接: 普通会员下载链接:
责任编辑:
您看到此篇文章时的感受是:
12345678910
12345678910
12345678910500 Internal Server Error
500 Internal Server Error微擎学习笔记
时间: 19:01:35
&&&& 阅读:1127
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&1.数据库操作
文件名processor.php
defined(‘IN_IA‘) or exit(‘Access Denied‘);
class RegisterModuleProcessor extends WeModuleProcessor{
& & &$sql = "select * from ".tablename(‘register‘)." where openid = :openid";
& & &$array = array(‘:openid‘=&$oepnid);
& & &if($res = pdo_fetch($sql,$array)){
& & & & & $msg = "你已经注册,\n注册名是:".$res[‘name‘];
& & & }else{
& & & & & preg_match_all(‘/^报名(.+)‘,$content,$matches);
& & & & & $res = pdo_insert(‘register‘,array(‘openid‘=&$openid,‘name‘=&$matches[1][0]));
& & & & & if($res){
& & & & & & & & $msg = ‘注册成功!‘;
& & & & & &}
& & & & return $this-&respText($msg);
2.$_W系统全局变量
$_W[‘siteroot‘] 当前微擎系统更目录
MODULE_ROOT当前插件位置
&?php echo $_W[‘siteroot‘].‘app‘.ltrim(murl(‘entry‘,array(‘do‘=&‘tupian‘,‘m‘=&‘hao_fly‘,‘nickname‘=&$nickname),false),‘.‘); ?& 请求site.php里面的一个方法
3.group_concat()
//group_concat()把分组后的一个的数组用‘,‘隔开得到一个例如:1,2,3的一组数据
$sql1 = "select group_concat(field_id ORDER BY id),group_concat(id ORDER BY id) from ".tablename(‘hao_field_data‘)." group by groupid";
$datas = pdo_fetchall($sql1);
var_dump($datas);
结果如图:
4.判断一个图片正真的格式
$data[‘image‘] = $_GPC[‘image‘];
$info = getimagesize(tomedia($data[‘image‘]));
if($info[2] != ‘2‘){
message(‘检测到你的图片原始格式不是JPG格式‘,$this-&createWebUrl(‘qrcode‘),error);
}/**/1 为 GIF 格式、 2 为 JPEG/JPG 格式、3 为 PNG 格式
&5。订阅号借权(认证服务号)获取用户信息
$fans = $_W[‘fans‘];
if(empty($fans[‘nickname‘])){
load()-&model(‘mc‘);
$fans = mc_oauth_userinfo();
var_dump($fans);die;
6.微信模板消息通知
* Curl 请求
public function wtw_request($url,$data=null){
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER[‘HTTP_USER_AGENT‘]); // 模拟用户使用的浏览器
if($data != null){
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
curl_setopt($curl, CURLOPT_TIMEOUT, 300); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
$info = curl_exec($curl); // 执行操作
if (curl_errno($curl)) {
//echo ‘Errno:‘.curl_getinfo($curl);//捕抓异常
//dump(curl_getinfo($curl));
return $info;
* 模板消息
public function templetemsg($openid,$result,$color,$url,$tempID){
//获取ACCESS_TOKEN
/*string(86)"*****"
* string(45)"{"errcode":0,"errmsg":"ok","msgid":}"
load()-&classs(‘weixin.account‘);
$accObj= new WeixinAccount();
$ACCESS_TOKEN = $accObj-&fetch_available_token();
$msg_url="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=".$ACCESS_TOKEN."";
$time = date("Y-m-d H:i:s",time());
$url = $url; ////这个链接是点击图文 跳转的链接,换行只能用n 不能用&Br/&
////请求包为一个json:
$msg_json= ‘{
"touser":"‘.$openid.‘",
"template_id":"‘.$tempID.‘",
"url":"‘.$url.‘",
"topcolor":"#FF0000",
"value":"你好:&我要上推荐&审核结果来啦!",
"color":"#FF0000"
"FBForm":{
"value":"审核结果通知",
"color":"#000000"
"FBNote":{
"value":"‘.$result.‘",
"color":"‘.$color.‘"
"FBTime":{
"value":"‘.$time.‘",
"color":"#000000"
"FBArea":{
"value":"",
"color":""
$result = $this-&wtw_request($msg_url,$msg_json);
///$result = $this-&msg_request($msg_url, $msg_json, $header = array());
//dump($result);
7.微擎php生成url
{php $url = $_W[‘siteroot‘].‘app/‘.$this-&createMobileUrl(‘upload‘, array());}
8.bootsttrap表格
{template ‘common/header‘}
&div class="panel panel-default"&
&div class="panel-heading"&素材管理&/div&
&div class="panel-body"&
&div class="panel-group"&
&div class="panel panel-primary"&
&div class="panel-heading"&
&div class="panel-body"&
&div class="list-op" id="list_op"&
&button type="button" class="btn btn-default btn-sm"&
&span class="glyphicon glyphicon-plus" aria-hidden="true"&&/span&新增
&!-- &button type="button" class="btn btn-default btn-sm"&
&span class="glyphicon glyphicon-pencil" aria-hidden="true"&&/span&修改
&button type="button" class="btn btn-default btn-sm"&
&span class="glyphicon glyphicon-remove" aria-hidden="true"&&/span&删除
&table class="table table-bordered table-hover"&
&tr class="success"&
&th&编号&/th&
&th&简述&/th&
&th&素材&/th&
&th&操作&/th&
&td&C00001&/td&
&td&机车&/td&
&td&机车&/td&
&button type="button" class="btn btn-success"&编辑&/button&
&button type="button" class="btn btn-danger"&删除&/button&
$(function(){
function initTableCheckbox() {
var $thr = $(‘table thead tr‘);
var $checkAllTh = $(‘&th&&input type="checkbox" id="checkAll" name="checkAll" /&&/th&‘);
/*将全选/反选复选框添加到表头最前,即增加一列*/
$thr.prepend($checkAllTh);
/*&全选/反选&复选框*/
var $checkAll = $thr.find(‘input‘);
$checkAll.click(function(event){
/*将所有行的选中状态设成全选框的选中状态*/
$tbr.find(‘input‘).prop(‘checked‘,$(this).prop(‘checked‘));
/*并调整所有选中行的CSS样式*/
if ($(this).prop(‘checked‘)) {
$tbr.find(‘input‘).parent().parent().addClass(‘warning‘);
$tbr.find(‘input‘).parent().parent().removeClass(‘warning‘);
/*阻止向上冒泡,以防再次触发点击操作*/
event.stopPropagation();
/*点击全选框所在单元格时也触发全选框的点击操作*/
$checkAllTh.click(function(){
$(this).find(‘input‘).click();
var $tbr = $(‘table tbody tr‘);
var $checkItemTd = $(‘&td&&input type="checkbox" name="checkItem" /&&/td&‘);
/*每一行都在最前面插入一个选中复选框的单元格*/
$tbr.prepend($checkItemTd);
/*点击每一行的选中复选框时*/
$tbr.find(‘input‘).click(function(event){
/*调整选中行的CSS样式*/
$(this).parent().parent().toggleClass(‘warning‘);
/*如果已经被选中行的行数等于表格的数据行数,将全选框设为选中状态,否则设为未选中状态*/
$checkAll.prop(‘checked‘,$tbr.find(‘input:checked‘).length == $tbr.length ? true : false);
/*阻止向上冒泡,以防再次触发点击操作*/
event.stopPropagation();
/*点击每一行时也触发该行的选中操作*/
$tbr.click(function(){
$(this).find(‘input‘).click();
initTableCheckbox();
{template ‘common/footer‘}
&9微擎模糊查询
$lists = pdo_fetchall("SELECT * FROM ".tablename(‘kobe_vote_join‘)." WHERE uniacid = ‘{$uniacid}‘ AND name LIKE ‘%{$_GPC[‘map‘]}%‘ OR id LIKE ‘%{$_GPC[‘map‘]}%‘ ORDER BY ticket DESC LIMIT ".($pindex - 1) * $psize.‘,‘.$psize);
  标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:http://www.cnblogs.com/zhoumeng780/p/5198912.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!}

我要回帖

更多关于 微擎扩展解密 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信