当前位置: 首页>>代码示例>>PHP>>正文


PHP check_ban函数代码示例

本文整理汇总了PHP中check_ban函数的典型用法代码示例。如果您正苦于以下问题:PHP check_ban函数的具体用法?PHP check_ban怎么用?PHP check_ban使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了check_ban函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: check_ban_proxy

function check_ban_proxy() {
	global $globals;
  if ($globals['development']) return false; // only for development

	if (($ban = check_ban($globals['user_ip'], 'proxy'))) return $ban;
	else return check_ban($_SERVER['REMOTE_ADDR'], 'proxy');
}
开发者ID:rasomu,项目名称:chuza,代码行数:7,代码来源:ban.php

示例2: check_url

 function check_url($url, $check_local = true, $first_level = false)
 {
     global $globals, $current_user;
     if (!preg_match('/^http[s]*:/', $url)) {
         return false;
     }
     $url_components = @parse_url($url);
     if (!$url_components) {
         return false;
     }
     if (!preg_match('/[a-z]+/', $url_components['host'])) {
         return false;
     }
     $quoted_domain = preg_quote(get_server_name());
     if ($check_local && preg_match("/^{$quoted_domain}\$/", $url_components['host'])) {
         $globals['ban_message'] = _('el servidor es local');
         syslog(LOG_NOTICE, "Meneame, server name is local name ({$current_user->user_login}): {$url}");
         return false;
     }
     require_once mnminclude . 'ban.php';
     if (check_ban($url, 'hostname', false, $first_level) || check_ban_list($url_components[host], $globals['forbiden_domains'])) {
         syslog(LOG_NOTICE, "Meneame, server name is banned ({$current_user->user_login}): {$url}");
         $this->banned = true;
         return false;
     }
     return true;
 }
开发者ID:brainsqueezer,项目名称:fffff,代码行数:27,代码来源:link.php

示例3: check_ban_proxy

function check_ban_proxy()
{
    global $globals;
    if ($ban = check_ban($globals['user_ip'], 'proxy')) {
        return $ban;
    } else {
        return check_ban($_SERVER['REMOTE_ADDR'], 'proxy');
    }
}
开发者ID:manelio,项目名称:woolr,代码行数:9,代码来源:ban.php

示例4: elseif

$shower = "messages.php?session={$session}";
if (!in_array($chat_type, $chat_types)) {
    $chat_type = $chat_types[0];
}
if ($chat_type == "tail") {
    $shower = "{$daemon_url}?{$session}";
} elseif ($chat_type == "reload") {
    $shower = "messages.php?session={$session}";
} elseif ($chat_type == "php_tail") {
    $shower = "tail.php?session={$session}";
} elseif ($chat_type == "js_tail") {
    $shower = "js_frameset.php?session={$session}";
}
#ban check
include $ld_engine_path . "ban_check.php";
if (check_ban(array("un|" . to_canon_nick($user_name), "ip|" . $REMOTE_ADDR, "ch|" . $c_hash, "bh|" . $browser_hash, "sn|" . substr($REMOTE_ADDR, 0, strrpos($REMOTE_ADDR, "."))))) {
    $error_text = $w_banned;
    include $file_path . "designes/" . $design . "/error_page.php";
    exit;
}
#???????????
if ($c_user_color == "") {
    $user_color = $default_color;
} else {
    $user_color = $c_user_color;
}
$registered_user = 0;
$users = array();
$htmlnick = "";
//////////////////////////////////////////! ÇÀÏÈÑÜ
include $ld_engine_path . "voc_user_data.php";
开发者ID:andriyevski,项目名称:old-apeha.com,代码行数:31,代码来源:change_room.php

示例5: do_submit1

function do_submit1() {
	global $db, $dblang, $current_user, $globals;

	$url = clean_input_url($_POST['url']);
	$url = preg_replace('/^http:\/\/http:\/\//', 'http://', $url); // Some users forget to delete the foo http://
	if (! preg_match('/^\w{3,6}:\/\//', $url)) { // http:// forgotten, add it
		$url = 'http://'.$url;
	}
	$url = preg_replace('/#[^\/]*$/', '', $url); // Remove the "#", people just abuse

	echo '<div>'."\n";

	$new_user = false;
	if (!check_link_key()) {
		echo '<p class="error"><strong>'._('clave incorrecta').'</strong></p> ';
		echo '</div>'. "\n";
		return;
	}
	if ($globals['min_karma_for_links'] > 0 && $current_user->user_karma < $globals['min_karma_for_links'] ) {
		echo '<p class="error"><strong>'._('no tienes el mínimo de karma para enviar una nueva historia').'</strong></p> ';
		echo '</div>'. "\n";
		return;
	}

	// Don't allow to send a link by a clone
	$hours = intval($globals['user_links_clon_interval']);
	$clones = $current_user->get_clones($hours+1);
	if ($hours > 0 && $clones) {
		$l = implode(',', $clones);
		$c = (int) $db->get_var("select count(*) from links where link_status!='published' and link_date > date_sub(now(), interval $hours hour) and link_author in ($l)");
		if ($c > 0) {
			echo '<p class="error">'._('ya se envió con otro usuario «clon» en las últimas horas'). ", "._('disculpa las molestias'). ' </p>';
			syslog(LOG_NOTICE, "Meneame, clon submit ($current_user->user_login): $_POST[url]");
			echo '<br style="clear: both;" />' . "\n";
			echo '</div>'. "\n";
			return;
		}
	}

	// Check the number of links sent by a user
	$queued_24_hours = (int) $db->get_var("select count(*) from links where link_status!='published' and link_date > date_sub(now(), interval 24 hour) and link_author=$current_user->user_id");

  if (!$globals['development'])
	if ($globals['limit_user_24_hours'] && $queued_24_hours > $globals['limit_user_24_hours']) {
		echo '<p class="error">'._('debes esperar, tienes demasiados envíos en cola de las últimas 24 horas'). " ($queued_24_hours), "._('disculpa las molestias'). ' </p>';
		syslog(LOG_NOTICE, "Meneame, too many queued in 24 hours ($current_user->user_login): $_POST[url]");
		echo '<br style="clear: both;" />' . "\n";
		echo '</div>'. "\n";
		return;
	}

	// check the URL is OK and that it resolves
	$url_components = @parse_url($url);
	if (!$url_components || ! $url_components['host'] || gethostbyname($url_components['host']) == $url_components['host']) {
		echo '<p class="error"><strong>'._('URL o nombre de servidor erróneo').'</strong></p> ';
		echo '<p>'._('el nombre del servidor es incorrecto o éste tiene problemas para resolver el nombre'). ' </p>';
		syslog(LOG_NOTICE, "Meneame, hostname error ($current_user->user_login): $url");
		print_empty_submit_form();
		echo '</div>'. "\n";
		return;
	}

	$enqueued_last_minutes = (int) $db->get_var("select count(*) from links where link_status='queued' and link_date > date_sub(now(), interval 3 minute)");
	if ($current_user->user_karma > $globals['limit_3_minutes_karma']) $enqueued_limit = $globals['limit_3_minutes'] * 1.5;
	else $enqueued_limit = $globals['limit_3_minutes'];

	if ($enqueued_last_minutes > $enqueued_limit) {
		echo '<p class="error"><strong>'._('exceso de envíos').':</strong></p>';
		echo '<p>'._('se han enviado demasiadas historias en los últimos 3 minutos'). " ($enqueued_last_minutes > $enqueued_limit), "._('disculpa las molestias'). ' </p>';
		syslog(LOG_NOTICE, "Meneame, too many queued ($current_user->user_login): $_POST[url]");
		echo '</div>'. "\n";
		return;
	}

	// Check the user does not have too many drafts
	$minutes = intval($globals['draft_time'] / 60) + 10;
	$drafts = (int) $db->get_var("select count(*) from links where link_author=$current_user->user_id  and link_date > date_sub(now(), interval $minutes minute) and link_status='discard' and link_votes = 0");
  if (!$globals['development'])
	if ($drafts > $globals['draft_limit']) {
		echo '<p class="error"><strong>'._('demasiados borradores').':</strong></p>';
		echo '<p>'._('has hecho demasiados intentos, debes esperar o continuar con ellos desde la'). ' <a href="shakeit.php?meta=_discarded">'. _('cola de descartadas').'</a></p>';
		syslog(LOG_NOTICE, "Meneame, too many drafts ($current_user->user_login): $_POST[url]");
		echo '</div>'. "\n";
		return;
	}
	// Delete dangling drafts
	if ($drafts > 0) {
		$db->query("delete from links where link_author=$current_user->user_id and link_date > date_sub(now(), interval 30 minute) and link_date < date_sub(now(), interval 10 minute) and link_status='discard' and link_votes = 0");
	}


	// Check for banned IPs
  if (!$globals['development'])
	if(($ban = check_ban($globals['user_ip'], 'ip', true)) || ($ban = check_ban_proxy())) {
		echo '<p class="error"><strong>'._('dirección IP no permitida para enviar').':</strong> '.$globals['user_ip'].'</p>';
		echo '<p><strong>'._('Razón').'</strong>: '.$ban['comment'].'</p>';
		if ($ban['expire'] > 0) {
			echo '<p class="note"><strong>'._('caduca').'</strong>: '.get_date_time($ban['expire']).'</p>';
		}
		syslog(LOG_NOTICE, "Meneame, banned IP $globals[user_ip] ($current_user->user_login): $url");
//.........这里部分代码省略.........
开发者ID:rasomu,项目名称:chuza,代码行数:101,代码来源:submit.php

示例6: do_submit1

function do_submit1()
{
    global $db, $dblang, $current_user, $globals;
    $url = clean_input_url($_POST['url']);
    $url = preg_replace('/^http:\\/\\/http:\\/\\//', 'http://', $url);
    // Some users forget to delete the foo http://
    $url = preg_replace('/#.*$/', '', $url);
    // Remove the "#", people just abuse
    do_banner_top();
    echo '<div id="container-wide">' . "\n";
    echo '<div id="genericform-contents">' . "\n";
    $new_user = false;
    if (!check_link_key()) {
        echo '<p class="error"><strong>' . _('clave incorrecta') . '</strong></p> ';
        echo '</div>' . "\n";
        return;
    }
    if ($globals['min_karma_for_links'] > 0 && $current_user->user_karma < $globals['min_karma_for_links']) {
        echo '<p class="error"><strong>' . _('no tienes el mínimo de karma para enviar una nueva historia') . '</strong></p> ';
        echo '</div>' . "\n";
        return;
    }
    $enqueued_last_minutes = (int) $db->get_var("select count(*) from links where link_status='queued' and link_date > date_sub(now(), interval 3 minute)");
    if ($current_user->user_karma > 10) {
        $enqueued_limit = $globals['limit_3_minutes'] * 1.5;
    } else {
        $enqueued_limit = $globals['limit_3_minutes'];
    }
    if ($enqueued_last_minutes > $enqueued_limit) {
        echo '<p class="error"><strong>' . _('Exceso de envíos') . ':</strong></p>';
        echo '<p>' . _('Se han enviado demasiadas noticias en los últimos 3 minutos') . " ({$enqueued_last_minutes} > {$enqueued_limit}), " . _('disculpa las molestias') . ' </p>';
        syslog(LOG_NOTICE, "Meneame, too many queued ({$current_user->user_login}): {$_POST['url']}");
        echo '</div>' . "\n";
        return;
    }
    // Check the user does not have too many drafts
    $drafts = (int) $db->get_var("select count(*) from links where link_author={$current_user->user_id}  and link_date > date_sub(now(), interval 30 minute) and link_status='discard' and link_votes = 0");
    if ($drafts > 3) {
        echo '<p class="error"><strong>' . _('Demasiados borradores') . ':</strong></p>';
        echo '<p>' . _('Has hecho demasiados intentos, debes esperar o continuar con ellos desde la') . ' <a href="shakeit.php?meta=_discarded">' . _('cola de descartadas') . '</a></p>';
        syslog(LOG_NOTICE, "Meneame, too many drafts ({$current_user->user_login}): {$_POST['url']}");
        echo '</div>' . "\n";
        return;
    }
    // Delete dangling drafts
    if ($drafts > 0) {
        $db->query("delete from links where link_author={$current_user->user_id} and link_date > date_sub(now(), interval 30 minute) and link_date < date_sub(now(), interval 10 minute) and link_status='discard' and link_votes = 0");
    }
    // Check for banned IPs
    if (check_ban($globals['user_ip'], 'ip', true) || check_ban_proxy()) {
        echo '<p class="error"><strong>' . _('Dirección IP no permitida para enviar') . ':</strong> ' . $globals['user_ip'] . ' (' . $globals['ban_message'] . ')</p>';
        syslog(LOG_NOTICE, "Meneame, banned IP {$globals['user_ip']} ({$current_user->user_login}): {$url}");
        print_empty_submit_form();
        echo '</div>' . "\n";
        return;
    }
    // Number of links sent by the user
    $total_sents = (int) $db->get_var("select count(*) from links where link_author={$current_user->user_id}") - $drafts;
    if ($total_sents > 0) {
        $sents = (int) $db->get_var("select count(*) from links where link_author={$current_user->user_id} and link_date > date_sub(now(), interval 60 day)") - $drafts;
    } else {
        $new_user = true;
        $sents = 0;
    }
    $register_date = $current_user->Date();
    if ($globals['now'] - $register_date < 86400 * 3) {
        $new_user = true;
    }
    // check that a new user also votes, not only sends links
    // it requires $globals['min_user_votes'] votes
    if ($new_user && $globals['min_user_votes'] > 0 && $current_user->user_karma < 6.1) {
        $user_votes_total = (int) $db->get_var("select count(*) from votes where vote_type='links' and vote_user_id={$current_user->user_id}");
        $user_votes = (int) $db->get_var("select count(*) from votes where vote_type='links' and vote_date > date_sub(now(), interval 72 hour) and vote_user_id={$current_user->user_id}");
        $user_links = 1 + $db->get_var("select count(*) from links where link_author={$current_user->user_id} and link_date > date_sub(now(), interval 24 hour) and link_status != 'discard'");
        $total_links = (int) $db->get_var("select count(*) from links where link_date > date_sub(now(), interval 24 hour) and link_status = 'queued'");
        echo "<!-- {$user_votes_total}, {$user_links}, {$total_links} -->\n";
        if ($sents == 0) {
            // If is a new user, requires more votes, to avoid spam
            $min_votes = $globals['min_user_votes'];
        } else {
            $min_votes = min(4, intval($total_links / 20)) * $user_links;
        }
        if ($current_user->user_level != 'god' && $current_user->user_level != 'admin' && $user_votes < $min_votes) {
            $needed = $min_votes - $user_votes;
            echo '<p class="error">';
            if ($new_user) {
                echo '<strong>' . _('¿es la primera vez que envías una noticia?') . '</strong></p> ';
                echo '<p class="error-text">' . _('necesitas como mínimo') . " <strong>{$needed} " . _('votos') . '</strong><br/>';
            } else {
                echo '<strong>' . _('no tienes el mínimo de votos necesarios para enviar una nueva historia') . '</strong></p> ';
                echo '<p class="error-text">' . _('necesitas votar como mínimo a') . " <strong>{$needed} " . _('noticias') . '</strong><br/>';
            }
            echo '<strong>' . _('no votes de forma apresurada, penaliza el karma') . '</strong><br/>';
            echo '<a href="' . $globals['base_url'] . 'shakeit.php" target="_blank">' . _('haz clic aquí para ir a votar') . '</a></p>';
            echo '<br style="clear: both;" />' . "\n";
            echo '</div>' . "\n";
            return;
        }
    }
    // avoid spams, an extra security check
//.........这里部分代码省略.........
开发者ID:brainsqueezer,项目名称:fffff,代码行数:101,代码来源:submit.php

示例7: get_links

	function get_links() {
		global $current_user;

		$this->links = array();
		$this->banned = false;

		$localdomain = preg_quote(get_server_name(), '/');
		preg_match_all('/([\(\[:\.\s]|^)(https*:\/\/[^ \t\n\r\]\(\)\&]{5,70}[^ \t\n\r\]\(\)]*[^ .\t,\n\r\(\)\"\'\]\?])/i', $this->content, $matches);
		foreach ($matches[2] as $match) {
			require_once(mnminclude.'ban.php');
			$link=clean_input_url($match);
			$components = parse_url($link);
			if ($components && ! preg_match("/.*$localdomain$/", $components['host'])) {
				$link_ban = check_ban($link, 'hostname', false, true); // Mark this comment as containing a banned link
				$this->banned |= $link_ban;
				if ($link_ban) { 	
					syslog(LOG_NOTICE, "Meneame: banned link in comment: $match ($current_user->user_login)");
				}
				if (array_search($components['host'], $this->links) === false)
					array_push($this->links, $components['host']);
			}
		}
	}
开发者ID:rasomu,项目名称:chuza,代码行数:23,代码来源:comment.php

示例8: check_url

	function check_url($url, $check_local = true, $first_level = false) {
		global $globals, $current_user;
		if(!preg_match('/^http[s]*:/', $url)) return false;
		$url_components = @parse_url($url);
		if (!$url_components) return false;
		if (!preg_match('/[a-z]+/', $url_components['host'])) return false;
		$quoted_domain = preg_quote(get_server_name());
		if($check_local && preg_match("/^$quoted_domain$/", $url_components['host'])) {
			$this->ban = array();
			$this->ban['comment'] = _('el servidor es local');
			syslog(LOG_NOTICE, "Meneame, server name is local name ($current_user->user_login): $url");
			return false;
		}
		require_once(mnminclude.'ban.php');
		if(($this->ban = check_ban($url, 'hostname', false, $first_level))) {
			syslog(LOG_NOTICE, "Meneame, server name is banned ($current_user->user_login): $url");
			$this->banned = true;
			return false;
		}
		return true;
	}
开发者ID:rasomu,项目名称:chuza,代码行数:21,代码来源:link.php

示例9: array

<?php

// The source code packaged with this file is Free Software, Copyright (C) 2005 by
// Ricardo Galli <gallir at uib dot es>.
// It's licensed under the AFFERO GENERAL PUBLIC LICENSE unless stated otherwise.
// You can get copies of the licenses here:
// 		http://www.affero.org/oagpl.html
// AFFERO GENERAL PUBLIC LICENSE is also included in the file called "COPYING".
include 'config.php';
include mnminclude . 'html1.php';
include_once mnminclude . 'ban.php';
$page_size = $globals['page_size'] * 2;
$items = array(_('usuario'), _('karma'), _('noticias'), _('noticias publicadas'), _('comentarios'), _('votos últimos 2 meses'));
if (check_ban($globals['user_ip'], 'proxy')) {
    return;
}
// Warn, empty() return true even if sortby=0
if (!strlen($_GET['sortby']) > 0) {
    $sortby = 1;
} else {
    $sortby = intval($_GET['sortby']);
    if ($sortby < 0 || $sortby > 3) {
        $sortby = 1;
    }
}
switch ($sortby) {
    case 0:
        $select = "SELECT user_id ";
        $from_where = " FROM users ";
        $order_by = " ORDER BY user_login ";
        break;
开发者ID:brainsqueezer,项目名称:fffff,代码行数:31,代码来源:topusers.php

示例10: check_email

function check_email($email)
{
    global $globals;
    require_once mnminclude . 'ban.php';
    if (!preg_match('/^[a-zA-Z0-9_\\-\\.]+(\\+[a-zA-Z0-9_\\-\\.]+)*@[a-zA-Z0-9_\\-\\.]+\\.[a-zA-Z]{2,4}$/', $email)) {
        return false;
    }
    if (check_ban(preg_replace('/^.*@/', '', $email), 'email') || check_ban_list($email, $globals['forbidden_email_domains'])) {
        return false;
    }
    return true;
}
开发者ID:brainsqueezer,项目名称:fffff,代码行数:12,代码来源:utils.php

示例11: do_submit1

function do_submit1()
{
    global $db, $dblang, $current_user, $globals, $errors;
    $url = clean_input_url(urldecode($_POST['url']));
    $url = preg_replace('/#[^\\/]*$/', '', $url);
    // Remove the "#", people just abuse
    $url = preg_replace('/^http:\\/\\/http:\\/\\//', 'http://', $url);
    // Some users forget to delete the foo http://
    if (!preg_match('/^\\w{3,6}:\\/\\//', $url)) {
        // http:// forgotten, add it
        $url = 'http://' . $url;
    }
    $new_user = false;
    if (!check_link_key()) {
        add_submit_error(_('clave incorrecta'));
        return false;
    }
    if ($globals['min_karma_for_links'] > 0 && $current_user->user_karma < $globals['min_karma_for_links']) {
        add_submit_error(_('no tienes el mínimo de karma para enviar una nueva historia'));
        return false;
    }
    // Don't allow to send a link by a clone
    $hours = intval($globals['user_links_clon_interval']);
    $clones = $current_user->get_clones($hours + 1);
    if ($hours > 0 && $clones) {
        $l = implode(',', $clones);
        $c = (int) $db->get_var("select count(*) from links where link_status!='published' and link_date > date_sub(now(), interval {$hours} hour) and link_author in ({$l})");
        if ($c > 0) {
            add_submit_error(_('ya se envió con otro usuario «clon» en las últimas horas') . ", " . _('disculpa las molestias'));
            syslog(LOG_NOTICE, "Meneame, clon submit ({$current_user->user_login}): " . $_REQUEST['url']);
            return false;
        }
    }
    // Check the number of links sent by a user
    $queued_24_hours = (int) $db->get_var("select count(*) from links where link_status!='published' and link_date > date_sub(now(), interval 24 hour) and link_author={$current_user->user_id}");
    if ($globals['limit_user_24_hours'] && $queued_24_hours > $globals['limit_user_24_hours']) {
        add_submit_error(_('debes esperar, tienes demasiados envíos en cola de las últimas 24 horas') . " ({$queued_24_hours}), " . _('disculpa las molestias'));
        syslog(LOG_NOTICE, "Meneame, too many queued in 24 hours ({$current_user->user_login}): " . $_REQUEST['url']);
        return false;
    }
    // check the URL is OK and that it resolves
    $url_components = @parse_url($url);
    if (!$url_components || !$url_components['host'] || gethostbyname($url_components['host']) == $url_components['host']) {
        add_submit_error(_('URL o nombre de servidor erróneo'), _('el nombre del servidor es incorrecto o éste tiene problemas para resolver el nombre'));
        syslog(LOG_NOTICE, "Meneame, hostname error ({$current_user->user_login}): {$url}");
        return false;
    }
    $enqueued_last_minutes = (int) $db->get_var("select count(*) from links where link_status='queued' and link_date > date_sub(now(), interval 3 minute)");
    if ($current_user->user_karma > $globals['limit_3_minutes_karma']) {
        $enqueued_limit = $globals['limit_3_minutes'] * 1.5;
    } else {
        $enqueued_limit = $globals['limit_3_minutes'];
    }
    if ($enqueued_last_minutes > $enqueued_limit) {
        //echo '<p class="error"><strong>'._('exceso de envíos').':</strong></p>';
        //echo '<p>'._('se han enviado demasiadas historias en los últimos 3 minutos'). " ($enqueued_last_minutes > $enqueued_limit), "._('disculpa las molestias'). ' </p>';
        //echo '</div>'. "\n";
        add_submit_error(_('exceso de envíos'), _('se han enviado demasiadas historias en los últimos 3 minutos') . " ({$enqueued_last_minutes} > {$enqueued_limit}), " . _('disculpa las molestias'));
        syslog(LOG_NOTICE, "Meneame, too many queued ({$current_user->user_login}): " . $_REQUEST['url']);
        return false;
    }
    // Check the user does not have too many drafts
    $minutes = intval($globals['draft_time'] / 60) + 10;
    $drafts = (int) $db->get_var("select count(*) from links where link_author={$current_user->user_id}  and link_date > date_sub(now(), interval {$minutes} minute) and link_status='discard' and link_votes = 0");
    if ($drafts > $globals['draft_limit']) {
        add_submit_error(_('demasiados borradores'), _('has hecho demasiados intentos, debes esperar o continuar con ellos desde la') . ' <a href="shakeit.php?meta=_discarded">' . _('cola de descartadas') . '</a></p>');
        syslog(LOG_NOTICE, "Meneame, too many drafts ({$current_user->user_login}): " . $_REQUEST['url']);
        return false;
    }
    // Delete dangling drafts
    if ($drafts > 0) {
        $db->query("delete from links where link_author={$current_user->user_id} and link_date > date_sub(now(), interval 30 minute) and link_date < date_sub(now(), interval 10 minute) and link_status='discard' and link_votes = 0");
    }
    // Check for banned IPs
    if (($ban = check_ban($globals['user_ip'], 'ip', true)) || ($ban = check_ban_proxy())) {
        if ($ban['expire'] > 0) {
            $expires = _('caduca') . ': ' . get_date_time($ban['expire']);
        } else {
            $expires = '';
        }
        add_submit_error(_('dirección IP no permitida para enviar'), $expires);
        syslog(LOG_NOTICE, "Meneame, banned IP " . $globals['user_ip'] . " ({$current_user->user_login}): {$url}");
        return false;
    }
    // Number of links sent by the user
    $total_sents = (int) $db->get_var("select count(*) from links where link_author={$current_user->user_id}") - $drafts;
    if ($total_sents > 0) {
        $sents = (int) $db->get_var("select count(*) from links where link_author={$current_user->user_id} and link_date > date_sub(now(), interval 60 day)") - $drafts;
    } else {
        $new_user = true;
        $sents = 0;
    }
    $register_date = $current_user->Date();
    if ($globals['now'] - $register_date < $globals['new_user_time']) {
        $new_user = true;
    }
    // check that a new user also votes, not only sends links
    // it requires $globals['min_user_votes'] votes
    if ($new_user && $globals['min_user_votes'] > 0 && $current_user->user_karma < $globals['new_user_karma']) {
        $user_votes_total = (int) $db->get_var("select count(*) from votes where vote_type='links' and vote_user_id={$current_user->user_id}");
//.........这里部分代码省略.........
开发者ID:brainsqueezer,项目名称:fffff,代码行数:101,代码来源:submit.php

示例12: intval

     $pub_coef = $min_pub_coef + (1 - $min_pub_coef) * (time() - $last_site_published) / (3600 * $hours);
     $dblink->karma *= $pub_coef;
     $link->message .= '<br/> Last published: ' . intval((time() - $last_site_published) / 3600) . ' hours ago.';
 }
 // Check domain and user punishments
 if (check_ban($link->url, 'punished_hostname', false, true)) {
     $dblink->karma *= 0.75;
     $link->message .= '<br/>' . $globals['ban_message'];
 }
 // check if it's "media" and the metacategory coefficient is low
 if ($meta_coef[$dblink->parent] < 1.1 && ($link->content_type == 'image' || $link->content_type == 'video')) {
     $dblink->karma *= 0.9;
     $link->message .= '<br/>Image';
 }
 // Check if the user is banned disabled
 if (check_ban($link->url, 'hostname', false, true)) {
     $dblink->karma *= 0.66;
     $link->message .= '<br/>Domain banned. ';
 }
 // Check if the  domain is banned
 if ($user->level == 'disabled') {
     if (preg_match('/^_+[0-9]+_+$/', $user->username)) {
         $link->message .= "<br/>{$user->username} disabled herself, penalized.";
     } else {
         $link->message .= "<br/>{$user->username} disabled, probably due to abuses, penalized.";
     }
     $dblink->karma *= 0.66;
 }
 // check differences, if > 4 store it
 if (abs($link->karma - $dblink->karma) > 4) {
     $link->message = sprintf("<br/>updated karma: %6d (%d, %d, %d) -> %-6d (%d, %d, %d)\n", $link->karma, $link->votes, $link->anonymous, $link->negatives, round($dblink->karma), $votes_pos, $votes_pos_anon, $votes_neg) . $link->message;
开发者ID:brainsqueezer,项目名称:fffff,代码行数:31,代码来源:promote7.php

示例13: update_link_karma

function update_link_karma($site, $link)
{
    global $db, $globals;
    if (time() - $link->time_annotation('link-karma') < 75) {
        echo "ALREADY CALCULATED {$link->uri}, ignoring\n";
        return 0;
    }
    $site_info = SitesMgr::get_info($site);
    echo "START {$site_info->name} WITH {$link->uri}\n";
    $user = new User();
    $user->id = $link->author;
    $user->read();
    $karma_pos_user = 0;
    $karma_neg_user = 0;
    $karma_pos_ano = 0;
    User::calculate_affinity($link->author, $past_karma * 0.3);
    // Calculate the real karma for the link
    $link->calculate_karma();
    $karma_new = $link->karma;
    $link->message = '';
    $changes = 0;
    // TODO: $subs_coef is not available
    // if (DEBUG ) $link->message .= "Sub: $link->sub_id coef: ".$subs_coef[$link->sub_id]." Init values: previous: $link->old_karma calculated: $link->karma new: $karma_new<br>\n";
    // Verify last published from the same site
    $hours = 8;
    $min_pub_coef = 0.8;
    $last_site_published = (int) $db->get_var("select SQL_NO_CACHE UNIX_TIMESTAMP(max(link_date)) from sub_statuses, links where id = {$site} and status = 'published' and date > date_sub(now(), interval {$hours} hour) and link_id = link and link_blog = {$link->blog} ");
    if ($last_site_published > 0) {
        $pub_coef = $min_pub_coef + (1 - $min_pub_coef) * (time() - $last_site_published) / (3600 * $hours);
        $karma_new *= $pub_coef;
        $link->message .= 'Last published: ' . intval((time() - $last_site_published) / 3600) . ' hours ago.<br/>';
    }
    if ($ban = check_ban($link->url, 'hostname', false, true)) {
        // Check if the  domain is banned
        $karma_new *= 0.5;
        $link->message .= 'Domain banned.<br/>';
        $link->annotation .= _('dominio baneado') . ": " . $ban['comment'] . "<br/>";
    } elseif ($user->level == 'disabled' || $user->level == 'autodisabled') {
        // Check if the user is banned disabled
        if ($user->level == 'autodisabled') {
            $link->message .= "{$user->username} disabled herself, penalized.<br/>";
            $karma_new *= 0.2;
        } else {
            $link->message .= "{$user->username} disabled, probably due to abuses, penalized.<br/>";
            $karma_new *= 0.4;
        }
        $link->annotation .= _('cuenta deshabilitada') . "<br/>";
    } elseif (check_ban($link->url, 'punished_hostname', false, true)) {
        // Check domain and user punishments
        $karma_new *= 0.75;
        $link->message .= $globals['ban_message'] . '<br/>';
    }
    // Check if it was depubished before
    $depublished = (int) $db->get_var("select count(*) from logs where log_type = 'link_depublished' and log_ref_id = {$link->id}");
    if ($depublished > 0) {
        $karma_new *= 0.4;
        $link->message .= 'Previously depublished' . '<br/>';
        $link->annotation .= _('previamente quitada de portada') . "<br/>";
    }
    // Check if the are previously published during last hours from the same sub
    if ($link->sub_id > 0 && $link->is_sub && $link->sub_owner > 0 && $link->sub_id != $site && $site_info->owner == 0) {
        $sub_published = $db->get_var("select UNIX_TIMESTAMP(date) from sub_statuses where id = {$site} and origen = {$link->sub_id} and status = 'published' and date > date_sub(now(), interval 24 hour) order by date desc limit 1");
        if ($sub_published > 0) {
            $m_diff = intval((time() - $sub_published) / 60);
            $c = min(1, max(0.3, $m_diff / 1440));
            $karma_new *= $c;
            $link->message .= 'Published from the same sub, c' . sprintf(': %4.2f <br/>', $c);
            $link->annotation .= _('publicada del mismo sub recientemente, coeficiente') . sprintf(': %4.2f <br/>', $c);
        }
    }
    $link->karma = round($karma_new);
    /// Commons votes
    if ($link->karma > 20) {
        $days = 7;
        $commons_votes = $db->get_col("select SQL_NO_CACHE value from sub_statuses, link_commons where id = {$site} and status = 'published' and sub_statuses.date > date_sub(now(), interval {$days} day) and link_commons.link = sub_statuses.link order by value asc");
        $common = $link->calculate_common_votes();
        echo "Calculating diversity ({$common}-" . count($commons_votes) . ")\n";
        if ($common != false && $commons_votes && count($commons_votes) > 5) {
            $common_probability = cdf($commons_votes, $common);
            $p = round($common_probability, 2);
            echo "common: {$common} common_probability: {$common_probability}\n";
            $link->common_probability = $common_probability;
            $link->message .= 'Voters density: ' . sprintf("%5.2f", $common) . ' diversity coef: ' . sprintf("%3.2f%%", (1 - $common_probability) * 100) . " Probability: {$p}<br/>";
            $link->annotation .= _('Densidad diversidad') . ': ' . sprintf("%5.2f", $common) . ' ' . _('coeficiente') . ": " . sprintf("%3.2f%%", (1 - $common_probability) * 100) . " (" . _('probabilidad') . ": {$p})<br/>";
            // Bonus for diversity
            $c = $common_probability / 0.5;
            if ($c <= 1) {
                $c = 1 - $c;
                if ($link->low_karma_perc > 60) {
                    $low_karma_coef = (50 - ($link->low_karma_perc - 50)) / 50;
                } else {
                    $low_karma_coef = 1;
                }
                $bonus = round($c * 0.5 * $link->karma * $low_karma_coef * (1 - 5 * $link->negatives / $link->votes));
                echo "BONUS: {$link->karma} {$p}, {$c} -> {$bonus} ({$link->low_karma_perc}, {$low_karma_coef}, {$link->negatives}/{$link->votes})\n";
            } else {
                // Decrease for high affinity between voters
                $c = $c - 1;
                $bonus = -round($c * 0.5 * $link->karma);
                echo "PENALIZATION: {$link->karma} {$p}, {$c} -> {$bonus}\n";
//.........这里部分代码省略.........
开发者ID:GallardoAlba,项目名称:Meneame,代码行数:101,代码来源:promote10.php

示例14: check_email

function check_email($email) {
	global $globals;
	require_once(mnminclude.'ban.php');
	if (! preg_match('/^[a-z0-9_\-\.]+(\+[a-z0-9_\-\.]+)*@[a-z0-9_\-\.]+\.[a-z]{2,4}$/i', $email)) return false;

	$username = preg_replace('/@.+$/', '', $email);
	if ( substr_count($username, '.') > 2 || preg_match('/\.{2,}/', $username) ) return false; // Doesn't allow "..+" or more than 2 dots

	if(check_ban(preg_replace('/^.*@/', '', $email), 'email')) return false;
	return true;
}
开发者ID:rasomu,项目名称:chuza,代码行数:11,代码来源:utils.php

示例15: _

		break;
	case 'ban_proxy':
		if (strlen($name)>64) {
			echo _('nombre demasiado largo');
			return;
		}
		require_once(mnminclude.'ban.php');
		if(($ban = check_ban($name, 'proxy'))) {
			echo $ban['comment'];
			return;
		}
		echo "OK";
		break;
	case 'ban_words':
		if (strlen($name)>64) {
			echo _('nombre demasiado largo');
			return;
		}
		require_once(mnminclude.'ban.php');
		if(($ban = check_ban($name, 'words'))) {
			echo $ban['comment'];
			return;
		}
		echo "OK";
		break;

	default:
		echo "KO $type";
}
?>
开发者ID:rasomu,项目名称:chuza,代码行数:30,代码来源:checkfield.php


注:本文中的check_ban函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。