コード例 #1
0
function GetVisitorFromRequestAndSetCookie($setcookie = true)
{
    // TODO consider the name
    $res = array();
    $forceSet = false;
    if (isset($_REQUEST['visitorname'])) {
        $res['name'] = getSecureText($_REQUEST['visitorname']);
        $forceSet = true;
    } elseif (isset($_COOKIE[WEBIM_COOKIE_VISITOR_NAME])) {
        $res['name'] = getSecureText($_COOKIE[WEBIM_COOKIE_VISITOR_NAME]);
    } else {
        $res['name'] = Resources::Get("chat.default.visitorname");
    }
    $canChangeName = Visitor::getInstance()->canVisitorChangeName();
    if ($canChangeName) {
        if (!isset($_COOKIE[WEBIM_COOKIE_VISITOR_NAME]) || $forceSet) {
            if ($setcookie) {
                Visitor::getInstance()->setVisitorNameCookie($res['name']);
            }
        }
    }
    if (isset($_SESSION['WEBIM_VISITOR_ID'])) {
        $res['id'] = $_SESSION['WEBIM_VISITOR_ID'];
    } elseif (isset($_COOKIE[WEBIM_COOKIE_VISITOR_ID])) {
        $res['id'] = $_COOKIE[WEBIM_COOKIE_VISITOR_ID];
    } else {
        $res['id'] = generateVisitorId();
    }
    if (isset($_POST['captcha'])) {
        $res['captcha'] = $_POST['captcha'];
    }
    if (!isset($_SESSION['WEBIM_VISITOR_ID'])) {
        $_SESSION['WEBIM_VISITOR_ID'] = $res['id'];
    }
    if (!isset($_COOKIE[WEBIM_COOKIE_VISITOR_ID])) {
        if ($setcookie) {
            setcookie(WEBIM_COOKIE_VISITOR_ID, $res['id'], time() + 60 * 60 * 24 * 365, '/');
        }
    }
    $res['partnerref'] = isset($_COOKIE[WEBIM_COOKIE_PARTNER_REF]) ? $_COOKIE[WEBIM_COOKIE_PARTNER_REF] : null;
    return $res;
}
コード例 #2
0
ファイル: client.php プロジェクト: kapai69/fl-ru-damp
function shouldEnterFirstMessage()
{
    global $captcha;
    $chatimmediatly = verify_param('chatimmediately', "/^\\d{1}\$/", '') == 1;
    if ($chatimmediatly) {
        return false;
    }
    if (!isset($_REQUEST['submitted'])) {
        displayStartChat();
        return true;
    } else {
        $TML = new SmartyClass();
        setupStartChat($TML);
        $_SESSION['webim_uname'] = $visitor_name = getSecureText($_REQUEST['visitorname']);
        $_SESSION['webim_email'] = $email = getSecureText($_REQUEST['email']);
        $_SESSION['webim_phone'] = $phone = getSecureText($_REQUEST['phone']);
        $message = getSecureText($_REQUEST['message']);
        $captcha_num = getSecureText($_REQUEST['captcha']);
        $has_errors = false;
        if (!$captcha->checkNumber($captcha_num)) {
            $TML->assign('errorcaptcha', true);
            $has_errors = true;
        } elseif (empty($visitor_name) && Visitor::getInstance()->canVisitorChangeName()) {
            $TML->assign('errorname', true);
            $has_errors = true;
        } elseif (!is_valid_name($visitor_name) && Visitor::getInstance()->canVisitorChangeName()) {
            $TML->assign('errornameformat', true);
            $has_errors = true;
        } elseif (empty($message)) {
            $TML->assign('errormessage', true);
            $has_errors = true;
        } else {
            if (!is_valid_email($email) && !intval($_SESSION['uid'])) {
                $TML->assign('erroremailformat', true);
                $has_errors = true;
            }
        }
        $captcha->setNumber();
        if ($has_errors) {
            $TML->assign('visitorname', $visitor_name);
            $TML->assign('email', $email);
            $TML->assign('phone', $phone);
            $TML->assign('captcha_num', '');
            $TML->display('start-chat.tpl');
            return true;
        }
        return false;
    }
}
コード例 #3
0
ファイル: leavemessage.php プロジェクト: kapai69/fl-ru-damp
} elseif (empty($message)) {
    $TML->assign('errormessage', true);
    $has_errors = true;
} else {
    if (!is_valid_email($email)) {
        $TML->assign('erroremailformat', true);
        $has_errors = true;
    }
}
$captcha->setNumber();
if ($has_errors) {
    $TML->assign('name', getSecureText($visitor_name));
    $TML->assign('email', getSecureText($email));
    $TML->assign('phone', getSecureText($phone));
    $TML->assign('message', getSecureText($message));
    $TML->assign('canChangeName', getSecureText($canChangeName));
    $TML->assign('captcha_num', '');
    $TML->display('leave-message.tpl');
    exit;
}
$visitSessionId = VisitSession::GetInstance()->updateCurrentOrCreateSession();
$params = array();
$params['visitsessionid'] = $visitSessionId;
$params['lastpingvisitor'] = null;
$params['offline'] = 1;
$threads_count = MapperFactory::getMapper('Thread')->getNonEmptyThreadsCountByVisitorId($visitorid);
$thread = Thread::getInstance()->CreateThread(WEBIM_CURRENT_LOCALE, STATE_CLOSED, $params);
VisitSession::GetInstance()->UpdateVisitSession($visitSessionId, array('hasthread' => 1));
Thread::getInstance()->sendFirstMessageWithVisitorInfo($thread);
Thread::getInstance()->PostMessage($thread['threadid'], KIND_USER, Resources::Get('chat.window.offline_message', array($message)));
MapperFactory::getMapper('Thread')->incrementVisitorMessageCount($thread['threadid']);