Autor | Zpráva | ||
---|---|---|---|
Stanny Profil * |
#1 · Zasláno: 23. 8. 2006, 12:45:48
mam problem se spamem ve GB.
Posilam kod celeho formulare, vcera jsem spustil JS ochranu ale nepomohlo. <form name="formular" id="formular-pridej" action="bookpp_add.php" method="post" onsubmit="return validate(this)"> <fieldset> <legend>Vyplňte formulář</legend> <label class="pridej-gb" for="jmeno">Jméno:</label><br> <input class="input-pridej" name="jmeno" size="15" type="text"><br> <label class="pridej-gb" for="mail">Email:</label><br> <input class="input-pridej" name="mail" size="15" type="text"><br> <label class="pridej-gb" for="text-vzkazu">Text vzkazu:</label><br> <textarea name="vzkaz" cols="30" rows="4" class="textarea-pridej"></textarea> <br> <p style="display: none;" id="spamprotirobotum"> Ochrana proti spamu. Kolik je dvakrát tři? <input name="robot" value="" id="protirobotum" type="text"> </p> <script> /* tento skript vloží číslici do příslušného políčka automaticky */ document.getElementById("protirobotum").value="6"; document.getElementById("spamprotirobotum").style.display = "none"; </script> <input class="button" value="Přidej vzkaz" type="submit"> <input class="button" value="Vymazat" type="reset"> </fieldset> </form> |
||
WendaDostalek Profil * |
#2 · Zasláno: 23. 8. 2006, 12:46:37
Co na tom nefunguje?
|
||
koudi Profil |
#3 · Zasláno: 23. 8. 2006, 12:47:46
A kontroluješ to pak taky na serveru?
|
||
WendaDostalek Profil * |
#4 · Zasláno: 23. 8. 2006, 12:55:31
je dulezite mit na strance bookpp_add.php podminku
if ($_POST["robot"]1==6) { skript pro ukladani do databaze/souboru } |
||
WendaDostalek Profil * |
#5 · Zasláno: 23. 8. 2006, 12:56:09
if ($_POST["robot"]==6)
|
||
Stanny Profil * |
#6 · Zasláno: 23. 8. 2006, 13:06:09
Tak jsem tam pridal kontrolu na serveru a uvidime.
Jinak dik za pomoc |
||
koudi Profil |
#7 · Zasláno: 23. 8. 2006, 13:14:51
Tak jsem tam pridal kontrolu na serveru
To brzo :) |
||
France Profil * |
#8 · Zasláno: 24. 8. 2006, 11:59:29
Tak opet nefunguje, posilam kod
Soubor index <div id="stred"> <h2>Kniha návštěv</h2> <p>Budeme rádi za každý Váš přispěvek do navštěvní knihy. </p> <div id="gb"> <form name="formular" id="formular-pridej" action="bookpp_add.php" method="post" onsubmit="return validate(this)"> <fieldset> <legend>Vyplňte formulář</legend> <label class="pridej-gb" for="jmeno">Jméno:</label><br /> <input type="text" class="input-pridej" name="jmeno" size="15" /><br /> <label class="pridej-gb" for="mail">Email:</label><br /> <input type="text" class="input-pridej" name="mail" size="15" /><br /> <label class="pridej-gb" for="text-vzkazu">Text vzkazu:</label><br /> <textarea name="vzkaz" cols="30" rows="4" class="textarea-pridej"></textarea> <br /> <p id="spamprotirobotum"> Ochrana proti spamu. Kolik je dvakrát tři? <input type="text" name="robot" value="" id="protirobotum"> </p> <script> /* tento skript vloží číslici do příslušného políčka automaticky */ document.getElementById("protirobotum").value="6"; document.getElementById("spamprotirobotum").style.display = "none"; </script> <input type="submit" class="button" value="Přidej vzkaz" /> <input type="reset" class="button" value="Vymazat" /> </fieldset> </form> <br /> <? include ('./bookpp_option.php'); $tabulka = "book"; // nazev tabulky $dotaz = "SELECT * FROM $tabulka ORDER BY id DESC"; $vysledek = mysql_query($dotaz) or die("Error: DB show! book.php"); $pocet = mysql_NumRows($vysledek);if ($pocet>$pocetzprav) $pocet=$pocetzprav; for($i=0; $i<$pocet; $i++): $id = mysql_Result($vysledek, $i, "id"); $datum = mysql_Result($vysledek, $i, "datum"); $jmeno = mysql_Result($vysledek, $i, "jmeno"); $mail = mysql_Result($vysledek, $i, "mail"); $icq = mysql_Result($vysledek, $i, "icq"); $www = mysql_Result($vysledek, $i, "www"); $ip = mysql_Result($vysledek, $i, "ip"); $vzkaz = mysql_Result($vysledek, $i, "vzkaz"); $datum = EReg_Replace("([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})", "\\3.\\2.\\1 \\4:\\5", $datum); $mail = Ereg_Replace("@", "\@" , $mail); $mail = ($mail)?'<span class="mail">Mail:</span><a class="gb-text" href="mailto:'.$mail.'">'.$mail.'</a>':''; $icq = ($icq)?'<a href="http://web.icq.com/wwp?Uin='.$icq.'">icq</a>':''; $www = ($www)?'<a href="'.$www.'">www</a>':''; $s=$mail.(($mail!="")?" ":"").$icq.(($icq!="")?" ":"").$www; if ($s!='') $s=' ('.$s.')'; $vzkaz=NL2BR(HTMLSpecialChars($vzkaz)); $text='' .'<div class="gb-text">' .'<p><span class="user">Od:</span>'.$jmeno.' '.$mail.'</p>' .'<p class="datum"><span>Posláno v</span> '.$datum.'</p>' .'<div class="zprava-text"><p>'.$vzkaz.'</p></div>' .'</div>'; echo $text; endfor; mysql_Close(); ?> </div> Soubor bookpp_add.php <? ob_start(); include ('./bookpp_option.php'); if(count($HTTP_POST_VARS)) { $jmeno = $_POST['jmeno']; $www = $_POST['www']; $mail = $_POST['mail']; $icq = $_POST['icq']; $vzkaz = $_POST['vzkaz']; } $chyba=''; /* Ziskani datumu */ $datum=Date("Y-m-d H:i:s"); if ($_POST["robot"]*1==6) // pridej prispevek /* ziskani IP */ if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $explode_ip = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $ip = $explode_ip[0]; } else { $ip = $_SERVER['REMOTE_ADDR']; } /* Kontrola */ $jmeno = Ereg_Replace("[^a-zA-Z0-9]", "" , $jmeno); if ( $www!="" && !EReg("http://(.*)", $www) ) $www = "http://".$www; if ( !EReg("^http:\/\/[[:alnum:]]+([-_\.]?[[:alnum:]])*\.[[:alpha:]]{2,4}(\ /{1}[-_~&=\?\.a-z0-9]*)*$", $www) ) $www=""; // if ( $mail!="" && !EReg("^[a-zA-Z0-9_+-]+(\.[a-zA-Z0-9_+-]+)*@((([a-zA-Z0-9_-]+\.)+[a-zA -Z0-9]{2,})|(([0-9]{1,3 }\.){3}[[0-9]{1,3}))$", $mail) ) $mail=""; if ( $mail!="" && !EReg("@", $mail) ) $mail=""; $mail = Ereg_Replace("@", "\@" , $mail); if ( $icq!="" && !EReg("^[0-9]{1,10}$", $icq) ) $icq=""; if ( $ip!="" && !EReg("^([0-9]{1,3}.){3}[0-9]{1,3}$", $ip) ) $ip=""; $vzkaz=addslashes($vzkaz); $vzkaz=HTMLSpecialChars($vzkaz); /* kontrola, zda neni IP blokovane */ $tabulka = "book_banned"; $dotaz = "SELECT * FROM $tabulka WHERE banip='$ip'"; $vysledek= mysql_query($dotaz) or die("Error: DB banip! (bookpp_add.php): ".mysql_error()); if(mysql_NumRows($vysledek)!=1) { /* vlozeni zaznamu do databaze */ if ($jmeno!="" && $vzkaz!="") { $tabulka = "book"; $dotaz = "INSERT INTO $tabulka VALUES ('$id','$datum','$jmeno','$mail','$icq','$www','$ip','$vzkaz')"; mysql_query($dotaz) or die("Error: DB pridat! (bookpp_add.php): ".mysql_error()); $chyba.= "| Pridano "; } else $chyba.= "| Nepridano! Jmeno nebo Vzkaz = \"\" "; } else $chyba.= "| Banovane ip! "; mysql_Close(); Header("Location: index.php?text=".$chyba); ob_end_flush(); ?> Porad to nefunguje, mam neco asi spatne, jsem tercem robotu, za den me se odeslalo asi 15 spamu. |
||
Časová prodleva: 4 dny
|
|||
Honza Hučín Profil |
#9 · Zasláno: 28. 8. 2006, 10:30:22
No já bych řekl, že to
if ($_POST["robot"]*1==6) musí obalovat celé přidání příspěvku. Jinými slovy všechno, co se vztahuje k přidání příspěvku, se musí dát do složených závorek. Tedy: if ($_POST["robot"]*1==6) { //cele pridani prispevku } |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0