⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cp_invite.php

📁 uch邀请!QQ,126 163. yah
💻 PHP
字号:
<?php
/*
	[UCenter Home] (C) 2007-2008 Comsenz Inc.
	$Id: cp_invite.php 8374 2008-08-05 07:49:06Z zhengqingpeng $
*/

if(!defined('IN_UCHOME')) {
	exit('Access Denied');
}

if($_SCONFIG['closeinvite']) {
	showmessage('close_invite');
}
	
$siteurl = getsiteurl();
$maxcount = 500;//最多好友邀请

$pay_invite = creditrule('pay', 'invite');
$get_invite = creditrule('get', 'invite');

$invite_code = '';
if(empty($pay_invite)) {
	$invite_code = space_key($space);
}

if($_GET['op'] == '' || $_GET['op'] == 'link' || $_GET['op'] == 'dump') {
	$list = $flist = array();
	$count = 0;
	
	$query = $_SGLOBAL['db']->query("SELECT * FROM ".tname('invite')." WHERE uid='$_SGLOBAL[supe_uid]' ORDER BY id DESC");
	while ($value = $_SGLOBAL['db']->fetch_array($query)) {
		realname_set($value['fuid'], $value['fusername']);
		if($value['fuid']) {
			$flist[] = $value;
		} else {
			if($pay_invite) {
				$inviteurl = "{$siteurl}invite.php?{$value[id]}{$value[code]}";
			} else {
				$inviteurl = "{$siteurl}invite.php?u=$space[uid]&c=$invite_code";
			}
			if($value['type']) {
				$maillist[] = array(
					'email' => $value['email'],
					'url' => $inviteurl,
					'id' => $value['id']
				);
			} else {
				$list[] = $inviteurl;
				$count++;
			}
		}
	}
	
	realname_get();
}


/** 重新发送邀请邮件 */
if($_GET['op'] == 'resend') {
	$id = $_GET['id'] ? intval($_GET['id']) : 0;
	if(submitcheck('resendsubmit')) {
		if(empty($id)) {
			showmessage('send_result_3');
		}
		$query = $_SGLOBAL['db']->query("SELECT * FROM ".tname('invite')." WHERE id='$id' AND uid='$_SGLOBAL[supe_uid]' ORDER BY id DESC");
		if($value = $_SGLOBAL['db']->fetch_array($query)) {
			if($pay_invite) {
				$inviteurl = "{$siteurl}invite.php?{$value[id]}{$value[code]}";
			} else {
				$inviteurl = "{$siteurl}invite.php?u=$space[uid]&c=$invite_code";
			}
			createmail($value['email'], $inviteurl);
			showmessage('send_result_1', $_POST['refer']);
		} else {
			showmessage('send_result_3');
		}
	}
	
	include template('cp_invite');
} 

elseif($_GET['op'] == 'link') {
	if($pay_invite) {
		$list_str = empty($list)?'':implode("\n", $list);
		
		$maxcount_my = $maxcount - $count;
		$maxinvitenum = empty($pay_invite)?$maxcount_my:intval($space['credit']/$pay_invite);
		if($maxinvitenum > $maxcount_my) $maxinvitenum = $maxcount_my;
		if($maxinvitenum < 0) $maxinvitenum = 0;
		
		//提交
		if(submitcheck('invitesubmit')) {
			if($_SCONFIG['closeinvite']) {
				showmessage('close_invite');
			}
			$invitenum = intval($_POST['invitenum']);
			if($invitenum > $maxinvitenum) $invitenum = $maxinvitenum;
			//扣减积分
			$credit = intval($pay_invite)*$invitenum;
			if(empty($invitenum) || ($pay_invite && $credit > $space['credit'])) {
				showmessage('invite_error');
			}
			
			$codes = array();
			for ($i=0;$i<$invitenum;$i++) {
				$code = strtolower(random(6));
				$codes[] = "('$_SGLOBAL[supe_uid]', '$code')";
			}
			if($codes) {
				$_SGLOBAL['db']->query("INSERT INTO ".tname('invite')." (uid, code) VALUES ".implode(',', $codes));
				
				if($credit) {
					$_SGLOBAL['db']->query("UPDATE ".tname('space')." SET credit=credit-$credit WHERE uid='$_SGLOBAL[supe_uid]'");
				}
			}
			showmessage('do_success', 'cp.php?ac=invite', 0);
		}
	}
	
	$actives = array('invite'=>' class="active"');
	include template('cp_invite_link');
}

/** 导入邮箱通讯录等 */
elseif($_GET['op'] == "dump") {
	include template('cp_invite_dump');
}

/** 导出MSN联系人 */
elseif ($_GET['op'] == "dumpmsn") {
	if(!$_POST['account'] || !$_POST['passwd']){
		die('error');
	}
	//取得联系人 UTF8
	require_once (S_ROOT.'./source/contact/mailfactory.php');
	$contact = new MailFactory(MMSN);
	$contacts = $contact->getContactList($_POST['account'], $_POST['passwd']);

	if($contacts == 0) die('error');
	if(empty($contacts)) die('empty');

	echo diff_contacts($contacts);
	exit;
}

/** 导入邮箱通讯薄 */
elseif ($_GET['op'] == "dumpemail"){
	if(!$_POST['account'] || !$_POST['passwd'] || !$_POST['postoffice']){
		die('error');
	}
	//取得联系人 UTF8
	require_once (S_ROOT.'./source/contact/mailfactory.php');
	switch ($_POST['postoffice']) {
		case "126.com":
			$contact = new MailFactory(M126);
			break;
		case "sina.com":
			$contact = new MailFactory(MSINA);
			break;
		case "tom.com":
			$contact = new MailFactory(MTOM);
			break;
		case "gmail.com":
			$contact = new MailFactory(MGOOGLE);
			break;
		case "163.com":
			$contact = new MailFactory(M163);
			break;
		case "sohu.com":
			$_POST['account'] = $_POST['account'] . "@" . $_POST['postoffice'];
			$contact = new MailFactory(MSOHU);
			break;
		case "vip.sohu.com":
			$_POST['account'] = $_POST['account'] . "@" . $_POST['postoffice'];
			$contact = new MailFactory(MSOHU_VIP);
			break;
		case "yahoo.cn":
		case "yahoo.com":
		case "yahoo.com.cn":
			$_POST['account'] = $_POST['account'] . "@" . $_POST['postoffice'];
			$contact = new MailFactory(MYAHOO);
			break;
		default:
			die("error");
	}
	$contacts = $contact->getContactList($_POST['account'], $_POST['passwd']);

	if($contacts == 0) die('error');
	if(empty($contacts)) die('empty');

	if($_POST['postoffice'] == "sina.com" || $_POST['postoffice'] == "sohu.com" || $_POST['postoffice'] == "vip.sohu.com" ) {
		echo diff_contacts($contacts);
	} else {
		echo diff_contacts(array_flip($contacts));
	}
	exit;
}


/** 导入FOXMAIL通讯薄 */
elseif ($_GET['op'] == "dumpcard"){
	if(empty($_FILES['cardfile']) || $_FILES['cardfile']['size'] <= 0) {
		$ret = 'error';
	} else {
		$content = file_get_contents($_FILES['cardfile']['tmp_name']);
		preg_match_all("/[a-z0-9_\.\-]+@[a-z0-9\-]+\.[a-z]{2,6}/i", $content, $matches);
		if(($emails = array_unique($matches[0])) !=false) {
			$ret = diff_contacts(array_flip($emails));
		} else {
			$ret = "empty";
		}
		unset($matches);
	}
	echo "<script language=javascript>parent.accountAjaxShow('".addslashes($ret)."');</script>";
	exit;
}

/* 处理邮件邀请 */
elseif(submitcheck('emailinvite') || $_GET['op'] == 'inviteemail') {
	set_time_limit(0);//设置超时时间

	$mails = explode(',', str_replace(array(lang('tab_space'), "\r\n", "\n", "\r", " "), ',', trim($_POST['emails'])));
	$mails = array_unique($mails);
	if(empty($mails) || (count($mails)==1 && empty($mails[0]))) {
		showmessage('mail_can_not_be_empty');
	}
	$invitenum = 0;
	$failingmail = array();
	
	$queuecount = 0;
	$lasturl = '';
	$lastemail = '';

	foreach($mails as $key => $value) {
		if(empty($value) || !isemail($value)){
		    continue;
		}
		
		if($pay_invite) {
			//计算积分扣减积分
			$credit = intval($pay_invite)*($invitenum+1);
			if(!isemail($value) || ($pay_invite && $credit > $space['credit'])) {
				$failingmail[] = $value;
				continue;
			}
	
			$code = strtolower(random(6));
			$setarr = array(
				'uid' => $_SGLOBAL['supe_uid'],
				'code' => $code,
				'email' => saddslashes($value),
				'type' => 1
			);
			$id = inserttable('invite', $setarr, 1);
			if($id) {
				$url = "{$siteurl}invite.php?{$id}{$code}";
				createmail($value, $url);
				$invitenum++;
			} else {
				$failingmail[] = $value;
			}
		} else {
			$url = "{$siteurl}invite.php?u=$space[uid]&amp;c=$invite_code";
			createmail($value, $url);
		}
	}

	if($pay_invite && $invitenum) {
		$credit = intval($pay_invite)*$invitenum;
		$_SGLOBAL['db']->query("UPDATE ".tname('space')." SET credit=credit-$credit WHERE uid='$_SGLOBAL[supe_uid]'");
	}
	if(count($failingmail)) {
		showmessage('send_result_2', '', 2, array(implode(',', $failingmail)));
	} else {
		showmessage('send_result_1');
	}
}

/** 默认首页 */
else {
	include template('cp_invite');
}

function createmail($mail, $url) {
	global $_SGLOBAL, $_SCONFIG, $space, $_SN;
	
	if(empty($_SGLOBAL['spaceinfo'])) {
		$albumnum = $_SGLOBAL['db']->result($_SGLOBAL['db']->query("SELECT COUNT(*) FROM ".tname('album')." WHERE uid='$_SGLOBAL[supe_uid]'"), 0);
		$doingnum = $_SGLOBAL['db']->result($_SGLOBAL['db']->query("SELECT COUNT(*) FROM ".tname('doing')." WHERE uid='$_SGLOBAL[supe_uid]'"), 0);
		$blognum = $_SGLOBAL['db']->result($_SGLOBAL['db']->query("SELECT COUNT(*) FROM ".tname('blog')." WHERE uid='$_SGLOBAL[supe_uid]'"), 0);
		$threadnum = $_SGLOBAL['db']->result($_SGLOBAL['db']->query("SELECT COUNT(*) FROM ".tname('thread')." WHERE uid='$_SGLOBAL[supe_uid]'"), 0);
		$tagspacenum = $_SGLOBAL['db']->result($_SGLOBAL['db']->query("SELECT COUNT(*) FROM ".tname('tagspace')." WHERE uid='$_SGLOBAL[supe_uid]'"), 0);
		$subject = cplang('invite_subject', array($_SN[$space['uid']], $_SCONFIG['sitename']));
		$spaceurl = $siteurl.'space.php?uid='.$_SGLOBAL['supe_uid'];
		$_SGLOBAL['spaceinfo'] = array(
			'albumnum' => $albumnum,
			'doingnum' => $doingnum,
			'blognum' => $blognum,
			'threadnum' => $threadnum,
			'tagspacenum' => $tagspacenum,
			'subject' => $subject,
			'spaceurl' => $spaceurl
		);
	}
	
	$msg1 = cplang('invite_massage_1', array($_SGLOBAL['spaceinfo']['spaceurl'], avatar($_SGLOBAL['supe_uid'], 'middle'), $_SN[$space['uid']]));
	$msg2 = cplang('invite_massage_2', array($_SCONFIG['sitename'], $_SN[$space['uid']], $_POST['saymsg']));
	$msg3 = cplang('invite_massage_3', array($_SN[$space['uid']], $_SCONFIG['sitename'], $space['friendnum'], $_SGLOBAL['spaceinfo']['albumnum'], $_SGLOBAL['spaceinfo']['doingnum'], $_SGLOBAL['spaceinfo']['blognum'], $_SGLOBAL['spaceinfo']['threadnum'], $_SGLOBAL['spaceinfo']['tagspacenum']));
	
	$mailmsg = cplang('invite_massage', array($msg1, $msg2, $url, $msg3));
	addmailcron(0, $mail, $_SGLOBAL['spaceinfo']['subject'], $mailmsg);
}


/**
 * 分组联系人 看哪些已经注册
 *
 * @param array $contacts=array('email'=>'nick')
 * @return json
 */
function diff_contacts($contacts = array('email'=>'nick')){
	global $_SGLOBAL;
	
	if(empty($contacts) || !is_array($contacts)) return 'empty';
	
	//取得已注册的联系人 GBK
	$userReged = array();
	$sqlQuery = "SELECT m.uid, m.username, sf.email, sf.sex, sf.birthprovince, sf.birthcity 
			FROM ".tname('member')." m
			LEFT JOIN ".tname('spacefield')." sf ON m.uid=sf.uid
			WHERE sf.email IN ('".implode("','", array_keys($contacts))."')";
	$query = $_SGLOBAL['db']->query($sqlQuery);
	while (($value = $_SGLOBAL['db']->fetch_array($query)) != FALSE) {
		$userReged[] = $value;
		unset($contacts[$value['email']]);
	}
	$ret = array(
		'list' => array(),
		'reg' => array()
	);
	foreach ($contacts as $email => $nick){
		$ret['list'][] = array(
			'email' => $email,
			'nick' => is_numeric($nick) ? $email : $nick,
		);
		unset($contacts[$email]);
	}
	foreach ($userReged as $key => $user){
		$ret['reg'][] = array(
        	'uid' => $user['uid'],
			'user_name' => siconv($user['username'], 'UTF-8'),
			'icon' => avatar($user['uid'], 'small'),
			'online' => '',
			'gender' => $user['sex'],
			'city' => siconv($user['birthprovince'] . " " . $user['birthcity'], 'UTF-8'),
		);
		unset($userReged[$key]);
	}
	unset($contacts, $userReged);
	
	//return json_encode($ret);
	if ( !function_exists('json_encode') ) {
		require_once (S_ROOT.'./source/contact/json.php');
		$json = new Services_JSON;
                
		return $json->encode($ret);
	} else {
		return json_encode($ret);
	}
}

?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -