Autor | Zpráva | ||
---|---|---|---|
pato Profil |
#1 · Zasláno: 4. 8. 2006, 15:08:15
ahoj, potřeboval bych poradit jak udělat jednoduchou ochranu proti spamu
něco na ten způsob jak se opisují ty čísla z generovanýho obrázku děkuju za pomoc |
||
BaTeCzKo Profil |
#2 · Zasláno: 4. 8. 2006, 15:14:34 · Upravil/a: BaTeCzKo
Už jsem to tu jednou psal.
Vygenerování obrázku s kódem (kod.php) Tento skript vytvoří obrázek s čtyřmístným číslem, které je mu předáno metodou get jako parametr n.
Použití na stránce Na stránce s formulářem pro odesílání příspěvků (do knihy apod.) se vytvoří nové pole input a vedle něj se umístí obrázek s kódem, který se má opsat (zdrojový kód obrázku je níže). Také je nutné před vložením obrázku volat php funkci mt_rand tímto stylem:
obrázek
|
||
Timy Profil |
#3 · Zasláno: 4. 8. 2006, 15:41:16
pato
Zkusil bych spíš tohle http://suplik.petnik.cz/funkcni-javasriptova-bariera-na-komentarovy-sp am-qxxq628.html anebo tajdlencto http://pristupnost.nawebu.cz/weblog/blogpost.php?post=107 |
||
pato Profil |
#4 · Zasláno: 4. 8. 2006, 15:49:58
děkuji za rychlou reakci
není mi jasné co pak dál s novým polem input... |
||
Acci Profil |
#5 · Zasláno: 4. 8. 2006, 15:53:22
pato
A pak třeba v PHP budeš testovat:
|
||
pato Profil |
#6 · Zasláno: 4. 8. 2006, 15:55:50
Timy
tak jsem to podle návodu přidal, je nějaká možnost jak ověřit že mi to pracuje správně ?? |
||
BaTeCzKo Profil |
#7 · Zasláno: 4. 8. 2006, 15:55:57
Takto:
stranka:
neco.php:
|
||
Acci Profil |
#8 · Zasláno: 4. 8. 2006, 15:58:03
tak jsem to podle návodu přidal, je nějaká možnost jak ověřit že mi to pracuje správně ??
Jediná možnost je počkat |
||
pato Profil |
#9 · Zasláno: 4. 8. 2006, 16:02:48
tady je celý skript na konci to je, myslíte že je to teda dobře ???
<?php include "include/header.php"; /* --- zobrazení komentářů --- */ if (isset($_GET["id"])) { $id = $_GET["id"]; $result = mysql_query("select nadpis from clanky where id = $id",$db); $myrowx = mysql_fetch_array($result); $nazev_cl = $myrowx["nadpis"]; cr_head($sitename, "Komentáře k článku $nazev_cl"); $result = mysql_query("select id from komentare where id_clanek = $id",$db); $odp_1 = mysql_num_rows($result); if ($odp_1 != "0") { echo "<h2>Komentáře k článku $nazev_cl</h2>\n\n"; echo "<a href=\"article.php?id=$id\">Návrat k článku</a><br/><br/>\n\n"; $vysledek = mysql_query("select datum, jmeno, predmet, email, text from komentare where id_clanek = $id order by id desc",$db); while ($row = mysql_fetch_array($vysledek)) { $datum = $row["datum"]; $jmeno = $row["jmeno"]; $predmet = $row["predmet"]; $email = $row["email"]; $text = $row["text"]; echo "<p class=\"com1\">$predmet - <a href=\"maito:$email\">$jmeno</a></p>\n<p class=\"com2\">$text</p>\n<p class=\"com3\">$datum</p>\n"; } } } /* --- funkce na cenzuru sprostých slov --- */ function censor($censored) { include "include/badwords.php"; $cmask = "<i>[cenzurováno]</i>"; if (is_array($profan)) { reset($profan); while (list(, $sWord) = each($profan)) { if (strstr(strtoupper($censored), strtoupper($sWord))) { if (strtoupper($censored)==strtoupper($sWord)) { $censored=$cmask; } else { $censored = eregi_replace("^$sWord([^a-zA-Z])", "$cmask\\1", $censored); $censored = eregi_replace("([^a-zA-Z])$sWord$", "\\1$cmask", $censored); while(eregi("([^a-zA-Z])($sWord)([^a-zA-Z])", $censored)) $censored = eregi_replace("([^a-zA-Z])($sWord)([^a-zA-Z])", "\\1$cmask\\3", $censored); } } } } return($censored); } /* --- přidání komentáře a zobrazení komentářů --- */ if (isset($_POST["id_clanek"])) { $id = $_POST["id_clanek"]; $jmeno = $_POST["jmeno"]; $email = $_POST["email"]; $predmet = $_POST["predmet"]; $komentar = $_POST["komentar"]; if((!$jmeno) || (!$email) || (!$predmet) || (!$komentar)) { $result = mysql_query("select nadpis from clanky where id = $id",$db); $myrowx = mysql_fetch_array($result); $nazev_cl = $myrowx["nadpis"]; cr_head($sitename, "Komentáře k článku $nazev_cl"); echo '<p>Nevyplnil jste některé údaje ve formuláři:</p><ul>'; if(!$jmeno){ echo "<li>Chybí jméno!</li>"; } if(!$email){ echo "<li>Chybí email!</li>"; } if(!$predmet){ echo "<li>Chybí předmět!</li>"; } if(!$komentar){ echo "<li>Chybí komentář!</li>"; } echo "</ul>"; } else { $komentar = htmlspecialchars($komentar); $komentar = censor($komentar); /* --- kontrola správnosti parametru ID --- */ $result = mysql_query("select nadpis from clanky where id = $id",$db); $odp_1 = mysql_num_rows($result); if ($odp_1 == "1") { $myrowx = mysql_fetch_array($result); $nazev_cl = $myrowx["nadpis"]; cr_head($sitename, "Komentáře k článku $nazev_cl"); /* --- vlo?ení komentáře do databáze --- */ $datum = date("j. m. Y G:i"); $sql = "insert into komentare (id, id_clanek, datum, jmeno, predmet, email, text) values ('','$id','$datum','$jmeno','$predmet','$email','$komentar')"; $result2 = mysql_query($sql); if (!$result2) { echo "<p>Váš komentář nebyl uložen!</p>"; } else { echo "<p>Váš komentář byl uložen!</p>"; } } else { echo "<p>Špatné ID!</p>"; } $result = mysql_query("select id from komentare where id_clanek = $id",$db); $odp_1 = mysql_num_rows($result); if ($odp_1 != "0") { echo "<h2>Komentáře k článku $nazev_cl</h2>\n\n"; echo "<a href=\"article.php?id=$id\">Návrat k článku</a><br/><br/>\n\n"; $vysledek = mysql_query("select datum, jmeno, predmet, email, text from komentare where id_clanek = $id order by id desc",$db); while ($row = mysql_fetch_array($vysledek)) { $datum = $row["datum"]; $jmeno = $row["jmeno"]; $predmet = $row["predmet"]; $email = $row["email"]; $text = $row["text"]; echo "<p class=\"com1\">$predmet - <a href=\"maito:$email\">$jmeno</a></p>\n<p class=\"com2\">$text</p>\n<p class=\"com3\">$datum</p>\n"; } } } } if ($_POST["robot"]*1==6) // pridej prispevek ?> <h4>Přidat komentář</h4> <form method="post" action="comment.php"> <input type="hidden" name="id_clanek" value="<?php echo $id;?>"/> <table class="com4"> <tr> <td> Jméno: </td> <td> <input type="text" class="ramecek" name="jmeno" size="30"/> </td> </tr> <tr> <td> Email: </td> <td> <input type="text" class="ramecek" name="email" size="30"/> </td> </tr> <tr> <td> Předmět: </td> <td> <input type="text" class="ramecek" name="predmet" size="30"/> </td> </tr> <tr> <td> Komentář: </td> <td> <textarea name="komentar" class="ramecek" rows="5" cols="40"></textarea> </td> </tr> </table> <!-- zde jsou normální pole formuláře --> <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> <p><input type="submit" class="ramecek" name="submit" value="Odeslat"/></p> </form> <?php include "include/footer.php"; ?> |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0