本文整理汇总了PHP中payed::ProLast方法的典型用法代码示例。如果您正苦于以下问题:PHP payed::ProLast方法的具体用法?PHP payed::ProLast怎么用?PHP payed::ProLast使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类payed
的用法示例。
在下文中一共展示了payed::ProLast方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: billingOperation
/**
* Обработка и оплата операций
*
* @global type $DB
* @param type $option
* @return boolean
*/
function billingOperation($option, $transaction_id)
{
global $DB;
$ok = false;
$account = new account();
switch ($option['op_code']) {
// Аккаунт ПРО у фрилансера
case 48:
case 49:
case 50:
case 51:
case 76:
// Удаляем операции по покупке ответов - публикуем ответы
$prof = new payed();
$ok = $prof->SetOrderedTarif($this->uid, $transaction_id, 1, "Аккаунт PRO", $option['op_code'], $error);
if ($ok) {
$_SESSION['pro_last'] = payed::ProLast($_SESSION['login']);
$_SESSION['pro_last'] = $_SESSION['pro_last']['freeze_to'] ? false : $_SESSION['pro_last']['cnt'];
$userdata = new users();
$_SESSION['pro_test'] = $userdata->GetField($this->uid, $error2, 'is_pro_test', false);
$this->clearBlockedOperations(step_freelancer::OFFERS_OP_CODE);
$step_frl = new step_freelancer();
$offers = $step_frl->getWizardOffers($this->uid, 'all', false);
if ($offers) {
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/users.php";
$step_frl->log = $this->log;
$step_frl->user = new users();
$step_frl->user->GetUserByUID($this->uid);
$step_frl->transferOffers($offers);
}
$this->showProjectsFeedbacks();
}
break;
// Аккаунт ПРО у работодателя
// Аккаунт ПРО у работодателя
case 15:
$prof = new payed();
$ok = $prof->SetOrderedTarif($this->uid, $transaction_id, 1, "Аккаунт PRO", $option['op_code'], $error);
if ($ok) {
$_SESSION['pro_last'] = payed::ProLast($_SESSION['login']);
$_SESSION['pro_last'] = $_SESSION['pro_last']['freeze_to'] ? false : $_SESSION['pro_last']['cnt'];
$userdata = new users();
$_SESSION['pro_test'] = $userdata->GetField($this->uid, $error2, 'is_pro_test', false);
}
// Обновляем выбор цвета для проектов тк он для ПРО бесплатный
$colorProjects = $this->updateColorProject();
$prj = new new_projects();
foreach ($colorProjects as $k => $project) {
$delete_color[] = $project['op_id'];
if ($project['country'] == null) {
$project['country'] = 'null';
}
if ($project['city'] == null) {
$project['city'] = 'null';
}
$project['name'] = addslashes($project['name']);
$project['descr'] = addslashes($project['descr']);
if ($project['logo_id'] <= 0) {
$project['logo_id'] = 'null';
}
$project['payed_items'] = $project['payed_items'] | '010';
$project['is_color'] = 't';
$prj->editPrj($project, false);
}
// Удаляем данные операции
if ($delete_color) {
$this->deleteDraftAccountOperation($delete_color);
}
break;
// Публикация конкурса
// Публикация конкурса
case new_projects::OPCODE_KON:
case new_projects::OPCODE_KON_NOPRO:
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/wizard/step_wizard_registration.php';
$drafts = new drafts();
$draft = $drafts->getDraft($option['parent_id'], $this->uid, 1);
// Если еще не опубликован
if (!$draft['prj_id']) {
$project_id = $draft['id'];
$error = $account->Buy($bill_id, $transaction_id, $option['op_code'], $this->uid, $option['descr'], $option['comment'], 1, 0);
$ok = $bill_id > 0;
if ($bill_id) {
$color = $DB->val("SELECT id FROM draft_account_operations WHERE parent_id = ? AND op_type = 'contest' AND option = 'color' AND uid = ?", $project_id, wizard::getUserIDReg());
$draft['billing_id'] = $bill_id;
$draft['folder_id'] = 'null';
$draft['payed'] = '0';
$draft['payed_items'] = '000';
if (is_pro() && $color > 0) {
$draft['is_color'] = 't';
} else {
$draft['is_color'] = 'f';
}
$draft['win_date'] = date('d-m-Y', strtotime($draft['win_date']));
//.........这里部分代码省略.........
示例2: freelancer
$showMainDiv = true;
$footer_payed = true;
$no_banner = true;
$freelancer = new freelancer();
$is_allow = isAllowProfi();
if ($is_allow) {
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/account.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/payed.php";
$uid = get_uid();
$account = new account();
$account->GetInfo($uid, true);
if (__paramInit('bool', 'quickprofi_ok', NULL, false)) {
//Обновляем сессию
$freelancer->GetUserByUID($uid);
$_SESSION['is_profi'] = $freelancer->isProfi();
$pro_last = payed::ProLast($_SESSION['login']);
$_SESSION['pro_last'] = $pro_last['is_freezed'] ? false : $pro_last['cnt'];
}
}
$catalogList = $freelancer->getProfiCatalog(80);
$maxFirstCLBlock = 90;
$cntCatalogList = count($catalogList);
$isMoreCatalogList = $cntCatalogList > $maxFirstCLBlock;
$cntFirstCLBlock = $isMoreCatalogList ? $maxFirstCLBlock : $cntCatalogList;
$page_title = "PROFI аккаунт - фриланс, удаленная работа на FL.ru";
$css_file = array('/css/block/b-icon/__cont/b-icon__cont.css');
$js_file = array('payed.js', 'billing.js');
$content = 'content.php';
$header = "../header.php";
$footer = "../footer.html";
include "../template3.php";
示例3: foreach
}
}
$u_y_prm_periods[] = $u_last_prm_period;
// Получаем "склеенные" периоды за текущий месяц.
foreach ($u_y_prm_periods as $pp) {
if (($ftime = strtotime($pp['from_time'])) < $TOMORROW_TIME && strtotime($pp['to_time']) >= $MONTHDAY_TIME) {
$u_m_prm_periods[] = $u_m_prm_periods || $ftime >= $MONTHDAY_TIME ? $pp : array('from_time' => $MONTHDAY, 'to_time' => $pp['to_time']);
}
}
// Последний день (время) использования параметра.
if ($prm_is_PRO) {
if (!$iAmAdmin) {
$u_prm_end_time = strtotime($_SESSION['pro_last']);
// Более точное время завершения ПРО с часами минутами @see #0014946
} else {
$pro_last = payed::ProLast($login);
$u_prm_end_time = strtotime($pro_last['is_freezed'] ? false : $pro_last['cnt']);
}
} else {
$u_prm_end_time = strtotime($u_last_prm_period['to_time']);
}
// Вычисляем офсет от левого края годового графика и ширину красной жирной полоски.
$lp_m = date('n', strtotime($u_last_prm_period['from_day'])) - 1;
// Январь - 0.
$lp_d = date('j', strtotime($u_last_prm_period['from_day']));
$lp_y = substr($u_last_prm_period['from_day'], 0, 4);
$lp_to_m = date('n', strtotime($u_last_prm_period['to_day'])) - 1;
$lp_to_d = date('j', strtotime($u_last_prm_period['to_day']));
$lp_to_y = substr($u_last_prm_period['to_day'], 0, 4);
for ($i = 0; $i < $lp_m; ++$i) {
$u_last_prm_left += $MSIZES[$i] * 2 + 1;
示例4: strip_tags
@($action = strip_tags(trim($_GET['action'])));
if (!$action) {
@($action = strip_tags(trim($_POST['action'])));
}
// определяем, был ли сброс массива POST
if (!$action && ($switch || $change_au)) {
$action = "switch_error";
}
switch ($action) {
case "change_au":
// добавляем/изменяем антиюзера.
$response = array();
$location = $_SESSION['ref_uri'] ? HTTP_PFX . $_SERVER["HTTP_HOST"] . urldecode($_SESSION['ref_uri']) : HTTP_PFX . $_SERVER["HTTP_HOST"] . "/";
$_SESSION['pro_last'] = payed::ProLast($_SESSION['login']);
$_SESSION['pro_last'] = $_SESSION['pro_last']['is_freezed'] ? false : $_SESSION['pro_last']['cnt'];
$_SESSION['anti_pro_last'] = payed::ProLast($_SESSION['anti_login']);
$_SESSION['anti_pro_last'] = $_SESSION['anti_pro_last']['is_freezed'] ? false : $_SESSION['anti_pro_last']['cnt'];
if (!($uid = get_uid())) {
header("Location: " . $location);
exit;
}
$post_pwd = stripslashes($_POST['passwd']);
$anti_login = __paramInit('string', NULL, 'a_login');
// получаем класс антиюзера. Он всегда противоположен классу юзера.
$anti_class = is_emp() ? 'freelancer' : 'employer';
$anti = new $anti_class();
// запоминаем данные антиюзера.
$anti->GetUser($anti_login, true, true);
$anti_uid = $anti->uid;
$anti_uname = $anti->uname;
$anti_usurname = $anti->usurname;
示例5: Auth
//.........这里部分代码省略.........
$params['anti_name'] = $anti->uname;
}
if (!is_emp($params['role'])) {
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects_offers.php';
if ($po_summary = projects_offers::GetFrlOffersSummary($params['uid'])) {
$params['po_count'] = $po_summary['total'];
}
}
$sql = 'UPDATE users SET last_time = now(), last_ip = ?, is_active = true WHERE uid = ?i';
$res = $DB->query($sql, $ip, $tid);
$this->SaveLoginIPLog($tid, $ip);
$this->increaseLoginsCnt($tid);
// количество операций
$sQuery = 'SELECT COUNT(ao.id) FROM account_operations ao
INNER JOIN account a ON a.id = ao.billing_id WHERE a.uid = ?i AND (ao.ammount <> 0 OR ao.trs_sum <> 0)';
$params['account_operations'] = $DB->val($sQuery, $tid);
$params['question_button_hide'] = $settings[1];
// Показывать/скрывать кнопку "У вас есть вопрос?"
$params['promo_block_hide'] = $settings[2];
// показывать Блок "Быстрый доступ к основным функциям сайта"
$params['direct_external_links'] = $settings[3];
// Не показывать страницу "Переход по внешней ссылке" a.php
$params['sbr_slash_show'] = $settings[4] && $first_login < strtotime('2012-08-08');
// Показывать/скрыть СБР промо-слеш
$params['splash_show'] = $splash_show;
$params['chat'] = $settings[5];
$params['chat_sound'] = $settings[6];
// #0017182 > Вопрос можем ли мы вытащить эту настройку из кук пользователей и сохранить ее в базу?
if (empty($settings[3]) && $_COOKIE['direct_external_links'] == 1) {
$this->setDirectExternalLinks($tid, 1);
if ($anti_uid) {
$this->setDirectExternalLinks($anti_uid, 1);
}
setcookie('direct_external_links', '', time() - 60 * 60 * 24 * 365, '/');
setcookie('no_a_php', '1', time() + 60 * 60 * 24 * 365 * 2, '/');
}
//генерация куки для userecho
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/userecho.php';
setcookie('ue_sso_token', UserEcho::get_sso_token(USERECHO_API_KEY, USERECHO_PROJECT_KEY, array()), 0, '/', preg_replace('/^https?\\:\\/\\/(?:www\\.)?/', '.', 'fl.ru'));
// Первый заход, регистрация через мастер, мастер не закончен
if ($first_login == 0) {
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/wizard/wizard.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/wizard/wizard_registration.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/wizard/step_employer.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/wizard/step_freelancer.php';
if (is_emp($params['role'])) {
$wiz_user = wizard::isUserWizard($tid, step_employer::STEP_REGISTRATION_CONFIRM, wizard_registration::REG_EMP_ID);
} else {
$wiz_user = wizard::isUserWizard($tid, step_freelancer::STEP_REGISTRATION_CONFIRM, wizard_registration::REG_FRL_ID);
}
if ($wiz_user['id'] > 0) {
$role = is_emp($params['role']) ? wizard_registration::REG_EMP_ID : wizard_registration::REG_FRL_ID;
header('Location: /registration/activated.php?role=' . $role);
//header("Location: /wizard/registration/?role={$role}");
exit;
} elseif (!is_emp($params['role'])) {
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/payed.php';
$pro_last = payed::ProLast($_SESSION['login']);
$_SESSION['pro_last'] = $pro_last['is_freezed'] ? false : $pro_last['cnt'];
if ($_SESSION['pro_last'] && $_SESSION['is_pro_new'] != 't') {
payed::checkNewPro($id);
}
if ($pro_last['freeze_to']) {
$_SESSION['freeze_from'] = $pro_last['freeze_from'];
$_SESSION['freeze_to'] = $pro_last['freeze_to'];
$_SESSION['is_freezed'] = $pro_last['is_freezed'];
$_SESSION['payed_to'] = $pro_last['cnt'];
}
if ($_SESSION['anti_login']) {
$pro_last = payed::ProLast($_SESSION['anti_login']);
$_SESSION['anti_pro_last'] = $pro_last['freeze_to'] ? false : $pro_last['cnt'];
}
//отправляем письмо с инфой, как работать на сайте
/*
require_once($_SERVER['DOCUMENT_ROOT'] . "/classes/smail.php");
$mail = new smail();
if (is_emp()) {
$mail->employerQuickStartGuide(get_uid(false));
} else {
$mail->freelancerQuickStartGuide(get_uid(false));
}
*/
return $tid;
if (!defined('IN_API')) {
// для API мобильного приложения не нужно
header("Location: /users/{$login}/");
exit;
}
}
}
//-----------------------------------
} else {
$tid = 0;
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/annoy.php';
$annoy = new annoy();
$annoy->Add($ip);
}
return $tid;
}
示例6: checkProLast
/**
* Проверяем не кончился ли уже про и не надо ли убрать значек с главной страницы.
*/
function checkProLast()
{
if ($_SESSION['pro_last'] && strtotime($_SESSION['pro_last']) < time()) {
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/payed.php";
$pro_last = payed::ProLast($_SESSION['login']);
$_SESSION['pro_last'] = $pro_last['is_freezed'] ? false : $pro_last['cnt'];
}
}
示例7: paymentOrder
//.........这里部分代码省略.........
// Про на 6 месяцeв (emp)
case 50:
// Про на 6 месяцев (frl)
// Про на 6 месяцев (frl)
case 120:
// Про на 1 год (emp)
// Про на 1 год (emp)
case 51:
// Про на 1 год (frl)
// Про на 1 год (frl)
case 132:
// Про на 1 день (frl)
// Про на 1 день (frl)
case 131:
// Про на 1 неделю (frl)
// Про на 1 неделю (frl)
case 163:
// Тестовый ПРО на месяц
// Тестовый ПРО на месяц
case 164:
// PROFI на 1 месяц
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/payed.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/employer.php';
$payed = new payed();
$user = is_emp($this->user['role']) ? new employer() : new freelancer();
$success = $payed->SetOrderedTarif($this->user['uid'], $this->transaction, $order['op_count'], $order['comment'], $order['op_code'], $order['promo_code'], $error);
if ($success) {
if (isset($payed->account_operation_id) && $payed->account_operation_id > 0) {
$account_operation_id = $payed->account_operation_id;
}
// Обновим сессию сразу!
if (get_uid(false) == $this->user['uid']) {
$_SESSION['pro_last'] = payed::ProLast($this->user['login']);
$_SESSION['pro_last'] = $_SESSION['pro_last']['is_freezed'] ? false : $_SESSION['pro_last']['cnt'];
if ($_SESSION['pro_last']['is_freezed']) {
$_SESSION['payed_to'] = $_SESSION['pro_last']['cnt'];
}
} else {
$membuff = new memBuff();
$membuff->set('is_changed_pro_' . $this->user['uid'], true);
//Этот подход не работает
//$session = new session();
//$session->UpdateProEndingDate($this->user['login']);
}
if ($order['auto'] == 't') {
$user->setPROAutoProlong('on', $this->user['uid']);
} else {
$user->setPROAutoProlong('off', $this->user['uid']);
}
//Опубликовать перемещенные вакансии при покупке ПРО
//@todo: Теперь вакансии для всех платные разница лишь в цене для ПРО дешевле
//поэтому отключаем публикацию после покупки ПРО
//https://beta.free-lance.ru/mantis/view.php?id=28579
/*
if (is_emp($this->user['role'])) {
require_once($_SERVER['DOCUMENT_ROOT'] . "/classes/projects.php");
$project = new projects();
$project->publishedMovedToVacancy($this->user);
}*/
//Чистим кеш каталога PROFI пользователей
if ($order['op_code'] == 164) {
freelancer::clearCacheProfiCatalog();
}
}
break;
示例8: UpdateProEndingDate
/**
* Обновляет дату окончания PRO в сессии пользователя
*
* @param string $login логин пользователя
*/
function UpdateProEndingDate($login)
{
if (!$login) {
return;
}
$s = $this->get($login);
if ($s) {
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/payed.php";
$pro_last = payed::ProLast($login);
$pro_last = $pro_last['freeze_to'] ? false : $pro_last['cnt'];
$session_data = $this->read($s['sid']);
$session_data = preg_replace("/;pro_last\\|(?:s:0:\"\"|s:[0-9]{2}:\".*\"|b\\:0|N)/U", ";pro_last|s:" . strlen($pro_last) . ":\"{$pro_last}\"", $session_data);
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/users.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/account.php";
$user = new users();
$user->GetUser($login);
$account = new account();
$account->GetInfo($user->uid);
$session_data = preg_replace("/ac_sum\\|s:\\d{1,}:\".*\"/U", "ac_sum|s:" . strlen($account->sum) . ":\"{$account->sum}\"", $session_data);
$session_data = preg_replace("/is_profi\\|b:[0-1]/U", "is_profi|b:" . ($user->isProfi() ? '1' : '0'), $session_data);
$this->set($s['sid'], $session_data, 7200);
}
}
示例9: freezePro
function freezePro($action, $from_date, $to_date)
{
global $uid;
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/payed.php';
$objResponse = new xajaxResponse();
$last_freeze = payed::getLastFreeze($uid);
$last_freeze_id = null;
$freeze_allow = false;
$freeze_set = false;
$freezed_now = false;
$freezed_alert = false;
$freeze_act = 'freeze';
$from_time = $to_time = time();
$location = substr($_SESSION['role'], 0, 1) == 1 ? '/payed-emp/' : '/payed/';
if ($last_freeze) {
$last_freeze_id = $last_freeze['id'];
$from_time = strtotime($last_freeze['from_time_date']);
$to_time = strtotime($last_freeze['to_time_date']);
if (ceil($last_freeze['freezed_days'] / 7) < 4 && $last_freeze['freezed_cnt'] < 4) {
$freeze_allow = true;
} else {
$freezed_alert = true;
}
if ($from_time > time()) {
$freeze_set = true;
$freezed_alert = false;
$freeze_act = 'freeze_cancel';
}
if ($from_time <= time() && strtotime($last_freeze['to_time']) > time()) {
$freezed_now = true;
$freezed_alert = false;
$freeze_act = 'freeze_stop';
}
} elseif (is_pro()) {
$freeze_allow = true;
$from_time += 24 * 3600;
$to_time += 24 * 3600;
}
$from_time = date('Y-m-d', $from_time);
$to_time = date('Y-m-d', $to_time);
//if (date('Ymd', strtotime($_SESSION['pro_last'])) == date('Ymd'))
//@todo: выключаем возможность заморозки
//https://beta.free-lance.ru/mantis/view.php?id=29292
$freeze_allow = false;
if ($action == 'freeze' && $freeze_allow) {
$fstart = mktime(0, 0, 0, date('m'), date('d') + 1, date('Y'));
if ($from_date && $to_date && strtotime($from_date) >= $fstart) {
if ($to_date != 1 && $to_date != 2 && $to_date != 3 && $to_date != 4) {
$to_date = 1;
}
//if ($to_date == 2 && ceil($last_freeze['freezed_days'] / 7) == 1) {
// $to_date = 1;
//}
$ft = strtotime($from_date);
$freeze_days = (int) $to_date * 7;
$to_date = date('Y-m-d', mktime(0, 0, 0, date('m', $ft), date('d', $ft) + intval($to_date) * 7, date('Y', $ft)));
payed::freezePro($uid, $from_date, $to_date);
$from_time = $from_date;
$to_time = $to_date;
$freeze_set = true;
$freeze_act = 'freeze_cancel';
$pro_last = payed::ProLast($_SESSION['login']);
if ($pro_last['freeze_to']) {
$_SESSION['freeze_from'] = $pro_last['freeze_from'];
$_SESSION['freeze_to'] = $pro_last['freeze_to'];
$_SESSION['is_freezed'] = $pro_last['is_freezed'];
$_SESSION['payed_to'] = $pro_last['cnt'];
}
$_SESSION['pro_last'] = $pro_last['is_freezed'] ? false : $pro_last['cnt'];
$text = 'Ваш аккаунт будет заморожен с <b>' . date('d.m.Y', strtotime($from_date)) . "</b> на <b>{$freeze_days} дней</b>";
$objResponse->call('freezeDisabled', $freeze_act);
$objResponse->assign('freeze_info', 'innerHTML', $text);
} elseif (strtotime($from_date) > strtotime($_SESSION['pro_last']) || strtotime($from_date) < $fstart) {
$freeze_error = 'Неверная дата начала заморозки.';
} else {
$freeze_error = 'Ошибка, не указана одна из дат.';
}
}
if ($action == 'freeze_cancel' && $freeze_set) {
if (!payed::freezeProCancel($uid, $last_freeze_id)) {
$freeze_error = 'Невозможно отменить заморозку.';
} else {
$freeze_set = false;
$freeze_allow = true;
$from_time = $to_time = date('Y-m-d', time() + 24 * 3600);
$_SESSION['pro_last'] = payed::ProLast($_SESSION['login']);
if (isset($_SESSION['freeze_from'])) {
unset($_SESSION['freeze_from']);
}
if (isset($_SESSION['freeze_to'])) {
unset($_SESSION['freeze_to']);
}
if (isset($_SESSION['is_freezed'])) {
unset($_SESSION['is_freezed']);
}
$_SESSION['pro_last'] = $_SESSION['pro_last']['is_freezed'] ? false : $_SESSION['pro_last']['cnt'];
$objResponse->call('freezeEnabled', strtotime('+1 day') * 1000);
}
}
if ($action == 'freeze_stop' && $freezed_now) {
//.........这里部分代码省略.........
示例10: updateUserSession
/**
* Обновляет данные о ПРО в сессии пользователя
* @return boolean
*/
public static function updateUserSession()
{
if (!$_SESSION['login']) {
return false;
}
$pro_last = payed::ProLast($_SESSION['login']);
$_SESSION['pro_last'] = $pro_last['is_freezed'] ? false : $pro_last['cnt'];
if ($pro_last['freeze_to']) {
$_SESSION['freeze_from'] = $pro_last['freeze_from'];
$_SESSION['freeze_to'] = $pro_last['freeze_to'];
$_SESSION['is_freezed'] = $pro_last['is_freezed'];
$_SESSION['payed_to'] = $pro_last['cnt'];
}
return true;
}
示例11: login
/**
* Залогинивает юзера. Возвращает UID юзера. Выставляет куки "автологина".
* ВНИМАНИЕ! возвращает UID юзера, если находит его. Либо возвращает
* 0 - не найден
* -1 - аккаунт забанен
* -2 - аккаунт неактивирован
* -3 - IP не входит в список IP разрешенных пользователем
* -4 - требуется 2ой этап авторизации
*
* @param string $login логин юзера
* @param string $pwd пароль
* @param integer $autologin флаг "автологина"
* @return integer UID юзера
*/
function login($login, $pwd, $autologin = 0, $annoy_check = true)
{
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/annoy.php";
$annoy = new annoy();
$user = new users();
if ($annoy_check) {
if (intval($_SESSION['login_wait_time']) > time()) {
$redirect_checkpass = true;
} else {
// Проверить сколько раз воодился пароль
if (isset($_SESSION['login_wait_time'])) {
$annoy->Clear(getRemoteIP());
}
$login_count = $annoy->Check(getRemoteIP());
if ($login_count >= $GLOBALS['max_login_tries']) {
$_SESSION['login_wait_time'] = time() + $GLOBALS['login_wait_time'] * 60;
$redirect_checkpass = true;
}
}
if ($redirect_checkpass == true) {
header("Location: /checkpass.php");
exit;
}
}
//Получаем логин и проверяем счетчик
$_uid = $user->getUidByLoginEmailPhone($login);
if ($_uid > 0 && !$annoy->allowRepeatPass($_uid)) {
header("Location: /banned.php");
exit;
}
//@todo: нет проверок наличия ключей
$t_filter_prj = $_SESSION['f_project_filter'];
$t_filter_frl = $_SESSION['f_freelancers_filter'];
$t_ref_uri2 = $_SESSION['ref_uri2'];
$adCatalog = $_SESSION['toppayed_catalog'];
$adMain = $_SESSION['toppayed_main'];
$adHead = $_SESSION['toppayed_head'];
$adText = $_SESSION['toppayed_text'];
$masssending = $_SESSION['masssending'];
$newPrjName = $_SESSION['new_project_name'];
$newPrjCost = $_SESSION['new_project_cost'];
//Сохраняем значение типа 2хэпапной авторизации перед очисткой сессии
$_2fa_provider = isset($_SESSION['2fa_provider']) ? $_SESSION['2fa_provider'] : null;
$_2fa_redirect = isset($_SESSION['2fa_redirect']) ? $_SESSION['2fa_redirect'] : null;
//Переносим хеши ссылок на уже зафиксированные местки для юзера при выходе/входе
$_ga_stat_url_hash = isset($_SESSION['ga_stat_url_hash']) ? $_SESSION['ga_stat_url_hash'] : null;
//Последняя посещенная страница
$_ref_uri = isset($_SESSION['ref_uri']) ? $_SESSION['ref_uri'] : null;
$_pda = isset($_SESSION['pda']) ? $_SESSION['pda'] : null;
$_customer_wizard = isset($_SESSION['customer_wizard']) ? $_SESSION['customer_wizard'] : null;
session_unset();
if ($_customer_wizard) {
$_SESSION['customer_wizard'] = $_customer_wizard;
}
if ($_pda) {
$_SESSION['pda'] = $_pda;
}
if ($_ref_uri) {
$_SESSION['ref_uri'] = $_ref_uri;
}
//Воссанавливаем значение хешей ссылок
if ($_ga_stat_url_hash) {
$_SESSION['ga_stat_url_hash'] = $_ga_stat_url_hash;
}
//Востанавливаем значение 2хэпапной авторизации после очистки сессии
if ($_2fa_provider !== null) {
$_SESSION['2fa_provider'] = $_2fa_provider;
}
if ($_2fa_redirect !== null) {
$_SESSION['2fa_redirect'] = $_2fa_redirect;
}
//Выключаем проверку 2ого этапа авторизации
//если это вход из куки или еще откуда (но неявно от пользователя)
//где мы уже уверены что 2этапа пройдены ранее юзером
$is_2fa_off = $annoy_check === false;
//Авторизация
$id = $user->Auth($login, $pwd, $_SESSION, $is_2fa_off);
//Считаем и блокируем по количеству неудачных авторизаций
if (!$id && $_uid > 0) {
$annoy->wrongRepeatPass($_uid);
}
//Успешная авторизация
if ($id > 0) {
$annoy->clearRepeatPass($id);
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/payed.php";
$pro_last = payed::ProLast($_SESSION['login']);
//.........这里部分代码省略.........
示例12: strtotime
//$ok = $payed->freezeProDeactivate($uid);
//assert($ok == true);
exit;
$last_freeze = payed::getLastFreeze($uid);
/*
if($last_freeze) {
$from_time = strtotime($last_freeze['from_time_date']);
$to_time = strtotime($last_freeze['to_time_date']);
if ($from_time <= time() && strtotime($last_freeze['to_time']) > time()) {
$freezed_now = true;
$freezed_alert = false;
$freeze_act = 'freeze_stop';
}
}
*/
print_r($last_freeze);
exit;
/*
$data = payed::getProfiDaysFromPro(78701);
print_r($data);
exit;
*/
payed::freezePro($uid, '2014-10-20 00:00:00', '2014-10-27 00:00:00');
exit;
$data = payed::ProLast('freelancer78701');
print_r($data);
exit;
示例13: is_emp
$from = is_emp($user->role) ? 'emp' : 'frl';
$op_data = opinions::getHeaderData($from, $user, $user->uid);
if (!$rating || !$rating instanceof rating || $rating->data['user_id'] != $user->uid) {
$rating = new rating($user->uid, $user->is_pro, $user->is_verify, $user->is_profi, 1);
}
$r_data = $rating->data;
//$samerank = rating::CountByRank($r_data['rank']);
$banblog = $user->GetBan($user->uid, 1);
if ($user->birthday && $user->birthday > "1910-01-01") {
$user_ago = ElapsedYears(strtotime($user->birthday));
}
$info_for_reg = @unserialize($user->info_for_reg);
$team = new teams();
// срок окончания ПРО - только для админов
if (hasPermissions('users') && $user->is_pro === 't') {
$proLast = payed::ProLast($user->login);
$proDate = date('d-m-Y в h:i', strtotime($proLast['cnt']));
}
$access_favorite = $_SESSION['login'] && $user->login != $_SESSION['login'];
$access_contacts = ($user->isCurrent() || is_view_contacts($user->uid) || hasPermissions('users')) && is_contacts_not_empty($user);
$show_contacts_col = $access_favorite || $access_contacts;
$is_allow_messages = true;
if ($uid > 0 && !is_emp() && is_emp($user->role)) {
require_once ABS_PATH . "/classes/messages.php";
$is_allow_messages = messages::isAllowed($user->uid, $uid);
}
?>
示例14: setUserPRO
/**
* Даем пользователою ПРО на месяц.
*
* @global object $DB подключение к БД
*
* @param int $user_id ИД пользователя
* @param int $bill_id ИД операции
*
* @return resource
*/
public function setUserPRO($user_id, $bill_id)
{
global $DB;
$time = $this->getConst_MONTH_PRO() . ' month';
$sql = 'INSERT INTO orders (from_id, to_date, tarif, ordered, billing_id, payed) VALUES (?, ?, ?, true, ?, true);
UPDATE users SET is_pro = true, is_pro_test = false WHERE uid=?;';
$res = $DB->query($sql, $user_id, $time, $this->getConst_PRO_TARIF(), $bill_id, $user_id);
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/payed.php';
$pro_last = payed::ProLast($_SESSION['login']);
$_SESSION['pro_last'] = $pro_last['is_freezed'] ? false : $pro_last['cnt'];
return $res;
}
示例15: SetGiftResv
/**
* Делает отметку о получении подарка(просмотре подарка) по id подарка и UID
*
* @param integer $uid
*/
function SetGiftResv($gid)
{
session_start();
$uid = get_uid(false);
$gid = intval($gid);
$uid = intval($uid);
if (!$gid || !$uid) {
$resp['success'] = false;
echo json_encode($resp);
return;
}
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/present.php";
present::SetGiftResv($gid, $uid);
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/payed.php";
$is_pro = payed::CheckPro($_SESSION['login']);
$pro_last = payed::ProLast($_SESSION['login']);
if ($pro_last['freeze_to']) {
$_SESSION['freeze_from'] = $pro_last['freeze_from'];
$_SESSION['freeze_to'] = $pro_last['freeze_to'];
$_SESSION['is_freezed'] = $pro_last['is_freezed'];
$_SESSION['payed_to'] = $pro_last['cnt'];
}
$_SESSION['pro_last'] = $pro_last['is_freezed'] ? false : $pro_last['cnt'];
$resp['id'] = $gid;
$resp['success'] = true;
echo json_encode($resp);
return;
}