Има ли начин да се преборя със Спама?

bojko91

Registered
Здравейте.

От известно време имам проблеми със сайта. Постоянно ми се въдят някакви мръсни ботове дет спамят като ненормални, но не във форума а в другите страници на сайта. Разрешил съм дасе публикуват изказвания от анонимни. Искам да попитам дали има някакъв начин да се преборя с тях но без да отказвам да пишат анонимните?

Надявам се да ми помогнете.

ето сайта: http://boji-dar.info

Поздрави Божидар
 
Аз съм го напраел така :

<tr>
<td>Спам защита</td>
<td><img src="code.php" alt="" /></td>
</tr>
<tr>
<td>Въведете кода</td>
<td><input type="text" name="randimage_txt" maxlength="5" style="background-color:#a2270b; border:0;" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="dobavi" value="Потвърди" class="button" /></td>
 
emcuemnecu каза:
Аз съм го напраел така :

<tr>
<td>Спам защита</td>
<td><img src="code.php" alt="" /></td>
</tr>
<tr>
<td>Въведете кода</td>
<td><input type="text" name="randimage_txt" maxlength="5" style="background-color:#a2270b; border:0;" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="dobavi" value="Потвърди" class="button" /></td>


е да но въпроса ми е в кой файл трябва да се добави ?

ето вижте например като не сте рагистрирани http://boji-dar.info/viewpage.php?page_id=2 тук могат да се пишат мнения и тъпите ботове спамят като ненормални :(

Давам +1
 
в кав смисъл в кой файл ? това го слагаш където ти е формата или аз нещо не те разбирам ?
 
Страшни емотикони имаш :o

ти си го напраел така:

<table width='100%' cellspacing='0' cellpadding='0'><tr><td height='5'></td></tr></table>
<table width='100%' cellpadding='0' cellspacing='0'><tr><td class='panel-left'><img src='themes/Fusion6/images/blank.gif' width='11' height='28' alt='' style='display:block'></td><td width='100%' class='panel-main'>Добави коментар</td><td class='panel-right'><img src='themes/Fusion6/images/blank.gif' width='11' height='28' alt='' style='display:block'></td></tr></table><table width='100%' cellpadding='0' cellspacing='0'><tr><td class='border-left'><img src='themes/Fusion6/images/blank.gif' width='7' height='1' alt='' style='display:block'></td><td class='main-body'>
<form name='inputform' method='post' action='viewpage.php?page_id=2'>
<table align='center' cellspacing='0' cellpadding='0' class='tbl'>
<tr>
<td>Име:</td>
</tr>
<tr>

направи го така:



Код:
<table width='100%' cellspacing='0' cellpadding='0'><tr><td height='5'></td></tr></table>
<table width='100%' cellpadding='0' cellspacing='0'><tr><td class='panel-left'><img src='themes/Fusion6/images/blank.gif' width='11' height='28' alt='' style='display:block'></td><td width='100%' class='panel-main'>Добави коментар</td><td class='panel-right'><img src='themes/Fusion6/images/blank.gif' width='11' height='28' alt='' style='display:block'></td></tr></table><table width='100%' cellpadding='0' cellspacing='0'><tr><td class='border-left'><img src='themes/Fusion6/images/blank.gif' width='7' height='1' alt='' style='display:block'></td><td class='main-body'>
<form name='inputform' method='post' action='viewpage.php?page_id=2'>
<table align='center' cellspacing='0' cellpadding='0' class='tbl'>
<tr>
<td>Име:</td>
</tr>
<tr>
								<td>Спам защита</td> 
								<td><img src="code.php" alt="" /></td>
							</tr>
							<tr>
								<td>Въведете кода</td>
								<td><input type="text" name="randimage_txt" maxlength="5" style="background-color:#a2270b; border:0;" /></td>
							</tr>
							<tr>
								<td> </td>
								<td><input type="submit" name="dobavi" value="Потвърди" class="button" /></td>

като code.php да съдаржа следното:
Код:
<?php
session_start(); 
$rand = rand(10000, 99999);
$_SESSION['image_random_value'] = md5($rand);
$image = imagecreate(60, 22);
$bgColor = imagecolorallocate ($image, 255, 255, 255); 
$textColor = imagecolorallocate ($image, 128,128, 128); 
imagestring ($image, 6, 6, 8, $rand, $textColor); 
header('Content-type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
?>

Това е дано да съм полезен и съвет: направи си копие на файла който ще преработваш, може да бъркам някъде ама надали
 
Пробвай така както ти казах, приложно демо може да видиш тук
http://85.217.216.231/radiosite

ми за проверката просто добави:

if(md5($_POST['randimage_txt']) != $_SESSION['image_random_value']){
print 'Въведеният код е невалиден!<br/>';
 
emcuemnecu каза:
Пробвай така както ти казах, приложно демо може да видиш тук
http://85.217.216.231/radiosite

ми за проверката просто добави:

if(md5($_POST['randimage_txt']) != $_SESSION['image_random_value']){
print 'Въведеният код е невалиден!<br/>';

Не е това. Ти виждаш съвсем друг код. :( Това е система PHP-fusion!
 
emcuemnecu каза:
Оф.. я ми прати кода за съобщенията да видя дали ще стане

Аз незнам кой файл изобщо треба да пипна че да го променя ? ;( :( :cry:
 
Хайде де никой ли незнае как да го нпарвя, кой файл трябва да се едитне?
:( :cry: :cry:
 
Нещо не се ориентирам, това коментари ли са, на статиите или новините...
Но както и да е, ако са коментари, файлът е includes/comments_include.php
Може да се пробвам да напиша такова нещо, щом го няма още, понеже познавам кода, но нищо не обещавам.
 
Galli каза:
Нещо не се ориентирам, това коментари ли са, на статиите или новините...
Но както и да е, ако са коментари, файлът е includes/comments_include.php
Може да се пробвам да напиша такова нещо, щом го няма още, понеже познавам кода, но нищо не обещавам.


Много ще съм ти благодарен :).! Да мисля си, че коментарният панел за статий и новини е еднакъв(имам предвид идва от един файл).
 
Така, първо пиша и след това слагам кодовете.
Значи направено е да генерира картинка с текст от 5 знака (букви и цифри).
Случайния избор е от урока на human. Другия код не е от урока, защото не искам да ползва картинка за background, а просто се генерира background с PHP. Под картинката има поле, в което се пише кодът. Ако е верен се добавя коментар, ако не нищо не става.
Ако исакаш да съобщава за грешно въведен код, ще трябва да се въвеждат променливи във файловете locale/Bulgarian, пък там кодировки работи..., много хора ще се затруднят и ще има недоволни, мисля, че няма смисъл.
И един въпрос от къде да разреша на анонимните да пускат коментари, че не намерих?
Сега отваряш includes заменяш кода на comments_include.php с този по-долу, и добавяш (ъплоудваш) един файл anti-spam.php със съдържанието по-долу. Кодът е пробван на PHP-Fusion v6.01.15.
comments_include.php
Код:
<?php
/*---------------------------------------------------+
| PHP-Fusion 6 Content Management System
+----------------------------------------------------+
| Copyright © 2002 - 2006 Nick Jones
| http://www.php-fusion.co.uk/
+----------------------------------------------------+
| Released under the terms & conditions of v2 of the
| GNU General Public License. For details refer to
| the included gpl.txt file or visit http://gnu.org
+----------------------------------------------------+
| Comments system developed by CrappoMan
| email: simonpatterson@dsl.pipex.com
+----------------------------------------------------+
|Anti Spam Code for Comments 
|Edit by Galli from http://web-tourist.net
|Test in PHP-Fusion v6.01.15
+----------------------------------------------------*/
if (!defined("IN_FUSION")) { header("Location:../index.php"); exit; }

include LOCALE.LOCALESET."comments.php";

function showcomments($ctype,$cdb,$ccol,$cid,$clink) {

	global $settings,$locale,$userdata,$aidlink;
	
	if ((iMEMBER || $settings['guestposts'] == "1") && isset($_POST['post_comment'])) {
		$flood = false;
		if (dbrows(dbquery("SELECT $ccol FROM ".DB_PREFIX."$cdb WHERE $ccol='$cid'"))==0) {
			fallback(BASEDIR."index.php");
		}
		if (iMEMBER) {
			$comment_name = $userdata['user_id'];
		} elseif ($settings['guestposts'] == "1") {
			$comment_name = trim(stripinput($_POST['comment_name']));
			$comment_name = preg_replace("(^[0-9]*)", "", $comment_name);
			if (isNum($comment_name)) $comment_name="";
		}
		$comment_message = trim(stripinput(censorwords($_POST['comment_message'])));
		$comment_smileys = isset($_POST['disable_smileys']) ? "0" : "1";
		if ($comment_name != "" && $comment_message != "") {
			$result = dbquery("SELECT MAX(comment_datestamp) AS last_comment FROM ".DB_PREFIX."comments WHERE comment_ip='".USER_IP."'");
			if (!iSUPERADMIN || dbrows($result) > 0) {
				$data = dbarray($result);
				if ((time() - $data['last_comment']) < $settings['flood_interval']) {
					$flood = true;
					$result = dbquery("INSERT INTO ".DB_PREFIX."flood_control (flood_ip, flood_timestamp) VALUES ('".USER_IP."', '".time()."')");
					if (dbcount("(flood_ip)", "flood_control", "flood_ip='".USER_IP."'") > 4) {
						if (iMEMBER) $result = dbquery("UPDATE ".DB_PREFIX."users SET user_status='1' WHERE user_id='".$userdata['user_id']."'");
					}
				}
			}			
			$antispam = htmlspecialchars($_POST['antispam']);
			if ($antispam==$_COOKIE['imgcodepage']){			
			if (!$flood) $result = dbquery("INSERT INTO ".DB_PREFIX."comments (comment_item_id, comment_type, comment_name, comment_message, comment_smileys, comment_datestamp, comment_ip) VALUES ('$cid', '$ctype', '$comment_name', '$comment_message', '$comment_smileys', '".time()."', '".USER_IP."')");		
			}
		}
		redirect($clink);
	}

	tablebreak();
	opentable($locale['c100']);
	$result = dbquery(
		"SELECT tcm.*,user_name FROM ".DB_PREFIX."comments tcm
		LEFT JOIN ".DB_PREFIX."users tcu ON tcm.comment_name=tcu.user_id
		WHERE comment_item_id='$cid' AND comment_type='$ctype'
		ORDER BY comment_datestamp ASC"
	);
	if (dbrows($result) != 0) {
		$i = 0;
		echo "<table cellpadding='0' cellspacing='1' width='100%' class='tbl-border'>\n";
		while ($data = dbarray($result)) {
			echo "<tr>\n<td class='".($i% 2==0?"tbl1":"tbl2")."'><span class='comment-name'>\n";
			if ($data['user_name']) {
				echo "<a href='".BASEDIR."profile.php?lookup=".$data['comment_name']."'>".$data['user_name']."</a>";
			} else {
				echo $data['comment_name'];
			}
			if ($data['comment_smileys'] == "1") {
				$comment_message = parsesmileys($data['comment_message']);
			} else {
				$comment_message = $data['comment_message'];
			}
			$comment_message = nl2br(parseubb($comment_message));
			echo "</span>\n<span class='small'>".$locale['041'].showdate("longdate", $data['comment_datestamp'])."</span><br>\n";
			echo $comment_message."</td>\n</tr>\n";
			$i++;
		}
		if (checkrights("C")) echo "<tr>\n<td align='right' class='".($i% 2==0?"tbl1":"tbl2")."'><a href='".ADMIN."comments.php".$aidlink."&ctype=$ctype&cid=$cid'>".$locale['c106']."</a></td>\n</tr>\n";
		echo "</table>\n";
	} else {
		echo $locale['c101']."\n";
	}
	closetable();
	tablebreak();
	opentable($locale['c102']);
	if (iMEMBER || $settings['guestposts'] == "1") {
		echo "<form name='inputform' method='post' action='$clink'>
<table align='center' cellspacing='0' cellpadding='0' class='tbl'>\n";
		if (iGUEST) {
			echo "<tr>
<td>".$locale['c103']."</td>
</tr>
<tr>
<td><input type='text' name='comment_name' maxlength='30' class='textbox' style='width:100%;'></td>
</tr>\n";
		}
		echo "<tr>
<td align='center'><textarea name='comment_message' rows='6' cols='74' class='textbox'></textarea><br>
<input type='button' value='b' class='button' style='font-weight:bold;width:25px;' onClick=\"addText('comment_message', '[b]', '[/b]');\">
<input type='button' value='i' class='button' style='font-style:italic;width:25px;' onClick=\"addText('comment_message', '[i]', '[/i]');\">
<input type='button' value='u' class='button' style='text-decoration:underline;width:25px;' onClick=\"addText('comment_message', '[u]', '[/u]');\">
<input type='button' value='url' class='button' style='width:30px;' onClick=\"addText('comment_message', '[url]', '[/url]');\">
<input type='button' value='mail' class='button' style='width:35px;' onClick=\"addText('comment_message', '[mail]', '[/mail]');\">
<input type='button' value='img' class='button' style='width:30px;' onClick=\"addText('comment_message', '[img]', '[/img]');\">
<input type='button' value='center' class='button' style='width:45px;' onClick=\"addText('comment_message', '[center]', '[/center]');\">
<input type='button' value='small' class='button' style='width:40px;' onClick=\"addText('comment_message', '[small]', '[/small]');\">
<input type='button' value='code' class='button' style='width:40px;' onClick=\"addText('comment_message', '[code]', '
');\">
<input type='button' value='quote' class='button' style='width:45px;' onClick=\"addText('comment_message', '
');\">
<br><br>
".displaysmileys("comment_message")."
</tr>
<tr>
<td align='center'><input type='checkbox' name='disable_smileys' value='1'>".$locale['c107']."<br><br>";
echo "<br>
<img src='".INCLUDES."anti-spam.php'>
<br>
<input type='text' name='antispam' maxlength='5' class='button'><br>";
echo "
<input type='submit' name='post_comment' value='".$locale['c102']."' class='button'></td>
</tr>
</table>
</form>\n";
} else {
echo $locale['c105']."\n";
}
closetable();
}
?>[/code]
anti-spam.php
Код:
<?php
/*---------------------------------------------------+
|Anti Spam Code for Comments in PHP-Fusion
|Edit by Galli from http://web-tourist.net
|Test in PHP-Fusion v6.01.15
+----------------------------------------------------*/
// Code for random choice of text (code by human)
$dyl="5";
function randStr($length) {
$key = "";
$pattern = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for($i=0;$i<$length;$i++) {
$key .= $pattern{rand(0,35)};
}
return $key;
}
//End Code for random choice of text
header("Content-type: image/png");
$text = randStr($dyl);
setcookie("imgcodepage",$text,time()+3600,"/");
$font  = 5;
$width  = ImageFontWidth($font)* strlen($text);
$height = ImageFontHeight($font);
$im = ImageCreate($width,$height);
$x=imagesx($im)-$width ;
$y=imagesy($im)-$height;
$background_color = imagecolorallocate ($im, 242, 242, 242);
$text_color = imagecolorallocate ($im, 0, 0,0);
$trans_color = $background_color;
imagecolortransparent($im, $trans_color);
imagestring ($im, $font, $x, $y,  $text, $text_color);
imagegif($im);
ImageDestroy($im);
?>
 
Galli каза:
И един въпрос от къде да разреша на анонимните да пускат коментари, че не намерих?


Благодаря ти много :) . А за разрешаването за изказване на анонимни се бута админпанел---->Управление на системата ---->Други настройки ---->Разрешава на гостите да се изказват? ( задаваш му да). Ндявам се да съм ти бил полезен
 

Back
Горе