Your IP : 216.73.216.59


Current Path : /home/quelfutuu/www/grice/plugins/auto/couteau_suisse/v1.17.0/outils/
Upload File :
Current File : /home/quelfutuu/www/grice/plugins/auto/couteau_suisse/v1.17.0/outils/spam_options.php

<?php

// traitement anti-spam uniquement si $_POST est rempli et si l'espace n'est pas prive
if ( count($_POST)
	// espace prive en clair dans l'url
	&& (strpos($_SERVER['PHP_SELF'],'/ecrire') === false)
	// cas des actions
	&& !isset($_POST['action'])
	) {

	// champs du formulaire a visiter
	//	un message en forum : texte, titre, auteur
	//	un message a un auteur : texte_message_auteur_XX, sujet_message_auteur_XX, email_message_auteur_XX
	//	inscription : nom_inscription, mail_inscription
	//	login : session_*
	$spam_POST_reg = ',^(?:texte|titre|sujet|auteur|nom|e?mail|session),i';
	// on compile $spam_POST en fonction des variables $_POST trouvees
	$spam_POST_compile = array();
	foreach (array_keys($_POST) as $key)
		if (preg_match($spam_POST_reg, $key) && strpos($key, 'password') === false)
			$spam_POST_compile[] = $key;

	include_spip('cout_lancement');
	$spam_mots = cs_lire_data_outil('spam');
	// test IP compatible avec l'outil 'no_IP'
	$test = $spam_mots[3] ? preg_match($spam_mots[3], $GLOBALS['cs_ip']) : false;
	// test sur les mots
	foreach ($spam_POST_compile as $var)
		if(!$test)
			if(cs_test_spam($spam_mots, $_POST[$var], $test))
				$_GET['var'] = $var;
	// fichiers joints
	define('_spam_MIN', 100);
	if(!$test) {
		$tmp_size = isset($_FILES['ajouter_document']['size']) ? $_FILES['ajouter_document']['size'] : 0;
		$test = $tmp_size && $tmp_size < _spam_MIN;
	}
	if(!$test) {
		$tmp_doc = isset($GLOBALS['visiteur_session']['tmp_forum_document']) ? $GLOBALS['visiteur_session']['tmp_forum_document'] . '.bin' : '';
		$test = $tmp_doc && file_exists($tmp_doc) && filesize($tmp_doc) < _spam_MIN;
	}
	// muss es sein ?
	if($test)
		$_GET['action'] = 'cs_spam';
	// nettoyage
	unset($test, $spam_mots, $spam_POST_reg, $spam_POST_compile);

	function action_cs_spam() {
		include_spip('inc/minipres');
		echo minipres(
			_T('couteau:lutte_spam'),
			'<pre>' . texte_backend($_POST[$_GET['var']]) . '</pre><div>' . _T('couteau:explique_spam') . '</div>'
		);
		exit;
	}
}
unset($GLOBALS['cs_ip']);

function cs_test_spam(&$spam, &$texte, &$test, $pourquoi = false) {
	foreach($spam[0] as $m) {
		if($test = $test || strpos($texte, $m) !== false) {
			if(!$pourquoi) { spip_log("Strpos. '$m' present dans : $texte", "_cs_spams"); return true; } else return $m;
		}
	}
	if($spam[1])
		if($test = preg_match($spam[1], $texte)) {
			if(!$pourquoi) { spip_log("Match. $spam[1] positif sur : $texte", "_cs_spams"); return true; } else return "preg_match #1";
		}
	if($spam[2]) {
		include_spip('inc/charsets');
		if($test = preg_match($spam[2], charset2unicode($texte))) {
			if(!$pourquoi) { spip_log("UMatch. $spam[2] positif sur : $texte", "_cs_spams"); return true; } else return "preg_match #2";
		}
	}
	if($spam[4]) foreach($spam[4] as $m)
		if($test = preg_match($m, $texte)) {
			if(!$pourquoi) { spip_log("Match. $m positif sur : $texte", "_cs_spams"); return true; } else return $m;
		}
	return $test;
}

?>