www.gusucode.com > 74cms 骑士PHP人才系统 V3.4源码程序 > code/upload/admin/admin_smsqueue.php
<?php /* * 74cms 邮件群发 * ============================================================================ * 版权所有: 骑士网络,并保留所有权利。 * 网站地址: http://www.74cms.com; * ---------------------------------------------------------------------------- * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和 * 使用;不允许对程序代码以任何形式任何目的的再发布。 * ============================================================================ */ define('IN_QISHI', true); require_once(dirname(__FILE__).'/../data/config.php'); require_once(dirname(__FILE__).'/include/admin_common.inc.php'); require_once(ADMIN_ROOT_PATH.'include/admin_smsqueue_fun.php'); $act = !empty($_GET['act']) ? trim($_GET['act']) : 'list'; check_permissions($_SESSION['admin_purview'],"smsqueue"); $smarty->assign('pageheader',"短信营销"); if($act == 'list') { get_token(); require_once(QISHI_ROOT_PATH.'include/page.class.php'); $key=isset($_GET['key'])?trim($_GET['key']):""; $key_type=isset($_GET['key_type'])?intval($_GET['key_type']):""; if (!empty($key) && $key_type>0) { if ($key_type===1)$wheresql=" WHERE s_body like '%{$key}%'"; if ($key_type===2)$wheresql=" WHERE s_mobile = '{$key}'"; $oederbysql=""; } $_GET['s_type']<>''? $wheresqlarr['s_type']=intval($_GET['s_type']):''; if (!empty($wheresqlarr)) $wheresql=wheresql($wheresqlarr); $total_sql="SELECT COUNT(*) AS num FROM ".table('smsqueue').$wheresql; $page = new page(array('total'=>$db->get_total($total_sql), 'perpage'=>$perpage)); $currenpage=$page->nowindex; $offset=($currenpage-1)*$perpage; $list = get_smsqueue($offset,$perpage,$wheresql.$oderbysql); $smarty->assign('navlabel',"list"); $smarty->assign('list',$list); $smarty->assign('page',$page->show(3)); $smarty->display('smsqueue/admin_smsqueue_list.htm'); } elseif($act == 'smsqueue_add') { get_token(); $label[]=array('{sitename}','网站名称'); $label[]=array('{sitedomain}','网站域名'); $label[]=array('{sitelogo}','网站LOGO'); $label[]=array('{address}','联系地址'); $label[]=array('{tel}','联系电话'); $smarty->assign('label',$label); $smarty->assign('navlabel','add'); $smarty->display('smsqueue/admin_smsqueue_add.htm'); } elseif($act == 'smsqueue_add_save') { check_token(); $setsqlarr['s_sms']=trim($_POST['s_sms'])?trim($_POST['s_sms']):adminmsg('手机号码必须填写!',1); $s_body=trim($_POST['s_body'])?trim($_POST['s_body']):adminmsg('请填写短信内容',1); mb_strlen(trim($_POST['s_body']),'gb2312')>70?adminmsg('短信内容超过70个字,请重新输入!',1):''; $mobile_arr=explode('|',$setsqlarr['s_sms']); $mobile_arr=array_unique($mobile_arr); foreach($mobile_arr as $list){ if (preg_match("/^(13|15|18)\d{9}$/",$list)) { $uid=$db->getone('select uid from '.table('members')." where mobile= '{$list}' limit 1 "); $smssqlarr['s_uid']=$uid['uid']; $smssqlarr['s_body']=$s_body; $smssqlarr['s_addtime']=time(); $smssqlarr['s_mobile']=$list; inserttable(table('smsqueue'),$smssqlarr); $num++; } } $link[0]['text'] = "继续添加"; $link[0]['href'] = '?act=smsqueue_add'; $link[1]['text'] = "返回列表"; $link[1]['href'] = '?'; adminmsg("添加成功{$num}!",2,$links); } elseif($act == 'smsqueue_edit') { get_token(); $smarty->assign('show',get_smsqueue_one($_GET['id'])); $smarty->display('smsqueue/admin_smsqueue_edit.htm'); } elseif($act == 'smsqueue_edit_save') { check_token(); $setsqlarr['s_sms']=trim($_POST['s_sms'])?trim($_POST['s_sms']):adminmsg('手机号码必须填写!',1); $s_body=trim($_POST['s_body'])?trim($_POST['s_body']):adminmsg('请填写短信内容',1); mb_strlen(trim($_POST['s_body']),'gb2312')>70?adminmsg('短信内容超过70个字,请重新输入!',1):''; $wheresql=" s_id='".intval($_POST['id'])."' "; $link[0]['text'] = "返回列表"; $link[0]['href'] = '?'; if (preg_match("/^(13|15|18)\d{9}$/",$setsqlarr['s_sms'])) { $smssqlarr['s_body']=$s_body; $smssqlarr['s_addtime']=time(); $smssqlarr['s_mobile']=$setsqlarr['s_sms']; !updatetable(table('smsqueue'),$smssqlarr,$wheresql)?adminmsg("修改失败!",0):adminmsg("修改成功!",2,$link); } } elseif($act == 'smsqueue_batchadd') { get_token(); $smarty->assign('setmeal',get_setmeal()); $smarty->assign('navlabel','batchadd'); $smarty->display('smsqueue/admin_smsqueue_batchadd.htm'); } elseif($act == 'smsqueue_batchadd_save') { check_token(); $s_body=trim($_POST['s_body'])?trim($_POST['s_body']):adminmsg('请填写短信内容',1); mb_strlen(trim($_POST['s_body']),'gb2312')>70?adminmsg('短信内容超过70个字,请重新输入!',1):''; $selutype=intval($_POST['selutype']); $selsettr=intval($_POST['selsettr']); if ($selutype>0) { $wheresql=" WHERE utype='{$selutype}' "; } if ($selsettr>0) { $wheresql.=empty($wheresql)?" WHERE ":" AND "; $data=strtotime("-{$selsettr} day"); $wheresql.=" last_login_time<".$data; } if (!empty($_POST['verification'])) { if ($_POST['verification']=="1") { $wheresql.=" AND email_audit = 1"; } elseif ($_POST['verification']=="2") { $wheresql.=" AND email_audit = 0"; } elseif ($_POST['verification']=="3") { $wheresql.=" AND mobile_audit = 1"; } elseif ($_POST['verification']=="4") { $wheresql.=" AND mobile_audit = 0"; } } $result = $db->query("SELECT * FROM ".table('members').$wheresql); while($user = $db->fetch_array($result)) { if(preg_match("/^(13|15|18)\d{9}$/",$user['mobile'])){ $smssqlarr['s_uid']=$user['uid']; $smssqlarr['s_body']=$s_body; $smssqlarr['s_addtime']=time(); $smssqlarr['s_mobile']=$user['mobile']; !inserttable(table('smsqueue'),$smssqlarr)?adminmsg("添加失败!",0):''; $num++; } } adminmsg("添加成功{$num}!",2); } elseif($act == 'totalsend') { $sendtype=intval($_POST['sendtype']); $intervaltime=intval($_POST['intervaltime'])==0?3:intval($_POST['intervaltime']); $sendmax=intval($_POST['sendmax']); $senderr=intval($_POST['senderr']); if ($sendmax>0) { $limit=" LIMIT {$sendmax} "; } if ($sendtype===1) { $id=$_POST['id']; if (empty($id)) { adminmsg("请选择项目!",1); } if(!is_array($id)) $id=array($id); $sqlin=implode(",",$id); if (preg_match("/^(\d{1,10},)*(\d{1,10})$/",$sqlin)) { $result = $db->query("SELECT s_id FROM ".table('smsqueue')." WHERE s_id IN ({$sqlin}) {$limit}"); while($row = $db->fetch_array($result)) { $idarr[] = $row['s_id']; } if (empty($idarr)) { adminmsg("没有可发送的短信",1); } @file_put_contents(QISHI_ROOT_PATH."temp/sendsms.txt", serialize($idarr)); header("Location:?act=send&senderr={$$senderr}&intervaltime={$intervaltime}"); } } elseif ($sendtype===2) { $result = $db->query("SELECT s_id FROM ".table('smsqueue')." WHERE s_type=0 {$limit}"); while($row = $db->fetch_array($result)) { $idarr[] = $row['s_id']; } if (empty($idarr)) { adminmsg("没有可发送的短信",1); } @file_put_contents(QISHI_ROOT_PATH."temp/sendsms.txt", serialize($idarr)); header("Location:?act=send&senderr={$$senderr}&intervaltime={$intervaltime}"); } elseif ($sendtype===3) { $result = $db->query("SELECT s_id FROM ".table('smsqueue')." WHERE s_type=2 {$limit}"); while($row = $db->fetch_array($result)) { $idarr[] = $row['s_id']; } if (empty($idarr)) { adminmsg("没有可发送的短信",1); } @file_put_contents(QISHI_ROOT_PATH."temp/sendsms.txt", serialize($idarr)); header("Location:?act=send&senderr={$$senderr}&intervaltime={$intervaltime}"); } } elseif($act == 'send') { $senderr=intval($_GET['senderr']); $intervaltime=intval($_GET['intervaltime']); $tempdir=QISHI_ROOT_PATH."temp/sendsms.txt"; $content = file_get_contents($tempdir); $idarr = unserialize($content); $totalid=count($idarr); if (empty($idarr)) { $link[0]['text'] = "返回短信列队"; $link[0]['href'] = '?act=list'; adminmsg("任务执行完毕!",2,$link); } else { $s_id=array_shift($idarr); @file_put_contents($tempdir,serialize($idarr)); $sms =$db->getone("select * from ".table('smsqueue')." where s_id = '".intval($s_id)."' LIMIT 1"); // $mailconfig=get_cache('mailconfig'); if (send_sms($sms['s_mobile'],$sms['s_body'])!='success') { $db->query("update ".table('smsqueue')." SET s_type='2' WHERE s_id = '".intval($s_id)."' LIMIT 1"); if ($senderr=="2") { $link[0]['text'] = "返回短信列队"; $link[0]['href'] = '?act=list'; adminmsg('短信发送发生错误!'.$senderr,0,$link); } else { $link[0]['text'] = "发送下一条"; $link[0]['href'] = "?act=send&senderr={$$senderr}&intervaltime={$intervaltime}"; adminmsg("发生错误,准备发送下一条,剩余任务总数:".($totalid-1),0,$link,true,$intervaltime); } } else { $db->query("update ".table('smsqueue')." SET s_type='1',s_sendtime='".time()."' WHERE s_id = '".intval($s_id)."' LIMIT 1"); $link[0]['text'] = "发送下一条"; $link[0]['href'] = "?act=send&senderr={$$senderr}&intervaltime={$intervaltime}"; adminmsg("发送成功,准备发送下一条,剩余任务总数:".($totalid-1),2,$link,true,$intervaltime); } } } elseif($act == 'del') { $n=0; $deltype=intval($_POST['deltype']); if ($deltype===1) { $id=$_POST['id']; if (empty($id)) { adminmsg("请选择项目!",1); } if(!is_array($id)) $id=array($id); $sqlin=implode(",",$id); if (preg_match("/^(\d{1,10},)*(\d{1,10})$/",$sqlin)) { $db->query("Delete from ".table('smsqueue')." WHERE s_id IN ({$sqlin}) "); adminmsg("删除成功",2); } } elseif ($deltype===2) { $db->query("Delete from ".table('smsqueue')." WHERE s_type=0 "); adminmsg("删除成功 $delnum",2); } elseif ($deltype===3) { $db->query("Delete from ".table('smsqueue')." WHERE s_type=1 "); adminmsg("删除成功",2); } elseif ($deltype===4) { $db->query("Delete from ".table('smsqueue')." WHERE s_type=2 "); adminmsg("删除成功",2); } elseif ($deltype===5) { $db->query("Delete from ".table('smsqueue').""); adminmsg("删除成功",2); } } /*导出用户信息*/ elseif($act == 'export_info') { $selutype=intval($_POST['selutype']); $selsettr=intval($_POST['selsettr']); if ($selutype>0) { $wheresql=" WHERE utype='{$selutype}' "; } if ($selsettr>0) { $wheresql.=empty($wheresql)?" WHERE ":" AND "; $data=strtotime("-{$selsettr} day"); $wheresql.=" last_login_time<".$data; } if (!empty($_POST['verification'])) { if ($_POST['verification']=="1") { $wheresql.=" AND email_audit = 1"; } elseif ($_POST['verification']=="2") { $wheresql.=" AND email_audit = 0"; } elseif ($_POST['verification']=="3") { $wheresql.=" AND mobile_audit = 1"; } elseif ($_POST['verification']=="4") { $wheresql.=" AND mobile_audit = 0"; } } $total_sql="SELECT COUNT(*) AS num FROM ".table('members').$wheresql; $total_val=$db->get_total($total_sql); $result = $db->query("SELECT * FROM ".table('members').$wheresql); while($v = $db->fetch_array($result)) { $v['mobile']=$v['mobile']?$v['mobile']:'未填写'; $v['email']=$v['email']?$v['email']:'未填写'; $contents.= '★ 用户名:'.$v['username'].' 手机号:'.$v['mobile'].' 邮箱:'.$v['email']."\r\n\r\n"; } $time=date("Y-m-d H:i:s",time()); $header="===================================会员信息文件,符合条件的总计{$total_val}个,导出时间:{$time}========================================"."\r\n\r\n"; $txt=$header.$contents; header("Content-type:application/octet-stream"); header("Content-Disposition: attachment; filename=userinfo.txt"); echo $txt; } ?>