McAccount/Amysql/Function.php

201 lines
5.5 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
/**
* 读取配置文件
* @param string $Key KEY值
*/
function Config($Key) {
include (_Amysql . 'Config.php');
if (empty ( $Key ))
return $Config;
if (! array_key_exists ( $Key, $Config ))
return null;
return $Config [$Key];
}
/**
* 缓存操作
*
* @param string $Key
* KEY值
* @param string $Value
* 值
* @param int $Time
* 缓存有效期(秒)
*/
function Cache($Key, $Value = '', $Time = null) {
require_once (_Amysql . 'Cache.php');
$Cahce = new Cache ();
if ($Value === '' && is_null ( $Time )) {
return $Cahce->Get ( md5 ( $Key ) );
} else if (is_null ( $Value )) {
$Cahce->Del ( md5 ( $Key ) );
} else {
if (is_null ( $Time )) {
$Time = Config ( 'CacheDefaultTime' );
}
$Cahce->Set ( md5 ( $Key ), $Value, $Time );
}
}
/**
* 随即生成字符串
*
* @param int $l
* 字符串长度
*/
function RandSting($l = 10) {
$c = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
srand ( ( double ) microtime () * 1000000 );
for($i = 0; $i < $l; $i ++) {
$rand .= $c [rand () % strlen ( $c )];
}
return $rand;
}
/**
* json数据输出
*
* @param object $data
* json输出的数据
*/
function Json($data) {
header ( 'Content-Type:application/json; charset=' . Config ( 'Charset' ) );
exit ( json_encode ( $data ) );
}
/**
* json success数据输出
*
* @param object $info
* json输出的数据
*/
function JsonSuccess($info) {
$json_data ['status'] = 'success';
$json_data ['info'] = $info;
Json ( $json_data );
}
/**
* json error数据输出
*
* @param object $info
* json输出的数据
*/
function JsonError($info) {
$json_data ['status'] = 'error';
$json_data ['info'] = $info;
Json ( $json_data );
}
/**
* 生成url地址
*
* @param string $c
* 控制器
* @param string $a
* 控制器方法
* @param array $p
* get提交参数
*/
function Url($c, $a, $p = null) {
$sp = '';
if (is_array ( $p )) {
foreach ( $p as $key => $value ) {
$sp .= sprintf ( "&%s=%s", urlencode ( $key ), urlencode ( $value ) );
}
}
return sprintf ( "%s%s?%s=%s&%s=%s%s", _Http, Config ( 'index' ), Config ( 'UrlControllerName' ), $c, Config ( 'UrlActionName' ), $a, $sp );
}
/**
* 获取客户端ip地址
*/
function GetUserIP($type = 0, $adv = false) {
$type = $type ? 1 : 0;
static $ip = NULL;
if ($ip !== NULL)
return $ip [$type];
if ($adv) {
if (isset ( $_SERVER ['HTTP_X_FORWARDED_FOR'] )) {
$arr = explode ( ',', $_SERVER ['HTTP_X_FORWARDED_FOR'] );
$pos = array_search ( 'unknown', $arr );
if (false !== $pos)
unset ( $arr [$pos] );
$ip = trim ( $arr [0] );
} elseif (isset ( $_SERVER ['HTTP_CLIENT_IP'] )) {
$ip = $_SERVER ['HTTP_CLIENT_IP'];
} elseif (isset ( $_SERVER ['REMOTE_ADDR'] )) {
$ip = $_SERVER ['REMOTE_ADDR'];
}
} elseif (isset ( $_SERVER ['REMOTE_ADDR'] )) {
$ip = $_SERVER ['REMOTE_ADDR'];
}
// IP地址合法验证
$long = sprintf ( "%u", ip2long ( $ip ) );
$ip = $long ? array (
$ip,
$long
) : array (
'0.0.0.0',
0
);
return $ip [$type];
}
/**
* 设置SESSION有效时间
*/
function start_session($expire = 0) {
if ($expire == 0) {
$expire = ini_get ( 'session.gc_maxlifetime' );
} else {
ini_set ( 'session.gc_maxlifetime', $expire );
}
if (empty ( $_COOKIE ['PHPSESSID'] )) {
session_set_cookie_params ( $expire );
session_start ();
} else {
session_start ();
setcookie ( 'PHPSESSID', session_id (), time () + $expire );
}
}
function mailsender($mailer, $verify, $type) {
include (_Amysql . 'mail.class.php');
// 邮箱线程**********************************************************
$smtp = new smtp ( Config ( 'smtp' ), Config ( 'port' ), true, Config ( 'user' ), Config ( 'pass' ) );
switch ($type) {
case 'status' :
$smtpemailto = $mailer; // 发送给谁
$mailsubject = "minecraft账号验证通知"; // 邮件主题
$mailbody = "你已成功注册 请妥善保管<br>验证码:{$verify}<br>请及时验证邮箱";
$mailtype = "HTML"; // 邮件格式HTML/TXT,TXT为文本邮件
$smtp->debug = Config ( 'debug' ); // 是否显示发送的调试信息
if ($smtp->sendmail ( $smtpemailto, Config ( 'sender' ), $mailsubject, $mailbody, $mailtype ))
return true;
return false;
break;
case 'forget' :
$smtpemailto = $mailer; // 发送给谁
$mailsubject = "minecraft账号验证通知"; // 邮件主题
$mailbody = "你正在操作找回密码<br>验证码:{$verify}<br>请及时验证邮箱";
$mailtype = "HTML"; // 邮件格式HTML/TXT,TXT为文本邮件
$smtp->debug = Config ( 'debug' ); // 是否显示发送的调试信息
if ($smtp->sendmail ( $smtpemailto, Config ( 'sender' ), $mailsubject, $mailbody, $mailtype ))
return true;
return false;
break;
case 'forge' :
$smtpemailto = $mailer; // 发送给谁
$mailsubject = "minecraft账号通知"; // 邮件主题
$mailbody = "你的密码已重置 新密码是:$verify <br>收到密码后请尽快登陆后台修改密码";
$mailtype = "HTML"; // 邮件格式HTML/TXT,TXT为文本邮件
$smtp->debug = Config ( 'debug' ); // 是否显示发送的调试信息
if ($smtp->sendmail ( $smtpemailto, Config ( 'sender' ), $mailsubject, $mailbody, $mailtype ))
return true;
return false;
break;
}
}
function load($tpl) {
include (_View . $tpl . ".php");
}