Специалист
Регистрация: 18.01.2009
Сообщений: 169
|
Защита от спама
Ребята програмисты кодеры, подскажите пожалуйста. Имеется гостевая книга, никакой защиты от спама нет, собсно вот она
PHP код:
<?php
if (!isset($_POST['add_mess'])){
$warning = "";
session_register("warning");
}
elseif (isset($_POST['add_mess'])){
if ($_POST['name'] == "" || $_POST['email'] == "" || $_POST['message'] == ""){
$warning = $warning1;
session_register("warning");
}
elseif ($_POST['name'] != "" && $_POST['email'] != "" && $_POST['message'] != ""){
if (strlen($_POST['name']) > 30 || strlen($_POST['email']) > 40 || strlen($_POST['home']) > 40 || strlen($_POST['icq']) > 11 || strlen($_POST['message'] > 500)){
if (strlen($_POST['name']) > 30){
$warning1 = $warning2;
}
if (strlen($_POST['email']) > 40){
$warning2 = $warning3;
}
if (strlen($_POST['home']) > 40){
$warning3 = $warning4;
}
if (strlen($_POST['icq']) > 11){
$warning4 = $warning5;
}
if (strlen($_POST['message'] > 500)){
$warning5 = $warning6;
}
@$warning = "<center>".$warning1.$warning2.$warning3.$warning4.$warning5."</center>";
session_register("warning");
}
elseif (strlen($_POST['name']) <= 30 && strlen($_POST['email']) <= 40 && strlen($_POST['home']) <= 40 && strlen($_POST['icq']) <= 11 && strlen($_POST['message'] <= 500)){
if (!eregi('^[a-zA-Z0-9\-\.]+\@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$',$_POST['email'])){
$warning = $warning7;
session_register("warning");
}
elseif (eregi('^[a-zA-Z0-9\-\.]+\@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$',$_POST['email'])){
if (!eregi('^[a-zA-Z0-9\-\.]+\.[a-zA-Z\.]+$',$_POST['home'])){
$warning = $warning8;
session_register("warning");
}
elseif (eregi('^[a-zA-Z0-9\-\.]+\.[a-zA-Z\.]+$',$_POST['home'])){
if (!eregi('http://',$_POST['home'])){
$_POST['home'] = "http://".$_POST['home'];
}
}
if (!eregi('^[0-9\-]',$_POST['icq'])){
$warning = $warning9;
session_register("warning");
}
if (eregi('\-',$_POST['icq'])){
$_POST['icq'] = str_replace("-","",$_POST['icq']);
}
$ip = $_SERVER["REMOTE_ADDR"];
$f = file($mess_file);
$f = array_reverse($f);
$t = time();
$lines = count($f);
if ($lines > 0){
for ($e = 0; $e < $lines; $e++){
$var = explode ("::",$f[$e]);
if($var[6]==$ip){
if (($t-$var[7])<$intt){
$vv = 1;
if ($int < 1){
$set = $int * 60;
$word = $seconds;
}
elseif ($int > 1){
$set = $int;
$word = $minutes;
}
elseif ($int == 1){
$set = $int;
$word = $minutes2;
}
$warning = $warning10;
session_register("warning");
}
}
}
}
if (!isset($vv)){
$name_t = htmlspecialchars($_POST['name']);
$email_t = htmlspecialchars($_POST['email']);
$home_t = htmlspecialchars($_POST['home']);
$icq_t = htmlspecialchars($_POST['icq']);
$message_t = htmlspecialchars($_POST['message']);
$date_t = date("H:i:s d-m-Y");
$time = time();
$data = $name_t."::".$email_t."::".$home_t."::".$icq_t."::".$message_t."::".$date_t."::".$ip."::".$time."\n";
$fp = fopen($mess_file,"a");
fwrite($fp,$data);
$warning = $warning11;
session_register("warning");
}
}
}
}
}
$file = file("templates/".$temp."/form.php");
$file1 = count($file);
for ($i = 0;$i < $file1;$i++){
$file[$i] = str_replace("%top_text%",$top_text,$file[$i]);
$file[$i] = str_replace("%name%",$name,$file[$i]);
$file[$i] = str_replace("%email%",$email,$file[$i]);
$file[$i] = str_replace("%icq%",$icq,$file[$i]);
$file[$i] = str_replace("%home%",$home,$file[$i]);
$file[$i] = str_replace("%not_than%",$not_than,$file[$i]);
$file[$i] = str_replace("%not_than2%",$not_than2,$file[$i]);
$file[$i] = str_replace("%not_than3%",$not_than3,$file[$i]);
$file[$i] = str_replace("%not_than4%",$not_than4,$file[$i]);
$file[$i] = str_replace("%message%",$message,$file[$i]);
$file[$i] = str_replace("%send%",$send,$file[$i]);
$file[$i] = str_replace("%warning%",$warning,$file[$i]);
$file[$i] = str_replace("%cool%","<a href=\"javascript:insertsmile('[:cool:]')\">".$smile_cool."</a>",$file[$i]);
$file[$i] = str_replace("%yo%","<a href=\"javascript:insertsmile('[:yo:]')\">".$smile_yo."</a>",$file[$i]);
$file[$i] = str_replace("%big%","<a href=\"javascript:insertsmile('[:big:]')\">".$smile_big."</a>",$file[$i]);
$file[$i] = str_replace("%dancin%","<a href=\"javascript:insertsmile('[:dancin:]')\">".$smile_dancin."</a>",$file[$i]);
$file[$i] = str_replace("%fu%","<a href=\"javascript:insertsmile('[:fu:]')\">".$smile_fu."</a>",$file[$i]);
$file[$i] = str_replace("%ok%","<a href=\"javascript:insertsmile('[:ok:]')\">".$smile_ok."</a>",$file[$i]);
$file[$i] = str_replace("%shit%","<a href=\"javascript:insertsmile('[:shit:]')\">".$smile_shit."</a>",$file[$i]);
$file[$i] = str_replace("%nono%","<a href=\"javascript:insertsmile('[:nono:]')\">".$smile_nono."</a>",$file[$i]);
echo $file[$i];
}
//НАЧАЛО ВЫВОДА ЗАПИСЕЙ
$ffile3 = file("messages.dat");
$ffile3 = array_reverse($ffile3);
$ffile4 = count($ffile3);
if ($ffile4 == 0){
}
elseif ($ffile4 > 0){
if ($ffile4 <= $per_page){
$pag_col = 1;
}
elseif ($ffile4 >$per_page){
$pag_col = ceil($ffile4/$per_page);
$ee = ($pag_col*$per_page)-$ffile4;
}
if (!isset($_GET['pagen'])){
$page = 1*$per_page;
}
elseif (isset($_GET['pagen'])){
$page = $_GET['pagen']*$per_page;
if ($_GET['pagen'] > $pag_col){
$_GET['pagen'] = 1;
@header("Location:index.php?pagen=1");
}
}
if (!isset($_GET['pagen'])) $_GET['pagen'] = 1;
for ($ii=($_GET['pagen']-1)*$per_page; $ii<=(($_GET['pagen']*$per_page<$ffile4) ? $_GET['pagen']*$per_page-1: $ffile4-1);$ii++) {
@list($_1,$_2,$_3,$_4,$_5,$_6) = explode("::",$ffile3[$ii]);
$ffile = file("templates/".$temp."/mess.html");
for ($iii = 0;$iii < count ($ffile);$iii++){
@$ffile[$iii] = str_replace("%mess_from%",$mess_from,$ffile[$iii]);
@$ffile[$iii] = str_replace("%name%","<b>".$_1."</b>",$ffile[$iii]);
@$ffile[$iii] = str_replace("%message%",$_5,$ffile[$iii]);
@$ffile[$iii] = str_replace("[:cool:]",$smile_cool,$ffile[$iii]);
@$ffile[$iii] = str_replace("[:yo:]",$smile_yo,$ffile[$iii]);
@$ffile[$iii] = str_replace("[:fu:]",$smile_fu,$ffile[$iii]);
@$ffile[$iii] = str_replace("[:shit:]",$smile_shit,$ffile[$iii]);
@$ffile[$iii] = str_replace("[:big:]",$smile_big,$ffile[$iii]);
@$ffile[$iii] = str_replace("[:dancin:]",$smile_dancin,$ffile[$iii]);
@$ffile[$iii] = str_replace("[:ok:]",$smile_ok,$ffile[$iii]);
@$ffile[$iii] = str_replace("[:nono:]",$smile_nono,$ffile[$iii]);
@$ffile[$iii] = str_replace("%copyright%","<a href=\"http://www.creativs.ru/\" target=\"_blank\">".$copyright."</a>",$ffile[$iii]);
@$ffile[$iii] = str_replace("%home%","<a href=\"".$_3."\" target=\"_blank\">".$home_img."</a>",$ffile[$iii]);
@$ffile[$iii] = str_replace("%email%","<a href=\"mailto:".$_2."\">".$mail_img."</a>",$ffile[$iii]);
@$ffile[$iii] = str_replace("%icq%","<a href=\"http://www.icq.com/whitepages/about_me.php?uin=".$_4."\" target=\"_blank\">".$icq_img."</a>",$ffile[$iii]);
@$ffile[$iii] = str_replace("%added%",$added,$ffile[$iii]);
@$ffile[$iii] = str_replace("%date%",$_6,$ffile[$iii]);
echo $ffile[$iii];
}
}
//НАЧАЛО ВЫВОДА НАВИГАЦИИ ПО СТРАНИЦАМ
if (!isset($_GET['pagen']) || $_GET['pagen'] == 1){
$nn = 1;
}
elseif (isset($_GET['pagen']) && $_GET['pagen'] > 1){
$nn = $_GET['pagen']-1;
}
if (!isset($_GET['pagen'])){
$pp = 2;
}
elseif(isset($_GET['pagen'])){
$pp = $_GET['pagen']+1;
if ($pp > $pag_col){
$pp = $pag_col;
}
}
echo $pages_text;
echo "<table><tr>";
if ($pag_col > 1){
echo"
<td align=\"right\" valign=\"center\"><a href=\"index.php?pagen=1\"><<</a>
<a href=\"index.php?pagen=".$nn."\"><</a> </td>";
}
echo "<td align=\"center\" valign=\"top\">";
for ($p = 0;$p < $pag_col;$p++){
if (($p % 20) == 0) {
echo "<br>";
}
$n = $p+1;
echo "<a href=\"index.php?pagen=".$n."\">[".$n."]</a> ";
}
echo "</td>";
if ($pag_col > 1){
echo"<td align=\"left\" valign=\"center\"><a href=\"index.php?pagen=".$pp."\">></a>
<a href=\"index.php?pagen=".$pag_col."\">>></a></td>";
}
echo "</tr>
</table>";
echo "</center>";
}
if ($pag_col == 1 && $_GET['pagen'] > 1){
echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"0;url=index.php\">";
}
?>
форма ввода сообщения
PHP код:
<table bgcolor="white" width="638" height="203" align="center" cellspacing="1" cellpadding="1">
<tr>
<td bgcolor="white" width="632" height="199">
<table width="604" height="197" align="center" cellpadding="1">
<form action="" method="post" name="form">
<tr>
<td colspan="3" align="center" valign="top"></td>
</tr>
<tr>
<td width="95" valign="top">%name%</td>
<td width="352" valign="top"><input type="text" id="name*" name="name" size="30" maxlenght="30"></td><td width="141" valign="top"> </td>
</tr>
<tr>
<td valign="top">%email%</td><td valign="top"><input type="text" id="email*" name="email" size="30" maxlenght="40"></td><td valign="top"> </td>
</tr>
<tr>
<td colspan="3" valign="top"></td>
</tr>
<tr>
<td>%message%</td><td><textarea name="message" cols="63" rows="5"></textarea></td><td valign="top" rowspan="2"><br>
</td>
</tr>
<tr>
<td height="26" colspan="3" align="center">
<input type="submit" name="add_mess" value="%send%"></td></tr>
<tr>
<td height="20" colspan="2" align="center">%warning%</td>
</tr>
</form>
</table>
</td>
</tr>
</table>
Каким боком тут можно подключить капчу или иной способ защиты от спама?
|