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

📄 note.php

📁 ShopEx网上商店系统V4.8版是中国最大的网店软件提供商ShopEx旗下网上商店最新版本。此次新版本的系统底层设计做出了重大调整
💻 PHP
字号:
<?php/*	[UCenter] (C)2001-2008 Comsenz Inc.	This is NOT a freeware, use is subject to license terms	$Id: note.php 12189 2008-01-17 07:29:56Z heyond $*/!defined('IN_UC') && exit('Access Denied');define('UC_NOTE_REPEAT', 5);define('UC_NOTE_TIMEOUT', 15);define('UC_NOTE_GC', 10000);class notemodel {	var $db;	var $base;	var $apps;	var $operations = array();	function notemodel(&$base) {		$this->base = $base;		$this->db = $base->db;		$_CACHE = $this->base->cache('apps');		$this->apps = $_CACHE['apps'];		$this->operations = array(			'test'=>array('', 'action=test'),			'deleteuser'=>array('', 'action=deleteuser'),			'renameuser'=>array('', 'action=renameuser'),			'deletefriend'=>array('', 'action=deletefriend'),			'gettag'=>array('', 'action=gettag', 'tag', 'updatedata'),			'getcreditsettings'=>array('', 'action=getcreditsettings'),			'updatecreditsettings'=>array('', 'action=updatecreditsettings'),			'updateclient'=>array('', 'action=updateclient'),			'updatepw'=>array('', 'action=updatepw'),			'updatebadwords'=>array('', 'action=updatebadwords'),			'updatehosts'=>array('', 'action=updatehosts'),			'updateapps'=>array('', 'action=updateapps'),			'updatecredit'=>array('', 'action=updatecredit'),		);	}	function add($operation, $getdata='', $postdata='', $appids=array(), $pri = 0) {		$extra = '';		if($appids) {			$appadd = array();			foreach((array)$this->apps as $appid=>$app) {				$appid = $app['appid'];				if(!in_array($appid, $appids)) {					$appadd[] = 'app'.$appid."='1'";				}			}			if($appadd) {				$extra = ','.implode(',', $appadd);			}		}		$getdata = addslashes($getdata);		$postdata = addslashes($postdata);		$this->db->query("INSERT INTO ".UC_DBTABLEPRE."notelist SET getdata='$getdata', operation='$operation', pri='$pri', postdata='$postdata'$extra");		$insert_id = $this->db->insert_id();		$insert_id && $this->db->query("REPLACE INTO ".UC_DBTABLEPRE."vars SET name='noteexists', value='1'");		return $insert_id;	}	function send() {		register_shutdown_function(array($this, '_send'));	}	function _send() {		$note = $this->_get_note();		if(empty($note)) {			$this->db->query("REPLACE INTO ".UC_DBTABLEPRE."vars SET name='noteexists', value='0'");			return NULL;		}		$closenote = TRUE;		foreach((array)$this->apps as $appid=>$app) {			$appnotes = $note['app'.$appid];			if($app['recvnote'] && $appnotes != 1 && $appnotes > -UC_NOTE_REPEAT) {				$this->sendone($appid, 0, $note);				$closenote = FALSE;				break;			}		}		if($closenote) {			$this->db->query("UPDATE ".UC_DBTABLEPRE."notelist SET closed='1' WHERE noteid='$note[noteid]'");		}		$this->_gc();	}	function sendone($appid, $noteid = 0, $note = '') {		$return = FALSE;		$app = $this->apps[$appid];		if($noteid) {			$note = $this->_get_note_by_id($noteid);		}		$this->base->load('misc');		$url = $this->get_url_code($note['operation'], $note['getdata'], $appid);		$getcontent = trim(uc_fopen2($url, 500000, $note['postdata'], '', 1, $app['ip'], UC_NOTE_TIMEOUT));		$returnsucceed = $getcontent != '' && $getcontent != '-1';		$closedsqladd = $this->_close_note($note, $this->apps, $returnsucceed) ? ",closed='1'" : '';//		if($returnsucceed) {			if($this->operations[$note['operation']][2]) {				$this->base->load($this->operations[$note['operation']][2]);				$func = $this->operations[$note['operation']][3];				$_ENV[$this->operations[$note['operation']][2]]->$func($appid, $getcontent);			}			$this->db->query("UPDATE ".UC_DBTABLEPRE."notelist SET app$appid='1', totalnum=totalnum+1, succeednum=succeednum+1, dateline='{$this->base->time}' $closedsqladd WHERE noteid='$note[noteid]'", 'SILENT');			$return = TRUE;		} else {			$this->db->query("UPDATE ".UC_DBTABLEPRE."notelist SET app$appid = app$appid-'1', totalnum=totalnum+1, dateline='{$this->base->time}' $closedsqladd WHERE noteid='$note[noteid]'", 'SILENT');			$return = FALSE;		}		return $return;	}	function _get_note() {		$data = $this->db->fetch_first("SELECT * FROM ".UC_DBTABLEPRE."notelist WHERE closed='0' ORDER BY pri DESC, noteid ASC LIMIT 1");		return $data;	}	function _gc() {		rand(0, UC_NOTE_GC) == 0 && $this->db->query("DELETE FROM ".UC_DBTABLEPRE."notelist WHERE closed='1'");	}	function _close_note($note, $apps, $returnsucceed) {		$note['app'.$appid] = $returnsucceed ? 1 : $note['app'.$appid] - 1;		$appcount = count($apps);		foreach($apps as $key => $app) {			$appstatus = $note['app'.$app['appid']];			if(!$app['recvnote'] || $appstatus == 1 || $appstatus <= -UC_NOTE_REPEAT) {				$appcount--;			}		}		if($appcount < 1) {			return TRUE;			//$closedsqladd = ",closed='1'";		}	}	function _get_note_by_id($noteid) {		$data = $this->db->fetch_first("SELECT * FROM ".UC_DBTABLEPRE."notelist WHERE noteid='$noteid'");		return $data;	}	function get_url_code($operation, $getdata, $appid) {		$app = $this->apps[$appid];		$authkey = $this->db->result_first("SELECT authkey FROM ".UC_DBTABLEPRE."applications WHERE appid='$appid'");		$url = $app['url'];		$action = $this->operations[$operation][1];		$code = urlencode(uc_authcode("$action&".($getdata ? "$getdata&" : '')."time=".$this->base->time, 'ENCODE', $authkey));		return $url."/api/uc.php?code=$code";	}}?>

⌨️ 快捷键说明

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