Example #1
0
/**
* Logs the current user out
*
function login_logout(){
	global $ssc_user;
	_login_kill_session();
	session_regenerate_id(true);
	$ssc_user = _login_anonymous();
}

/**
* Destroys an active session
*/
function _login_kill_session()
{
    // Empty variables
    $_SESSION = array();
    // Remove remote SID
    if (isset($_COOKIE[session_name()])) {
        ssc_cookie(session_name(), '', -3600);
    }
    // Destroy the session
    session_destroy();
}
Example #2
0
/**
 * Comment submission
 */
function blog_guest_comment_submit()
{
    global $ssc_database, $ssc_site_url;
    $details['n'] = $_POST['n'];
    $details['s'] = $_POST['s'];
    $details['e'] = $_POST['e'];
    ssc_cookie('comment_details', serialize($details), 15552000);
    // Load antispam
    if (ssc_load_library('sscAkismet')) {
        $spam = new sscAkismet($ssc_site_url, ssc_var_get('wordpress_api', ''));
        if (!$spam) {
            // No API key - submit but mark for moderation
            $is_spam = SSC_BLOG_COMMENT_SPAM;
        } else {
            $spam->setContent($_POST['c'], 'comment');
            $spam->setAuthor($_POST['n'], $_POST['e'], $_POST['s']);
            $spam->setRemote($_SERVER['REMOTE_ADDR'], $_SERVER['HTTP_USER_AGENT']);
            $spam->setBlog($_POST['perma']);
            $is_spam = $spam->isSpam() ? SSC_BLOG_COMMENT_SPAM | SSC_BLOG_COMMENT_CAN_SPAM : SSC_BLOG_COMMENT_CAN_SPAM;
            // Increment caught count
            if ($is_spam & SSC_BLOG_COMMENT_SPAM) {
                ssc_var_set('akismet_count', (int) ssc_var_get('akismet_count', 1) + 1);
            }
        }
    } else {
        // No Akismet library - submit but mark for moderation
        $is_spam = SSC_BLOG_COMMENT_SPAM;
    }
    if ($is_spam & SSC_BLOG_COMMENT_SPAM && ssc_var_get('blog.discard_spam', false)) {
        ssc_add_message(SSC_MSG_WARN, t('Your post was marked as spam and permanently discarded - please try to reduce it\'s "spammyness" and try again'));
        $_POST['spammed'] = true;
    } else {
        $_POST['spammed'] = false;
        $result = $ssc_database->query("INSERT INTO #__blog_comment (post_id, author, email, site, created, status, body, ip)\n\t\t\tVALUES (%d, '%s', '%s', '%s', %d, %d, '%s', '%s')", $_POST['i'], $_POST['n'], $_POST['e'], $_POST['s'], time(), $is_spam, $_POST['c'], $_SERVER['REMOTE_ADDR']);
        // Result tree
        if ($result) {
            // Submission successful
            if ($is_spam & SSC_BLOG_COMMENT_SPAM) {
                // Comment was marked as spam
                if ($is_spam & SSC_BLOG_COMMENT_CAN_SPAM) {
                    // ... by Akismet
                    ssc_add_message(SSC_MSG_WARN, t('Your comment has been submitted but marked as spam and queued for moderation.  Do not resubmit your comment.'));
                } else {
                    // Akisment unavailable - manual moderation
                    ssc_add_message(SSC_MSG_INFO, t('Your comment has been submitted and queued for moderation.  Do not resubmit as it should be checked soon.'));
                }
            } else {
                ssc_add_message(SSC_MSG_INFO, t('Your comment was successfully added'));
            }
        } else {
            ssc_add_message(SSC_MSG_CRIT, t('There was a server error encountered while submitting your comment'));
        }
    }
}