Hi all,
mám formulář(jmeno,email,komentář), ve kterém návštěvník může zanechat svůj comment. Ze začátku bylo vše ok, ale po nějaké době se mi začali přidávat odkazy na porno a co já vim kam ještě. Tak jsem se ptal jak to nejefektivněji vyřešit. Jeden kamarád mi poradil, že mám do toho formuláře přidat prvek s atributem hidden, do něj loupnout nějaký text a před ukládáním kontrolovat zda se ten text odeslal nebo ne, že roboti prý tento prvek, který je hidden ignorují, ale bohužel to nefunguje a nebo to mám blbě. Mohl by mi tedy někdo poradit nějaký jiný a rychlý způsob, jak se zbavit nechtěného bordelu? Předewm díky!
Formulář:
<form method="post" action="funkce/vlozeni_dotazu.php">
<table width="540px" border="0">
<tr>
<td width="45px">Jméno: </td><td width="100px">
<input type="text" name="jmeno"></td>
<td width="30px">Email: </td><td width="365px">
<input type="text" name="email">
<?if($_GET[chyba]==wrongemail) echo "<b class=\"upraveno\">
Zadali jste chybně email.</b>";?></td>
</tr>
<tr>
<td width="45px" valign="top">Dotaz:</td><td colspan="3">
<textarea name="dotaz" cols="56" rows="4"></textarea></td>
</tr>
<tr>
<td><input type="hidden" name="ochrana" value="lol"></td>
<td colspan="2">
<input type="submit" name="tlacitko" value="Přidat dotaz">
</td>
</tr>
</table>
</form>
Uložení dotazu:
Require "spojeni.php";
if(($_POST[jmeno])==false) $_POST[jmeno]="anonym";
if(isset($_POST[ochrana]) and $_POST[ochrana]==="lol") {
if((check_email($_POST[email])==true or $_POST[email]==false) and $_POST[dotaz]!=false){
$dotaz_zprava = MySQL_Query("INSERT INTO
dotazy (vlozeno, jmeno, email, dotaz, priznak)
VALUES (NOW(), '$_POST[jmeno]', '$_POST[email]', '$_POST[dotaz]', 1)");
if(MySQL_Affected_Rows() == 1) {
Header("Location: ../dotazy.php");
}
else {
Header("Location: ../dotazy.php?chyba=cannotwritedatabase");
}
}
else Header("Location: ../dotazy.php?chyba=wrongemail");
}