本文整理汇总了PHP中Http::getClientIp方法的典型用法代码示例。如果您正苦于以下问题:PHP Http::getClientIp方法的具体用法?PHP Http::getClientIp怎么用?PHP Http::getClientIp使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Http
的用法示例。
在下文中一共展示了Http::getClientIp方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: ajaxSubmitAction
public function ajaxSubmitAction()
{
$username = Request::getPOST('username');
$password = Request::getPOST('password');
$verify = Request::getPOST('verify');
if (!Regex::match($username, RegexVars::USERNAME)) {
$this->renderAjax(1, '用户名格式不正确!');
}
// 校验密码格式
if (!Regex::match($password, RegexVars::PASSWORD)) {
$this->renderAjax(1, '密码长度为6-20位!');
}
// 校验验证码
$code = Session::get('check_code');
if (strtolower($verify) != $code) {
$this->renderAjax(1, '验证码错误,请重试!');
}
// 过滤用户名
if (false !== strpos(strtolower($username), 'admin')) {
$this->renderAjax(1, '用户已经存在!');
}
// 校验用户是否存在
$userInfo = UcUserInterface::getByLoginName(array('login_name' => $username));
if (!empty($userInfo)) {
$this->renderAjax(1, '用户名已经被占用!');
}
// 保存
$data = array('username' => $username, 'password' => $password, 'reg_ip' => Http::getClientIp());
UcUserInterface::save($data);
$this->renderAjax(0);
}
示例2: makeCode
private static function makeCode()
{
$ip = Http::getClientIp();
$ip = $ip % 1000000;
$code = rand(100000, 999999);
$code = ($code + $ip) % 1000000;
return sprintf('%06d', $code);
}
示例3: insert
private static function insert($tag, $level, $msg)
{
// 是否需要Logger
if (!GlobalConfig::$LOGGER_ENABLE) {
return;
}
// 临时关闭Logger
$tmpEnable = GlobalConfig::$LOGGER_ENABLE;
GlobalConfig::$LOGGER_ENABLE = false;
// 校验tag
$tags = LoggerKeys::$allTags;
if (!in_array($tag, $tags)) {
throw new LibraryException("TAG:{$tag} 需要在LoggerKeys中定义!");
}
// 获取错误信息
if (is_subclass_of($msg, 'Exception')) {
$traceList = $msg->getTrace();
$message = $msg->getMessage();
$traceInfo = $traceList[0];
$loc = $traceInfo['file'] . ':' . $traceInfo['line'];
} else {
$traceList = debug_backtrace();
$message = $msg;
$traceInfo = $traceList[1];
$loc = $traceInfo['file'] . ':' . $traceInfo['line'];
}
$now = time();
$data = array('create_time' => $now, 'update_time' => $now, 'tag' => $tag, 'level' => $level, 'client_ip' => Http::getClientIp(), 'client_port' => Http::getClientPort(), 'server_ip' => Http::getServerIp(), 'server_port' => Http::getServerPort(), 'url' => Url::getCurrentUrl(), 'post' => json_encode($_POST), 'loc' => $loc, 'message' => $message, 'trace' => json_encode($traceList));
if (GlobalConfig::$LOGGER_ASYNC) {
$gearman = GearmanPool::getClient(GearmanConfig::$SERVER_COMMON);
$gearman->doBackground('logger_async', json_encode($data));
} else {
LoggerInterface::save($data);
}
GlobalConfig::$LOGGER_ENABLE = $tmpEnable;
}
示例4: makeTicket
private static function makeTicket()
{
$ticket = md5(Http::getClientIp() . Time::ms() . uniqid());
return $ticket;
}
示例5: save
public static function save($data, $id = 0, $trans = null)
{
if (0 == $id) {
$globalId = $data['global_id'];
$language = $data['language'];
$userId = $data['user_id'];
$source = $data['source'];
$contestId = Arr::get('contest_id', $data, 0);
// 设置默认语言
Cookie::set('default_language', $language, time() + 365 * 86400);
$problemInfo = OjProblemInterface::getById(array('id' => $globalId));
if (empty($problemInfo)) {
throw new InterfaceException('题目不存在!');
}
if (!array_key_exists($data['language'], StatusVars::$LANGUAGE_SUPPORT[$problemInfo['remote']])) {
throw new InterfaceException('编译器不支持!');
}
// 连续提交判断
if (self::submitAlready($userId)) {
throw new InterfaceException('提交频繁!');
}
// 非法字符判断
if ($problemInfo['remote'] == StatusVars::REMOTE_HDU) {
if (false === iconv('UTF-8', 'GBK', $source)) {
throw new InterfaceException('代码中存在非法字符!');
}
}
// 开始事务
$innerTrans = $trans;
if (null == $trans) {
$innerTrans = new Trans(DbConfig::$SERVER_TRANS);
$innerTrans->begin();
}
$solutionModel = new OjSolutionModel($innerTrans);
$submitTime = time();
$data = array('problem_global_id' => $globalId, 'remote' => $problemInfo['remote'], 'problem_id' => $problemInfo['problem_id'], 'problem_code' => $problemInfo['problem_code'], 'user_id' => $userId, 'submit_time' => $submitTime, 'submit_ip' => Http::getClientIp(), 'language' => $language, 'result' => StatusVars::QUEUE, 'code_length' => strlen($source), 'remote_uid' => -1);
$userInfo = UserCommonInterface::getById(array('id' => $userId));
if (0 == $contestId) {
$solutionId = $solutionModel->insert($data);
UserCommonInterface::save(array('trans' => $innerTrans, 'id' => $userId, 'submit_all' => $userInfo['submit_all'] + 1));
OjProblemInterface::save(array('trans' => $innerTrans, 'id' => $problemInfo['id'], 'submit' => $problemInfo['submit']));
} else {
$contestInfo = OjContestInterface::getDetail(array('id' => $contestId));
if (empty($contestInfo)) {
throw new InterfaceException('竞赛不存在!');
}
if ($submitTime > $contestInfo['end_time']) {
throw new InterfaceException('比赛已经结束!');
}
if ($submitTime < $contestInfo['begin_time']) {
throw new InterfaceException('比赛未开始!');
}
// 获取当前的submit_order
$lastRow = OjSolutionInterface::getRow(array('where' => array(array('contest_id', '=', $contestId)), 'order' => array('id' => 'DESC')));
$data['contest_id'] = $contestId;
$data['contest_submit_order'] = empty($lastRow) ? 1 : intval($lastRow['contest_submit_order']) + 1;
$data['contest_submit_second'] = $submitTime - $contestInfo['begin_time'];
$data['contest_end_time'] = $contestInfo['end_time'];
$solutionId = $solutionModel->insert($data);
// 激活比赛
if (!$contestInfo['is_active']) {
OjContestInterface::save(array('id' => $contestId, 'trans' => $innerTrans, 'is_active' => 1));
}
}
// 如果是HQU题库,加入队列
if ($problemInfo['remote'] == StatusVars::REMOTE_HQU) {
OjJudgeInterface::save(array('trans' => $innerTrans, 'problem_id' => $problemInfo['problem_id'], 'language' => $language, 'source' => $source, 'user_id' => $userId, 'solution_id' => $solutionId));
}
// 保存代码
OjSolutionCodeInterface::save(array('trans' => $innerTrans, 'solution_id' => $solutionId, 'source' => $source));
if (null == $trans && null != $innerTrans) {
// 没有外部事务,并且存在内部事务
$innerTrans->commit();
}
// 设置重复提交缓存
$memcached = MemcachedPool::getMemcached(MemcachedConfig::$SERVER_COMMON);
$key = MemcachedKeys::OJ_SECOND_SUBMIT_ . $userId;
$memcached->set($key, true, time() + 5);
return $solutionId;
} else {
// 开始事务
$innerTrans = $trans;
if (null == $trans && array_key_exists('result', $data)) {
// 开启内部事务条件
$innerTrans = new Trans(DbConfig::$SERVER_TRANS);
$innerTrans->begin();
}
$model = new OjSolutionModel($innerTrans);
if (array_key_exists('result', $data)) {
self::updateResult($id, $data['result'], $innerTrans);
unset($data['result']);
}
// 对某些字段特殊处理
$updateData = $data;
$affects = $model->updateById($id, $updateData);
if (null == $trans && null != $innerTrans) {
// 没有外部事务,并且存在内部事务
$innerTrans->commit();
}
return $affects;
//.........这里部分代码省略.........