Тази спам защита

eddy

Registered
Е не мога да я направя тая спам защита на коментарите.Този timestamp.

Давам ви код дано някой да може да го вгради тоя timestamp .. и да ми каже в базата данни какво да сложа.

PHP:
<?php
include "config.php"; 
if (isset($_POST['submit'])) {
$avtor = htmlspecialchars(addslashes($_POST['avtor']));
$komentar = htmlspecialchars(addslashes($_POST['komentar'])); 
$data = date("d.F.y / H:i"); 
$ip = $_SERVER['REMOTE_ADDR'];
if ($avtor == NULL || $komentar == NULL) { 
echo "Моля попълни полетата!";
} else {

$sql = "INSERT INTO comments (avtor, komentar, data, ip) VALUES ('$avtor', '$komentar', '$data', '$ip')";
mysql_query("SET NAMES utf8");
mysql_query($sql) or die (mysql_error());
header("LOCATION: galeriq.php?id=$id"); 
}
}
?>

Това е кода ,, другия код вече ми е формата и ваденето от базата дани.
Трябва да се сложи timestamp на минимум 10 сек. тогава да може да пускаш друг коментар.Това е идеята.
 
<?php
include "config.php";

$ip = $_SERVER['REMOTE_ADDR'];
$sq = "INSERT INTO `comments`(`ip`, `timestamp`) VALUES('{$ip}', 'NOW()')";
mysql_query($sq) or die (mysql_error());
$qw = mysql_query("SELECT * FROM `comments` WHERE `ip` = '{$_SERVER['REMOTE_ADDR']}'");
$roww = mysql_fetch_assoc($qw);
if(time()+5 <= $roww['timestamp']){
if (isset($_POST['submit'])) {
}
else{
}
$avtor = htmlspecialchars(addslashes($_POST['avtor']));
$komentar = htmlspecialchars(addslashes($_POST['komentar']));
$data = date("d.F.y / H:i");
if ($avtor == NULL || $komentar == NULL) {
echo "Моля попълни полетата!"; //И ако са празни извеждаме грешка!
} else {
$sql = "INSERT INTO comments (avtor, komentar, data, ip, timestamp) VALUES ('$avtor', '$komentar', '$data', $ip)";
mysql_query("SET NAMES utf8");
mysql_query($sql) or die (mysql_error());
header("LOCATION: galeriq.php?id=$id");
}
}
?>
[/php]
 
PHP:
<?php
include "config.php"; 
$i = 0;
if (isset($_POST['submit']))
{
$i++;
if ($i == 1)
{
$avtor = htmlspecialchars(addslashes($_POST['avtor']));
$komentar = htmlspecialchars(addslashes($_POST['komentar'])); 
$data = date("d.F.y / H:i"); 
$ip = $_SERVER['REMOTE_ADDR'];
if ($avtor == NULL || $komentar == NULL)
{ 
echo "Моля попълни полетата!";
}
else
{
$i = 0;
$sql = "INSERT INTO comments (avtor, komentar, data, ip) VALUES ('$avtor', '$komentar', '$data', '$ip')";
mysql_query("SET NAMES utf8");
mysql_query($sql) or die (mysql_error());
header("LOCATION: galeriq.php?id=$id"); 
}
}
else
{
echo "error";
}
}
?>
 
По начина на iCreatives не ми вади нищо като напиша коментар .. само " : " ми вади.А в базата на "timestamp" не ми се записва нищо ,, само 0 ми седи.
timestamp съм го сложил на "int" в базата данни.


По начина на проба не се случва нищо..Това " $i++ " би трябвало да значи че може само по 1 коментар на един път , само първия път ми отчита като е натиснат бутона ?
 

Back
Горе