[ djdmx @ 21.12.2006. 23:58 ] @
Pozdrav svima!
Imam pitanje u vezi zabrane pomoću ip adrese. Naime imam kontakt formu na svojoj web stranici ali često mi se dogodi da osobe kad pošalju poruku više puta pošalju istu makar im javi da su poslali. Ta kontakt forma služi za odgovaranje na kviz koji imam na svojoj stranici te mnogi koji krivo odgovore pokušaju poslati novi e-mail te tako mi šalju cijelo čudo duplih poruka.
Moje pitanje je da li se kako može dodati koji red u tu form2mail.php datoteku ili se može dodati koji red na tu moju stranicu da zabrani onima koji imaju istu ip adresu ponovno slanje. To slično možemo vidjeti kod raznih upitnika (poll) pa me zato zanima kako to se može riješiti. Ako netko želi, mogu mu poslati tu datoteku form2mail.php pa da mi prouči. Ovo mi je stvarno bitno!
[ kelja @ 22.12.2006. 00:53 ] @
Mozes to spreciti koriscenjem sesija i/ili kukija...
[ Nemanja Avramović @ 22.12.2006. 11:32 ] @
$_SERVER['REMOTE_ADDR'] - tu stoji korisnička IP
note: REMOTE_ADDR does contain the 'real' ip address (maybe of the proxy server but it cannot be faked as easy as X_FORWARDED_FOR)

Kao što reče kelja - pomoću kukija ili sesija možeš odraditi to što želiš.
[ glavince @ 22.12.2006. 12:08 ] @
I ja sam imao jednom slican problem.
Postavio sam cookie, ali zlikovci su poceli iskljucivati cookie na browsweima.
Ako iskljucis cookie na browseru, ne rade ni sesije.
Problem sam resio tako sto sam postavio brojac na sesije $_SESSION['broj_ses'] += 1 i ako $_SESSION['broj_ses'] je recimo 1 onda dajes poruku "da bi ste ucestvovali u kvizu morate ENABLE COOKIE", ako ne postavis cookie i njime odlucujes za koliko vremena neko moze ponovo da odgovara.
[ Jezdimir Lončar @ 22.12.2006. 23:17 ] @
Evo ti primjer jedne banning skripte (nisam je probao, mislim da radi) - sad sam je pisao ...
Code:

<?php
mysql_connect("","","");
mysql_select_db("");
function banip($ips = array("ip1"=>$_SERVER['REMOTE_ADDR'])) {
if(isset($ips)&&gettype($ip)!="Array") {
return false;
die("$ip nije array!")
}
foreach($ips as $ip) {
mysql_query("INSERT INTO banned VALUE(null,'".$ip."');");
setcookie("banned",$ip,time()+777600000 ,"/","",0);
}
}
function checkisbanned($ip=$_SERVER['REMOTE_ADDR']) {
if($ip!="") {
$q = mysql_query("SELECT * FROM banned WHERE ip='".$ip."'");
$br = mysql_num_rows($q);
if($br>0) {
return true;
}
else {
return false;
}
}
else {
if(isset($_COOKIE['banned'])) {
return true;
}
else {
return false;
}
}
?>

i sql file...
Code:

CREATE TABLE banned(
id INT NOT NULL auto_increment,
ip VARCHAR(100) NOT NULL default "0.0.0.0",
PRIMARY KEY(id)
);


[Ovu poruku je menjao Neohacker dana 23.12.2006. u 16:02 GMT+1]