как да огранича изпращането през 2 мин.

burkoff

Registered
Здравейте
имам форма и фаил за изпращането на маил()
но искам след като е изптил някои примерно картинка от това IP да може пак да се прати чак след 2 минути за да не злоупотребяват
ето ми го и файла с който пращам
Код:
<? 
#send.php

$email = "guest@burkoff.org";
$sname = $_REQUEST[name] ; 
$smail = $_REQUEST['smail'] ; 
$message ="moia tekst "; 
 
$subject = "Kartinka ot burkoff.org"; 

mail( $smail, $subject, 
$message , "From: $email" ); 
header( "Location: http://burkoff.org/neshto si/" ); 
?>
 

mizarck

Registered
burkoff каза:
Здравейте
имам форма и фаил за изпращането на маил()
но искам след като е изптил някои примерно картинка от това IP да може пак да се прати чак след 2 минути за да не злоупотребяват

ако правилно съм те разбрал ти изкаш на 2 мин да може да се праща файл от дадено ip ако е така то тогава ще трябва да записваш ip-то и часа в файл или база данни
и после следва проверката
трябва да вземеш ip-то и да го сравниш с това което е записано ако има съвпадения ще трябва да извадеш часа към него ще прибавиш 2 мин и ще го сравниш с сегашния час и ако сегашния час е равен или по голям от записания го пускаш да изпраща а ако не него пускаш
 

Admin

Registered
burkoff каза:
Здравейте
имам форма и фаил за изпращането на маил()
но искам след като е изптил някои примерно картинка от това IP да може пак да се прати чак след 2 минути за да не злоупотребяват


Правиш си една таблица с точно един ред и 3 полета.
Полетата са id | mail_ip | mail_min

Правиш един запис където id =1 а останалите може и да не ги попълваш.
Повече записи така и няма да има в тази таблица.
Всичко ще се върти около този ред.

<?

$minuta=date("d.m.y.H.i");
$ipsend=getenv("REMOTE_ADDR");

mysql_connect(localhost,$dbuser,$dbpasswd);
@mysql_select_db($dbname) or die( "Unable to select database");
$chars="SET CHARACTER SET cp1251";mysql_query($chars);
$query="SELECT * from table where mail_ip='$ipsend' and mail_min='$minuta'";
$result=mysql_query($query);
$num=mysql_num_rows($result);
if ($num>0)
{echo "
Не можете да пуснете съобщение,<br/>
толкова скоро след предишното.<br/>
Моля изчакайте и опитайте<br/>
отново след малко.<br/>".$footer;
exit;}
else
{
$query="UPDATE table SET mail_ip='$ipsend',mail_min='$minuta' where mail_id='1'";
mysql_query($query);
}

// тук следва пращането на email-a

?>


С две думи да обясня.
Когато някой праща писмо кода ще провери този ред и дали неговия
ip го няма там и ако го има дали и минутата съвпада.
Ако съвпадат и ИП адреса и минутата ще му казва да изчака и да опита след малко.

Този код трудно се заобикаля точно, защото е много простичък.

Може да ти пратят безброй съобщения но само ако се редуват правилно
( един след друг) 2 или повече ИП адреса.

Може да се усложни но не виждам смисъл.
Ако има въпроси питай.
 

burkoff

Registered
готино е малко ме обурка но .. ще видим ;)
знамчи аз примерно имам картичка и си я пратил на познат не икам да може пак да се пати картичка в близките 2 мин без значение сащата или друга ;)
 

Admin

Registered
burkoff каза:
готино е малко ме обурка но .. ще видим ;)
знамчи аз примерно имам картичка и си я пратил на познат не икам да може пак да се пати картичка в близките 2 мин без значение сащата или друга ;)

Това е кода.
Само, че дето не може да се изпрати същата минута а не през 2 или 3.

Направи таблицата в базата данни и направи един запис в нея с id 1.
Пробвай и кажи ако имаш затруднения.
 

burkoff

Registered
май не работи
сложих си кода за изпращане след това

else
{
$query="UPDATE table SET mail_ip='$ipsend',mail_min='$minuta' where mail_id='1'";
mysql_query($query);

тук ми е кода

}
?>

имам таблиза с 1 запис ид ми е 1 и другите са празни ;(
 

burkoff

Registered
мерси много оправих се
грешката е при мен ;) нали ми написа да напрая id|mail_ip|mail_min

a в ъпдейта е mail_id
 

Admin

Registered
Аз съм виновен...

else
{
$query="UPDATE table SET mail_ip='$ipsend',mail_min='$minuta' where id='1'";
mysql_query($query);

тук ми е кода

}
?>


направи mail_id да е само id
 

Горе