Autor Zpráva
Stanny
Profil *
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 *
Co na tom nefunguje?
koudi
Profil
A kontroluješ to pak taky na serveru?
WendaDostalek
Profil *
je dulezite mit na strance bookpp_add.php podminku

if ($_POST["robot"]1==6) {

skript pro ukladani do databaze/souboru

}
WendaDostalek
Profil *
if ($_POST["robot"]==6)
Stanny
Profil *
Tak jsem tam pridal kontrolu na serveru a uvidime.

Jinak dik za pomoc
koudi
Profil
Tak jsem tam pridal kontrolu na serveru
To brzo :)
France
Profil *
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.
Honza Hučín
Profil
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
}
Toto téma je uzamčeno. Odpověď nelze zaslat.

0