代码解读--unclient/client.php_2
时间:2009-08-22 来源:sinkingboat
接代码解读--unclient/client.php_1
0518./** 0519. * 用户登陆检查 0520. * 0521. * @param string $username 用户名/uid 0522. * @param string $password 密码 0523. * @param int $isuid 是否为uid 0524. * @param int $checkques 是否使用检查安全问答 0525. * @param int $questionid 安全提问 0526. * @param string $answer 安全提问答案 0527. * @return array (uid/status, username, password, email) 0528. 数组第一项 0529. 1 : 成功 0530. -1 : 用户不存在,或者被删除 0531. -2 : 密码错 0532.*/ 0533.function uc_user_login($username, $password, $isuid = 0, $checkques = 0, $questionid = '', $answer = '') { 0534. $isuid = intval($isuid); 0535. $return = call_user_func(UC_API_FUNC, 'user', 'login', array('username'=>$username, 'password'=>$password, 'isuid'=>$isuid, 'checkques'=>$checkques, 'questionid'=>$questionid, 'answer'=>$answer)); 0536. return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return); 0537.} 0538. 0539./** 0540. * 进入同步登录代码 0541. * 0542. * @param int $uid 用户ID 0543. * @return string HTML代码 0544. */ 0545.function uc_user_synlogin($uid) { 0546. $uid = intval($uid); 0547. $return = uc_api_post('user', 'synlogin', array('uid'=>$uid)); 0548. return $return; 0549.} 0550. 0551./** 0552. * 进入同步登出代码 0553. * 0554. * @return string HTML代码 0555. */ 0556.function uc_user_synlogout() { 0557. $return = uc_api_post('user', 'synlogout', array()); 0558. return $return; 0559.} 0560. 0561./** 0562. * 编辑用户 0563. * 0564. * @param string $username 用户名 0565. * @param string $oldpw 旧密码 0566. * @param string $newpw 新密码 0567. * @param string $email Email 0568. * @param int $ignoreoldpw 是否忽略旧密码, 忽略旧密码, 则不进行旧密码校验. 0569. * @param int $questionid 安全提问 0570. * @param string $answer 安全提问答案 0571. * @return int 0572. 1 : 修改成功 0573. 0 : 没有任何修改 0574. -1 : 旧密码不正确 0575. -4 : email 格式有误 0576. -5 : email 不允许注册 0577. -6 : 该 email 已经被注册 0578. -7 : 没有做任何修改 0579. -8 : 受保护的用户,没有权限修改 0580.*/ 0581.function uc_user_edit($username, $oldpw, $newpw, $email, $ignoreoldpw = 0, $questionid = '', $answer = '') { 0582. return call_user_func(UC_API_FUNC, 'user', 'edit', array('username'=>$username, 'oldpw'=>$oldpw, 'newpw'=>$newpw, 'email'=>$email, 'ignoreoldpw'=>$ignoreoldpw, 'questionid'=>$questionid, 'answer'=>$answer)); 0583.} 0584. 0585./** 0586. * 删除用户 0587. * 0588. * @param string/array $uid 用户的 UID 0589. * @return int 0590. >0 : 成功 0591. 0 : 失败 0592. */ 0593.function uc_user_delete($uid) { 0594. return call_user_func(UC_API_FUNC, 'user', 'delete', array('uid'=>$uid)); 0595.} 0596. 0597./** 0598. * 删除用户头像 0599. * 0600. * @param string/array $uid 用户的 UID 0601. */ 0602.function uc_user_deleteavatar($uid) { 0603. uc_api_post('user', 'deleteavatar', array('uid'=>$uid)); 0604.} 0605. 0606./** 0607. * 检查用户名是否为合法 0608. * 0609. * @param string $username 用户名 0610. * @return int 0611. 1 : 合法 0612. -1 : 用户名不合法 0613. -2 : 包含要允许注册的词语 0614. -3 : 用户名已经存在 0615. */ 0616.function uc_user_checkname($username) { 0617. return call_user_func(UC_API_FUNC, 'user', 'check_username', array('username'=>$username)); 0618.} 0619. 0620./** 0621. * 检查Email地址是否正确 0622. * 0623. * @param string $email Email 0624. * @return 0625. * 1 : 成功 0626. * -4 : email 格式有误 0627. * -5 : email 不允许注册 0628. * -6 : 该 email 已经被注册 0629. */ 0630.function uc_user_checkemail($email) { 0631. return call_user_func(UC_API_FUNC, 'user', 'check_email', array('email'=>$email)); 0632.} 0633. 0634./** 0635. * 添加保护用户 0636. * 0637. * @param string/array $username 保护用户名 0638. * @param string $admin 操作的管理员 0639. * @return 0640. * -1 : 失败 0641. * 1 : 成功 0642. */ 0643.function uc_user_addprotected($username, $admin='') { 0644. return call_user_func(UC_API_FUNC, 'user', 'addprotected', array('username'=>$username, 'admin'=>$admin)); 0645.} 0646. 0647./** 0648. * 删除保护用户 0649. * 0650. * @param string/array $username 保护用户名 0651. * @return 0652. * -1 : 失败 0653. * 1 : 成功 0654. */ 0655.function uc_user_deleteprotected($username) { 0656. return call_user_func(UC_API_FUNC, 'user', 'deleteprotected', array('username'=>$username)); 0657.} 0658. 0659./** 0660. * 得到受保护的用户名列表 0661. * 0662. * @param empty 0663. * @return 0664. * 受到保护的用户名列表 0665. * array() 0666. */ 0667.function uc_user_getprotected() { 0668. $return = call_user_func(UC_API_FUNC, 'user', 'getprotected', array('1'=>1)); 0669. return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return); 0670.} 0671. 0672./** 0673. * 取得用户数据 0674. * 0675. * @param string $username 用户名 0676. * @param int $isuid 是否为UID 0677. * @return array (uid, username, email) 0678. */ 0679.function uc_get_user($username, $isuid=0) { 0680. $return = call_user_func(UC_API_FUNC, 'user', 'get_user', array('username'=>$username, 'isuid'=>$isuid)); 0681. return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return); 0682.} 0683. 0684./** 0685. * 用户合并最后的处理 0686. * 0687. * @param string $oldusername 老用户名 0688. * @param string $newusername 新用户名 0689. * @param string $uid 老UID 0690. * @param string $password 密码 0691. * @param string $email Email 0692. * @return int 0693. -1 : 用户名不合法 0694. -2 : 包含不允许注册的词语 0695. -3 : 用户名已经存在 0696. >1 : 表示成功,数值为 UID 0697. */ 0698.function uc_user_merge($oldusername, $newusername, $uid, $password, $email) { 0699. return call_user_func(UC_API_FUNC, 'user', 'merge', array('oldusername'=>$oldusername, 'newusername'=>$newusername, 'uid'=>$uid, 'password'=>$password, 'email'=>$email)); 0700.} 0701. 0702./** 0703. * 移去合并用户记录 0704. * @param string $username 用户名 0705. */ 0706.function uc_user_merge_remove($username) { 0707. return call_user_func(UC_API_FUNC, 'user', 'merge_remove', array('username'=>$username)); 0708.} 0709. 0710./** 0711. * 获取指定应用的指定用户积分值 0712. * @param int $appid 应用Id 0713. * @param int $uid 用户Id 0714. * @param int $credit 积分编号 0715. */ 0716.function uc_user_getcredit($appid, $uid, $credit) { 0717. return call_user_func(UC_API_FUNC, 'user', 'getcredit', array('appid'=>$appid, 'uid'=>$uid, 'credit'=>$credit)); 0718.} 0719. 0720./** 0721. * 进入短消息界面 0722. * 0723. * @param int $uid 用户ID 0724. * @param int $newpm 是否直接进入newpm 0725. */ 0726.function uc_pm_location($uid, $newpm = 0) { 0727. $apiurl = uc_api_url('pm_client', 'ls', "uid=$uid", ($newpm ? '&folder=newbox' : '')); 0728. @header("Expires: 0"); 0729. @header("Cache-Control: private, post-check=0, pre-check=0, max-age=0", FALSE); 0730. @header("Pragma: no-cache"); 0731. @header("location: $apiurl"); 0732.} 0733. 0734./** 0735. * 检查新短消息 0736. * 0737. * @param int $uid 用户ID 0738. * @param int $more 详细信息 0739. * @return int 是否存在新短消息 0740. * 2 详细 (短消息数、公共消息数、最后消息时间, 最后消息内容) 0741. * 1 简单 (短消息数、公共消息数、最后消息时间) 0742. * 0 否 0743. */ 0744.function uc_pm_checknew($uid, $more = 0) { 0745. $return = call_user_func(UC_API_FUNC, 'pm', 'check_newpm', array('uid'=>$uid, 'more'=>$more)); 0746. return (!$more || UC_CONNECT == 'mysql') ? $return : uc_unserialize($return); 0747.} 0748. 0749./** 0750. * 发送短消息 0751. * 0752. * @param int $fromuid 发件人uid 0 为系统消息 0753. * @param mix $msgto 收件人 uid/username 多个逗号分割 0754. * @param mix $subject 标题 0755. * @param mix $message 内容 0756. * @param int $instantly 立即发送 1 立即发送(默认) 0 进入短消息发送界面 0757. * @param int $replypid 回复的消息Id 0758. * @param int $isusername 0 = $msgto 为 uid、1 = $msgto 为 username 0759. * @return 0760. * >1 发送成功的人数 0761. * 0 收件人不存在 0762. */ 0763.function uc_pm_send($fromuid, $msgto, $subject, $message, $instantly = 1, $replypmid = 0, $isusername = 0) { 0764. if($instantly) { 0765. $replypmid = @is_numeric($replypmid) ? $replypmid : 0; 0766. return call_user_func(UC_API_FUNC, 'pm', 'sendpm', array('fromuid'=>$fromuid, 'msgto'=>$msgto, 'subject'=>$subject, 'message'=>$message, 'replypmid'=>$replypmid, 'isusername'=>$isusername)); 0767. } else { 0768. $fromuid = intval($fromuid); 0769. $subject = urlencode($subject); 0770. $msgto = urlencode($msgto); 0771. $message = urlencode($message); 0772. $replypmid = @is_numeric($replypmid) ? $replypmid : 0; 0773. $replyadd = $replypmid ? "&pmid=$replypmid&do=reply" : ''; 0774. $apiurl = uc_api_url('pm_client', 'send', "uid=$fromuid", "&msgto=$msgto&subject=$subject&message=$message$replyadd"); 0775. @header("Expires: 0"); 0776. @header("Cache-Control: private, post-check=0, pre-check=0, max-age=0", FALSE); 0777. @header("Pragma: no-cache"); 0778. @header("location: ".$apiurl); 0779. } 0780.} 0781. 0782./** 0783. * 删除短消息 0784. * 0785. * @param int $uid 用户Id 0786. * @param string $folder 打开的目录 inbox=收件箱,outbox=发件箱 0787. * @param array $pmids 要删除的消息ID数组 0788. * @return 0789. * >0 成功 0790. * <=0 失败 0791. */ 0792.function uc_pm_delete($uid, $folder, $pmids) { 0793. return call_user_func(UC_API_FUNC, 'pm', 'delete', array('uid'=>$uid, 'folder'=>$folder, 'pmids'=>$pmids)); 0794.} 0795. 0796./** 0797. * 按照用户删除短消息 0798. * 0799. * @param int $uid 用户Id 0800. * @param array $uids 要删除的消息用户ID数组 0801. * @return 0802. * >0 成功 0803. * <=0 失败 0804. */ 0805.function uc_pm_deleteuser($uid, $touids) { 0806. return call_user_func(UC_API_FUNC, 'pm', 'deleteuser', array('uid'=>$uid, 'touids'=>$touids)); 0807.} 0808. 0809./** 0810. * 标记已读/未读状态 0811. * 0812. * @param int $uid 用户Id 0813. * @param array $uids 要标记已读状态的用户ID数组 0814. * @param array $pmids 要标记已读状态的消息ID数组 0815. * @param int $status 1 已读 0 未读 0816. */ 0817.function uc_pm_readstatus($uid, $uids, $pmids = array(), $status = 0) { 0818. return call_user_func(UC_API_FUNC, 'pm', 'readstatus', array('uid'=>$uid, 'uids'=>$uids, 'pmids'=>$pmids, 'status'=>$status)); 0819.} 0820. 0821./** 0822. * 获取短消息列表 0823. * 0824. * @param int $uid 用户Id 0825. * @param int $page 当前页 0826. * @param int $pagesize 每页最大条目数 0827. * @param string $folder 打开的目录 newbox=未读消息,inbox=收件箱,outbox=发件箱 0828. * @param string $filter 过滤方式 newpm=未读消息,systempm=系统消息,announcepm=公共消息 0829. $folder $filter 0830. -------------------------- 0831. newbox 0832. inbox newpm 0833. systempm 0834. announcepm 0835. outbox newpm 0836. searchbox * 0837. * @param string $msglen 截取的消息文字长度 0838. * @return array('count' => 消息总数, 'data' => 短消息数据) 0839. */ 0840.function uc_pm_list($uid, $page = 1, $pagesize = 10, $folder = 'inbox', $filter = 'newpm', $msglen = 0) { 0841. $uid = intval($uid); 0842. $page = intval($page); 0843. $pagesize = intval($pagesize); 0844. $return = call_user_func(UC_API_FUNC, 'pm', 'ls', array('uid'=>$uid, 'page'=>$page, 'pagesize'=>$pagesize, 'folder'=>$folder, 'filter'=>$filter, 'msglen'=>$msglen)); 0845. return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return); 0846.} 0847. 0848./** 0849. * 忽略未读消息提示 0850. * 0851. * @param int $uid 用户Id 0852. */ 0853.function uc_pm_ignore($uid) { 0854. $uid = intval($uid); 0855. return call_user_func(UC_API_FUNC, 'pm', 'ignore', array('uid'=>$uid)); 0856.} 0857. 0858./** 0859. * 获取短消息内容 0860. * 0861. * @param int $uid 用户Id 0862. * @param int $pmid 消息Id 0863. * @param int $touid 消息对方用户Id 0864. * @param int $daterange 日期范围 1=今天,2=昨天,3=前天,4=上周,5=更早 0865. * @return array() 短消息内容数组 0866. */ 0867.function uc_pm_view($uid, $pmid, $touid = 0, $daterange = 1) { 0868. $uid = intval($uid); 0869. $touid = intval($touid); 0870. $pmid = @is_numeric($pmid) ? $pmid : 0; 0871. $return = call_user_func(UC_API_FUNC, 'pm', 'view', array('uid'=>$uid, 'pmid'=>$pmid, 'touid'=>$touid, 'daterange'=>$daterange)); 0872. return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return); 0873.} 0874. 0875./** 0876. * 获取单条短消息内容 0877. * 0878. * @param int $uid 用户Id 0879. * @param int $pmid 消息Id 0880. * @param int $type 0 = 获取指定单条消息 0881. 1 = 获取指定用户发的最后单条消息 0882. 2 = 获取指定用户收的最后单条消息 0883. * @return array() 短消息内容数组 0884. */ 0885.function uc_pm_viewnode($uid, $type = 0, $pmid = 0) { 0886. $uid = intval($uid); 0887. $pmid = @is_numeric($pmid) ? $pmid : 0; 0888. $return = call_user_func(UC_API_FUNC, 'pm', 'viewnode', array('uid'=>$uid, 'pmid'=>$pmid, 'type'=>$type)); 0889. return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return); 0890.} 0891. 0892./** 0893. * 获取黑名单 0894. * 0895. * @param int $uid 用户Id 0896. * @return string 黑名单内容 0897. */ 0898.function uc_pm_blackls_get($uid) { 0899. $uid = intval($uid); 0900. return call_user_func(UC_API_FUNC, 'pm', 'blackls_get', array('uid'=>$uid)); 0901.} 0902. 0903./** 0904. * 设置黑名单 0905. * 0906. * @param int $uid 用户Id 0907. * @param int $blackls 黑名单内容 0908. */ 0909.function uc_pm_blackls_set($uid, $blackls) { 0910. $uid = intval($uid); 0911. return call_user_func(UC_API_FUNC, 'pm', 'blackls_set', array('uid'=>$uid, 'blackls'=>$blackls)); 0912.} 0913. 0914./** 0915. * 添加黑名单项目 0916. * 0917. * @param int $uid 用户Id 0918. * @param int $username 用户名 0919. */ 0920.function uc_pm_blackls_add($uid, $username) { 0921. $uid = intval($uid); 0922. return call_user_func(UC_API_FUNC, 'pm', 'blackls_add', array('uid'=>$uid, 'username'=>$username)); 0923.} 0924. 0925./** 0926. * 删除黑名单项目 0927. * 0928. * @param int $uid 用户Id 0929. * @param int $username 用户名 0930. */ 0931.function uc_pm_blackls_delete($uid, $username) { 0932. $uid = intval($uid); 0933. return call_user_func(UC_API_FUNC, 'pm', 'blackls_delete', array('uid'=>$uid, 'username'=>$username)); 0934.} 0935. 0936./** 0937. * 获取域名解析表 0938. * 0939. * @return array() 0940. */ 0941.function uc_domain_ls() { 0942. $return = call_user_func(UC_API_FUNC, 'domain', 'ls', array('1'=>1)); 0943. return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return); 0944.} 0945. 0946./** 0947. * 积分兑换请求 0948. * 0949. * @param int $uid 用户ID 0950. * @param int $from 原积分 0951. * @param int $to 目标积分 0952. * @param int $toappid 目标应用ID 0953. * @param int $amount 积分数额 0954. * @return 0955. * 1 : 成功 0956. * 0 : 失败 0957. */ 0958.function uc_credit_exchange_request($uid, $from, $to, $toappid, $amount) { 0959. $uid = intval($uid); 0960. $from = intval($from); 0961. $toappid = intval($toappid); 0962. $to = intval($to); 0963. $amount = intval($amount); 0964. return uc_api_post('credit', 'request', array('uid'=>$uid, 'from'=>$from, 'to'=>$to, 'toappid'=>$toappid, 'amount'=>$amount)); 0965.} 0966. 0967./** 0968. * 返回指定的相关TAG数据 0969. * 0970. * @param string $tagname TAG名称 0971. * @param int $totalnum 返回数据的条目数 0972. * @return array() 序列化过的数组,数组内容为当前或其他应用的相关TAG数据 0973. */ 0974.function uc_tag_get($tagname, $nums = 0) { 0975. $return = call_user_func(UC_API_FUNC, 'tag', 'gettag', array('tagname'=>$tagname, 'nums'=>$nums)); 0976. return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return); 0977.} 0978. 0979./** 0980. * 修改头像 0981. * 0982. * @param int $uid 用户ID 0983. * @param string $type 头像类型 real OR virtual 默认为 virtual 0984. * @return string 0985. */ 0986.function uc_avatar($uid, $type = 'virtual', $returnhtml = 1) { 0987. $uid = intval($uid); 0988. $uc_input = uc_api_input("uid=$uid"); 0989. $uc_avatarflash = UC_API.'/images/camera.swf?inajax=1&appid='.UC_APPID.'&input='.$uc_input.'&agent='.md5($_SERVER['HTTP_USER_AGENT']).'&ucapi='.urlencode(UC_API).'&avatartype='.$type; 0990. if($returnhtml) { 0991. return '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="447" height="477" id="mycamera" align="middle"> 0992. <param name="allowScriptAccess" value="always" /> 0993. <param name="scale" value="exactfit" /> 0994. <param name="wmode" value="transparent" /> 0995. <param name="quality" value="high" /> 0996. <param name="bgcolor" value="#ffffff" /> 0997. <param name="movie" value="'.$uc_avatarflash.'" /> 0998. <param name="menu" value="false" /> 0999. <embed src="'.$uc_avatarflash.'" quality="high" bgcolor="#ffffff" width="447" height="477" name="mycamera" align="middle" allowScriptAccess="always" allowFullScreen="false" scale="exactfit" wmode="transparent" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> 1000. </object>'; 1001. } else { 1002. return array( 1003. 'width', '447', 1004. 'height', '477', 1005. 'scale', 'exactfit', 1006. 'src', $uc_avatarflash, 1007. 'id', 'mycamera', 1008. 'name', 'mycamera', 1009. 'quality','high', 1010. 'bgcolor','#ffffff', 1011. 'wmode','transparent', 1012. 'menu', 'false', 1013. 'swLiveConnect', 'true', 1014. 'allowScriptAccess', 'always' 1015. ); 1016. } 1017.} 1018. 1019./** 1020. * 邮件队列 1021. * 1022. * @param string $uids 用户名id,多个用逗号(,)隔开 1023. * @param string $emails 邮件地址,多个用逗号隔开 1024. * @param string $subject 邮件标题 1025. * @param string $message 邮件内容 1026. * @param string $charset 邮件字符集,可选参数,默认为gbk 1027. * @param boolean $htmlon 是否按html格式发送邮件,可选参数,默认为否 1028. * @param integer $level 邮件级别,可选参数,取值0-127,默认为1,越大发送的优先级越高,为0时不入库,直接发送,会影响当前进程速度,慎用 1029. * @return integer 1030. * =0 : 失败 1031. * >0 : 成功,返回插入记录的id,如果是多条则返回最后一条记录的id,若level等于0,则返回1 1032. */ 1033.function uc_mail_queue($uids, $emails, $subject, $message, $frommail = '', $charset = 'gbk', $htmlon = FALSE, $level = 1) { 1034. return call_user_func(UC_API_FUNC, 'mail', 'add', array('uids' => $uids, 'emails' => $emails, 'subject' => $subject, 'message' => $message, 'frommail' => $frommail, 'charset' => $charset, 'htmlon' => $htmlon, 'level' => $level)); 1035.} 1036. 1037./** 1038. * 检测是否存在指定头像 1039. * @param integer $uid 用户id 1040. * @param string $size 头像尺寸,取值范围(big,middle,small),默认为 middle 1041. * @param string $type 头像类型,取值范围(virtual,real),默认为virtual 1042. * @return boolean 1043. * true : 头像存在 1044. * false: 头像不存在 1045. */ 1046.function uc_check_avatar($uid, $size = 'middle', $type = 'virtual') { 1047. $url = UC_API."/avatar.php?uid=$uid&size=$size&type=$type&check_file_exists=1"; 1048. $res = @file_get_contents($url); 1049. if($res == 1) { 1050. return 1; 1051. } else { 1052. return 0; 1053. } 1054.} 1055. 1056./** 1057. * 检测uc_server的数据库版本和程序版本 1058. * @return mixd 1059. * array('db' => 'xxx', 'file' => 'xxx'); 1060. * null 无法调用到接口 1061. * string 文件版本低于1.5 1062. */ 1063.function uc_check_version() { 1064. $return = uc_api_post('version', 'check', array()); 1065. $data = uc_unserialize($return); 1066. return is_array($data) ? $data : $return; 1067.} 1068. 1069.?>
0518./** 0519. * 用户登陆检查 0520. * 0521. * @param string $username 用户名/uid 0522. * @param string $password 密码 0523. * @param int $isuid 是否为uid 0524. * @param int $checkques 是否使用检查安全问答 0525. * @param int $questionid 安全提问 0526. * @param string $answer 安全提问答案 0527. * @return array (uid/status, username, password, email) 0528. 数组第一项 0529. 1 : 成功 0530. -1 : 用户不存在,或者被删除 0531. -2 : 密码错 0532.*/ 0533.function uc_user_login($username, $password, $isuid = 0, $checkques = 0, $questionid = '', $answer = '') { 0534. $isuid = intval($isuid); 0535. $return = call_user_func(UC_API_FUNC, 'user', 'login', array('username'=>$username, 'password'=>$password, 'isuid'=>$isuid, 'checkques'=>$checkques, 'questionid'=>$questionid, 'answer'=>$answer)); 0536. return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return); 0537.} 0538. 0539./** 0540. * 进入同步登录代码 0541. * 0542. * @param int $uid 用户ID 0543. * @return string HTML代码 0544. */ 0545.function uc_user_synlogin($uid) { 0546. $uid = intval($uid); 0547. $return = uc_api_post('user', 'synlogin', array('uid'=>$uid)); 0548. return $return; 0549.} 0550. 0551./** 0552. * 进入同步登出代码 0553. * 0554. * @return string HTML代码 0555. */ 0556.function uc_user_synlogout() { 0557. $return = uc_api_post('user', 'synlogout', array()); 0558. return $return; 0559.} 0560. 0561./** 0562. * 编辑用户 0563. * 0564. * @param string $username 用户名 0565. * @param string $oldpw 旧密码 0566. * @param string $newpw 新密码 0567. * @param string $email Email 0568. * @param int $ignoreoldpw 是否忽略旧密码, 忽略旧密码, 则不进行旧密码校验. 0569. * @param int $questionid 安全提问 0570. * @param string $answer 安全提问答案 0571. * @return int 0572. 1 : 修改成功 0573. 0 : 没有任何修改 0574. -1 : 旧密码不正确 0575. -4 : email 格式有误 0576. -5 : email 不允许注册 0577. -6 : 该 email 已经被注册 0578. -7 : 没有做任何修改 0579. -8 : 受保护的用户,没有权限修改 0580.*/ 0581.function uc_user_edit($username, $oldpw, $newpw, $email, $ignoreoldpw = 0, $questionid = '', $answer = '') { 0582. return call_user_func(UC_API_FUNC, 'user', 'edit', array('username'=>$username, 'oldpw'=>$oldpw, 'newpw'=>$newpw, 'email'=>$email, 'ignoreoldpw'=>$ignoreoldpw, 'questionid'=>$questionid, 'answer'=>$answer)); 0583.} 0584. 0585./** 0586. * 删除用户 0587. * 0588. * @param string/array $uid 用户的 UID 0589. * @return int 0590. >0 : 成功 0591. 0 : 失败 0592. */ 0593.function uc_user_delete($uid) { 0594. return call_user_func(UC_API_FUNC, 'user', 'delete', array('uid'=>$uid)); 0595.} 0596. 0597./** 0598. * 删除用户头像 0599. * 0600. * @param string/array $uid 用户的 UID 0601. */ 0602.function uc_user_deleteavatar($uid) { 0603. uc_api_post('user', 'deleteavatar', array('uid'=>$uid)); 0604.} 0605. 0606./** 0607. * 检查用户名是否为合法 0608. * 0609. * @param string $username 用户名 0610. * @return int 0611. 1 : 合法 0612. -1 : 用户名不合法 0613. -2 : 包含要允许注册的词语 0614. -3 : 用户名已经存在 0615. */ 0616.function uc_user_checkname($username) { 0617. return call_user_func(UC_API_FUNC, 'user', 'check_username', array('username'=>$username)); 0618.} 0619. 0620./** 0621. * 检查Email地址是否正确 0622. * 0623. * @param string $email Email 0624. * @return 0625. * 1 : 成功 0626. * -4 : email 格式有误 0627. * -5 : email 不允许注册 0628. * -6 : 该 email 已经被注册 0629. */ 0630.function uc_user_checkemail($email) { 0631. return call_user_func(UC_API_FUNC, 'user', 'check_email', array('email'=>$email)); 0632.} 0633. 0634./** 0635. * 添加保护用户 0636. * 0637. * @param string/array $username 保护用户名 0638. * @param string $admin 操作的管理员 0639. * @return 0640. * -1 : 失败 0641. * 1 : 成功 0642. */ 0643.function uc_user_addprotected($username, $admin='') { 0644. return call_user_func(UC_API_FUNC, 'user', 'addprotected', array('username'=>$username, 'admin'=>$admin)); 0645.} 0646. 0647./** 0648. * 删除保护用户 0649. * 0650. * @param string/array $username 保护用户名 0651. * @return 0652. * -1 : 失败 0653. * 1 : 成功 0654. */ 0655.function uc_user_deleteprotected($username) { 0656. return call_user_func(UC_API_FUNC, 'user', 'deleteprotected', array('username'=>$username)); 0657.} 0658. 0659./** 0660. * 得到受保护的用户名列表 0661. * 0662. * @param empty 0663. * @return 0664. * 受到保护的用户名列表 0665. * array() 0666. */ 0667.function uc_user_getprotected() { 0668. $return = call_user_func(UC_API_FUNC, 'user', 'getprotected', array('1'=>1)); 0669. return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return); 0670.} 0671. 0672./** 0673. * 取得用户数据 0674. * 0675. * @param string $username 用户名 0676. * @param int $isuid 是否为UID 0677. * @return array (uid, username, email) 0678. */ 0679.function uc_get_user($username, $isuid=0) { 0680. $return = call_user_func(UC_API_FUNC, 'user', 'get_user', array('username'=>$username, 'isuid'=>$isuid)); 0681. return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return); 0682.} 0683. 0684./** 0685. * 用户合并最后的处理 0686. * 0687. * @param string $oldusername 老用户名 0688. * @param string $newusername 新用户名 0689. * @param string $uid 老UID 0690. * @param string $password 密码 0691. * @param string $email Email 0692. * @return int 0693. -1 : 用户名不合法 0694. -2 : 包含不允许注册的词语 0695. -3 : 用户名已经存在 0696. >1 : 表示成功,数值为 UID 0697. */ 0698.function uc_user_merge($oldusername, $newusername, $uid, $password, $email) { 0699. return call_user_func(UC_API_FUNC, 'user', 'merge', array('oldusername'=>$oldusername, 'newusername'=>$newusername, 'uid'=>$uid, 'password'=>$password, 'email'=>$email)); 0700.} 0701. 0702./** 0703. * 移去合并用户记录 0704. * @param string $username 用户名 0705. */ 0706.function uc_user_merge_remove($username) { 0707. return call_user_func(UC_API_FUNC, 'user', 'merge_remove', array('username'=>$username)); 0708.} 0709. 0710./** 0711. * 获取指定应用的指定用户积分值 0712. * @param int $appid 应用Id 0713. * @param int $uid 用户Id 0714. * @param int $credit 积分编号 0715. */ 0716.function uc_user_getcredit($appid, $uid, $credit) { 0717. return call_user_func(UC_API_FUNC, 'user', 'getcredit', array('appid'=>$appid, 'uid'=>$uid, 'credit'=>$credit)); 0718.} 0719. 0720./** 0721. * 进入短消息界面 0722. * 0723. * @param int $uid 用户ID 0724. * @param int $newpm 是否直接进入newpm 0725. */ 0726.function uc_pm_location($uid, $newpm = 0) { 0727. $apiurl = uc_api_url('pm_client', 'ls', "uid=$uid", ($newpm ? '&folder=newbox' : '')); 0728. @header("Expires: 0"); 0729. @header("Cache-Control: private, post-check=0, pre-check=0, max-age=0", FALSE); 0730. @header("Pragma: no-cache"); 0731. @header("location: $apiurl"); 0732.} 0733. 0734./** 0735. * 检查新短消息 0736. * 0737. * @param int $uid 用户ID 0738. * @param int $more 详细信息 0739. * @return int 是否存在新短消息 0740. * 2 详细 (短消息数、公共消息数、最后消息时间, 最后消息内容) 0741. * 1 简单 (短消息数、公共消息数、最后消息时间) 0742. * 0 否 0743. */ 0744.function uc_pm_checknew($uid, $more = 0) { 0745. $return = call_user_func(UC_API_FUNC, 'pm', 'check_newpm', array('uid'=>$uid, 'more'=>$more)); 0746. return (!$more || UC_CONNECT == 'mysql') ? $return : uc_unserialize($return); 0747.} 0748. 0749./** 0750. * 发送短消息 0751. * 0752. * @param int $fromuid 发件人uid 0 为系统消息 0753. * @param mix $msgto 收件人 uid/username 多个逗号分割 0754. * @param mix $subject 标题 0755. * @param mix $message 内容 0756. * @param int $instantly 立即发送 1 立即发送(默认) 0 进入短消息发送界面 0757. * @param int $replypid 回复的消息Id 0758. * @param int $isusername 0 = $msgto 为 uid、1 = $msgto 为 username 0759. * @return 0760. * >1 发送成功的人数 0761. * 0 收件人不存在 0762. */ 0763.function uc_pm_send($fromuid, $msgto, $subject, $message, $instantly = 1, $replypmid = 0, $isusername = 0) { 0764. if($instantly) { 0765. $replypmid = @is_numeric($replypmid) ? $replypmid : 0; 0766. return call_user_func(UC_API_FUNC, 'pm', 'sendpm', array('fromuid'=>$fromuid, 'msgto'=>$msgto, 'subject'=>$subject, 'message'=>$message, 'replypmid'=>$replypmid, 'isusername'=>$isusername)); 0767. } else { 0768. $fromuid = intval($fromuid); 0769. $subject = urlencode($subject); 0770. $msgto = urlencode($msgto); 0771. $message = urlencode($message); 0772. $replypmid = @is_numeric($replypmid) ? $replypmid : 0; 0773. $replyadd = $replypmid ? "&pmid=$replypmid&do=reply" : ''; 0774. $apiurl = uc_api_url('pm_client', 'send', "uid=$fromuid", "&msgto=$msgto&subject=$subject&message=$message$replyadd"); 0775. @header("Expires: 0"); 0776. @header("Cache-Control: private, post-check=0, pre-check=0, max-age=0", FALSE); 0777. @header("Pragma: no-cache"); 0778. @header("location: ".$apiurl); 0779. } 0780.} 0781. 0782./** 0783. * 删除短消息 0784. * 0785. * @param int $uid 用户Id 0786. * @param string $folder 打开的目录 inbox=收件箱,outbox=发件箱 0787. * @param array $pmids 要删除的消息ID数组 0788. * @return 0789. * >0 成功 0790. * <=0 失败 0791. */ 0792.function uc_pm_delete($uid, $folder, $pmids) { 0793. return call_user_func(UC_API_FUNC, 'pm', 'delete', array('uid'=>$uid, 'folder'=>$folder, 'pmids'=>$pmids)); 0794.} 0795. 0796./** 0797. * 按照用户删除短消息 0798. * 0799. * @param int $uid 用户Id 0800. * @param array $uids 要删除的消息用户ID数组 0801. * @return 0802. * >0 成功 0803. * <=0 失败 0804. */ 0805.function uc_pm_deleteuser($uid, $touids) { 0806. return call_user_func(UC_API_FUNC, 'pm', 'deleteuser', array('uid'=>$uid, 'touids'=>$touids)); 0807.} 0808. 0809./** 0810. * 标记已读/未读状态 0811. * 0812. * @param int $uid 用户Id 0813. * @param array $uids 要标记已读状态的用户ID数组 0814. * @param array $pmids 要标记已读状态的消息ID数组 0815. * @param int $status 1 已读 0 未读 0816. */ 0817.function uc_pm_readstatus($uid, $uids, $pmids = array(), $status = 0) { 0818. return call_user_func(UC_API_FUNC, 'pm', 'readstatus', array('uid'=>$uid, 'uids'=>$uids, 'pmids'=>$pmids, 'status'=>$status)); 0819.} 0820. 0821./** 0822. * 获取短消息列表 0823. * 0824. * @param int $uid 用户Id 0825. * @param int $page 当前页 0826. * @param int $pagesize 每页最大条目数 0827. * @param string $folder 打开的目录 newbox=未读消息,inbox=收件箱,outbox=发件箱 0828. * @param string $filter 过滤方式 newpm=未读消息,systempm=系统消息,announcepm=公共消息 0829. $folder $filter 0830. -------------------------- 0831. newbox 0832. inbox newpm 0833. systempm 0834. announcepm 0835. outbox newpm 0836. searchbox * 0837. * @param string $msglen 截取的消息文字长度 0838. * @return array('count' => 消息总数, 'data' => 短消息数据) 0839. */ 0840.function uc_pm_list($uid, $page = 1, $pagesize = 10, $folder = 'inbox', $filter = 'newpm', $msglen = 0) { 0841. $uid = intval($uid); 0842. $page = intval($page); 0843. $pagesize = intval($pagesize); 0844. $return = call_user_func(UC_API_FUNC, 'pm', 'ls', array('uid'=>$uid, 'page'=>$page, 'pagesize'=>$pagesize, 'folder'=>$folder, 'filter'=>$filter, 'msglen'=>$msglen)); 0845. return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return); 0846.} 0847. 0848./** 0849. * 忽略未读消息提示 0850. * 0851. * @param int $uid 用户Id 0852. */ 0853.function uc_pm_ignore($uid) { 0854. $uid = intval($uid); 0855. return call_user_func(UC_API_FUNC, 'pm', 'ignore', array('uid'=>$uid)); 0856.} 0857. 0858./** 0859. * 获取短消息内容 0860. * 0861. * @param int $uid 用户Id 0862. * @param int $pmid 消息Id 0863. * @param int $touid 消息对方用户Id 0864. * @param int $daterange 日期范围 1=今天,2=昨天,3=前天,4=上周,5=更早 0865. * @return array() 短消息内容数组 0866. */ 0867.function uc_pm_view($uid, $pmid, $touid = 0, $daterange = 1) { 0868. $uid = intval($uid); 0869. $touid = intval($touid); 0870. $pmid = @is_numeric($pmid) ? $pmid : 0; 0871. $return = call_user_func(UC_API_FUNC, 'pm', 'view', array('uid'=>$uid, 'pmid'=>$pmid, 'touid'=>$touid, 'daterange'=>$daterange)); 0872. return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return); 0873.} 0874. 0875./** 0876. * 获取单条短消息内容 0877. * 0878. * @param int $uid 用户Id 0879. * @param int $pmid 消息Id 0880. * @param int $type 0 = 获取指定单条消息 0881. 1 = 获取指定用户发的最后单条消息 0882. 2 = 获取指定用户收的最后单条消息 0883. * @return array() 短消息内容数组 0884. */ 0885.function uc_pm_viewnode($uid, $type = 0, $pmid = 0) { 0886. $uid = intval($uid); 0887. $pmid = @is_numeric($pmid) ? $pmid : 0; 0888. $return = call_user_func(UC_API_FUNC, 'pm', 'viewnode', array('uid'=>$uid, 'pmid'=>$pmid, 'type'=>$type)); 0889. return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return); 0890.} 0891. 0892./** 0893. * 获取黑名单 0894. * 0895. * @param int $uid 用户Id 0896. * @return string 黑名单内容 0897. */ 0898.function uc_pm_blackls_get($uid) { 0899. $uid = intval($uid); 0900. return call_user_func(UC_API_FUNC, 'pm', 'blackls_get', array('uid'=>$uid)); 0901.} 0902. 0903./** 0904. * 设置黑名单 0905. * 0906. * @param int $uid 用户Id 0907. * @param int $blackls 黑名单内容 0908. */ 0909.function uc_pm_blackls_set($uid, $blackls) { 0910. $uid = intval($uid); 0911. return call_user_func(UC_API_FUNC, 'pm', 'blackls_set', array('uid'=>$uid, 'blackls'=>$blackls)); 0912.} 0913. 0914./** 0915. * 添加黑名单项目 0916. * 0917. * @param int $uid 用户Id 0918. * @param int $username 用户名 0919. */ 0920.function uc_pm_blackls_add($uid, $username) { 0921. $uid = intval($uid); 0922. return call_user_func(UC_API_FUNC, 'pm', 'blackls_add', array('uid'=>$uid, 'username'=>$username)); 0923.} 0924. 0925./** 0926. * 删除黑名单项目 0927. * 0928. * @param int $uid 用户Id 0929. * @param int $username 用户名 0930. */ 0931.function uc_pm_blackls_delete($uid, $username) { 0932. $uid = intval($uid); 0933. return call_user_func(UC_API_FUNC, 'pm', 'blackls_delete', array('uid'=>$uid, 'username'=>$username)); 0934.} 0935. 0936./** 0937. * 获取域名解析表 0938. * 0939. * @return array() 0940. */ 0941.function uc_domain_ls() { 0942. $return = call_user_func(UC_API_FUNC, 'domain', 'ls', array('1'=>1)); 0943. return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return); 0944.} 0945. 0946./** 0947. * 积分兑换请求 0948. * 0949. * @param int $uid 用户ID 0950. * @param int $from 原积分 0951. * @param int $to 目标积分 0952. * @param int $toappid 目标应用ID 0953. * @param int $amount 积分数额 0954. * @return 0955. * 1 : 成功 0956. * 0 : 失败 0957. */ 0958.function uc_credit_exchange_request($uid, $from, $to, $toappid, $amount) { 0959. $uid = intval($uid); 0960. $from = intval($from); 0961. $toappid = intval($toappid); 0962. $to = intval($to); 0963. $amount = intval($amount); 0964. return uc_api_post('credit', 'request', array('uid'=>$uid, 'from'=>$from, 'to'=>$to, 'toappid'=>$toappid, 'amount'=>$amount)); 0965.} 0966. 0967./** 0968. * 返回指定的相关TAG数据 0969. * 0970. * @param string $tagname TAG名称 0971. * @param int $totalnum 返回数据的条目数 0972. * @return array() 序列化过的数组,数组内容为当前或其他应用的相关TAG数据 0973. */ 0974.function uc_tag_get($tagname, $nums = 0) { 0975. $return = call_user_func(UC_API_FUNC, 'tag', 'gettag', array('tagname'=>$tagname, 'nums'=>$nums)); 0976. return UC_CONNECT == 'mysql' ? $return : uc_unserialize($return); 0977.} 0978. 0979./** 0980. * 修改头像 0981. * 0982. * @param int $uid 用户ID 0983. * @param string $type 头像类型 real OR virtual 默认为 virtual 0984. * @return string 0985. */ 0986.function uc_avatar($uid, $type = 'virtual', $returnhtml = 1) { 0987. $uid = intval($uid); 0988. $uc_input = uc_api_input("uid=$uid"); 0989. $uc_avatarflash = UC_API.'/images/camera.swf?inajax=1&appid='.UC_APPID.'&input='.$uc_input.'&agent='.md5($_SERVER['HTTP_USER_AGENT']).'&ucapi='.urlencode(UC_API).'&avatartype='.$type; 0990. if($returnhtml) { 0991. return '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="447" height="477" id="mycamera" align="middle"> 0992. <param name="allowScriptAccess" value="always" /> 0993. <param name="scale" value="exactfit" /> 0994. <param name="wmode" value="transparent" /> 0995. <param name="quality" value="high" /> 0996. <param name="bgcolor" value="#ffffff" /> 0997. <param name="movie" value="'.$uc_avatarflash.'" /> 0998. <param name="menu" value="false" /> 0999. <embed src="'.$uc_avatarflash.'" quality="high" bgcolor="#ffffff" width="447" height="477" name="mycamera" align="middle" allowScriptAccess="always" allowFullScreen="false" scale="exactfit" wmode="transparent" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> 1000. </object>'; 1001. } else { 1002. return array( 1003. 'width', '447', 1004. 'height', '477', 1005. 'scale', 'exactfit', 1006. 'src', $uc_avatarflash, 1007. 'id', 'mycamera', 1008. 'name', 'mycamera', 1009. 'quality','high', 1010. 'bgcolor','#ffffff', 1011. 'wmode','transparent', 1012. 'menu', 'false', 1013. 'swLiveConnect', 'true', 1014. 'allowScriptAccess', 'always' 1015. ); 1016. } 1017.} 1018. 1019./** 1020. * 邮件队列 1021. * 1022. * @param string $uids 用户名id,多个用逗号(,)隔开 1023. * @param string $emails 邮件地址,多个用逗号隔开 1024. * @param string $subject 邮件标题 1025. * @param string $message 邮件内容 1026. * @param string $charset 邮件字符集,可选参数,默认为gbk 1027. * @param boolean $htmlon 是否按html格式发送邮件,可选参数,默认为否 1028. * @param integer $level 邮件级别,可选参数,取值0-127,默认为1,越大发送的优先级越高,为0时不入库,直接发送,会影响当前进程速度,慎用 1029. * @return integer 1030. * =0 : 失败 1031. * >0 : 成功,返回插入记录的id,如果是多条则返回最后一条记录的id,若level等于0,则返回1 1032. */ 1033.function uc_mail_queue($uids, $emails, $subject, $message, $frommail = '', $charset = 'gbk', $htmlon = FALSE, $level = 1) { 1034. return call_user_func(UC_API_FUNC, 'mail', 'add', array('uids' => $uids, 'emails' => $emails, 'subject' => $subject, 'message' => $message, 'frommail' => $frommail, 'charset' => $charset, 'htmlon' => $htmlon, 'level' => $level)); 1035.} 1036. 1037./** 1038. * 检测是否存在指定头像 1039. * @param integer $uid 用户id 1040. * @param string $size 头像尺寸,取值范围(big,middle,small),默认为 middle 1041. * @param string $type 头像类型,取值范围(virtual,real),默认为virtual 1042. * @return boolean 1043. * true : 头像存在 1044. * false: 头像不存在 1045. */ 1046.function uc_check_avatar($uid, $size = 'middle', $type = 'virtual') { 1047. $url = UC_API."/avatar.php?uid=$uid&size=$size&type=$type&check_file_exists=1"; 1048. $res = @file_get_contents($url); 1049. if($res == 1) { 1050. return 1; 1051. } else { 1052. return 0; 1053. } 1054.} 1055. 1056./** 1057. * 检测uc_server的数据库版本和程序版本 1058. * @return mixd 1059. * array('db' => 'xxx', 'file' => 'xxx'); 1060. * null 无法调用到接口 1061. * string 文件版本低于1.5 1062. */ 1063.function uc_check_version() { 1064. $return = uc_api_post('version', 'check', array()); 1065. $data = uc_unserialize($return); 1066. return is_array($data) ? $data : $return; 1067.} 1068. 1069.?>
相关阅读 更多 +