21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
xyndl z lesa
Profil *
Zdravím chlapy, jsem začátečník a potřeboval bych poradit jak při registraci vytvořit antispamovou ochranu

např. kolik je 6+6, prostě něco jednoduchého aby se mi na webu nešířili boti .. díky za každou pomoc
mckay
Profil
xyndl z lesa:
Zkus skryté pole vypsané s hodnotou pomocí javascriptu. Nebo potom pár obrázku, které jsou jako příklad. Tedy různé výsledky a pak si otestuj, jestli to co se odešle jako výsledek, patří do skupiny výsledků, které máš přednastavené. Ideální je na to třeba funkce pro zjištění, jestli se vyskytuje v poli prvek s danou hodnotou:
<?php in_array();?>
xyndl z lesa
Profil *
jak jsem psal .. jsem úplný amatér .. kamarád ale něco říkal o tom kolik je 6+6 že je to jednoduché .. nevíte někdo jak se toto dělá ? bude to pro mě jednodušší než javascript

díky
Matess
Profil *
Do formuláře vlož toto:

<p id="spamprotirobotum">Ochrana proti spamu. Napište prosím číslo dvacet-čtyři: <input type="text" name="robot" value="" id="protirobotum"></p>
<script>
/* tento skript vloží do příslušného políčka  */
document.getElementById("protirobotum").value="24";
document.getElementById("spamprotirobotum").style.display = "none";
</script>
xyndl z lesa
Profil *
díky, ale bohužel to nefunguje :( .. nic se nestalo ....

vložil jsem to do registrace.php hned pod heslo a nic se nestalo .. co s tím ? :(
keeehi
Profil
xyndl z lesa:
Ono se nic stát nemá jenom potom v php budeš kontrolovat, zda $_POST["robot"]==24
Toť vše.
lukigod
Profil
já používám toto:
<?php 
     $acko = rand(1,5); //náhodné číslo od 1 do 5
     $becko = rand(1,5); // náhodné číslo od 1 do 5
     $vysledek = $acko+$becko; // do proměnné se uloží výsledek
     $priklad = $acko."+".$becko; // do další proměnné se uloží text který se zobrazí
?>
<label>Spam ochrana: Spočti <?php echo $priklad?></label>
<input type="hidden" name="vysledek" value="<?php echo $vysledek ?>">
<input type="text" size="1" maxlength="2" name="ochrana">


no a pak už ve zpracovávacím skriptu porovnáváš
$_POST["vysledek"] s proměnnou $_POST["ochrana"]
a pokud jsou hodnoty shodné tak je vše v pořádku, else bude chyba..
xyndl z lesa
Profil *
keeehi:
Aha, dobře děkuji,

ještě jedna blbá otázka .. kde to budu kontrolovat ?

a zda s tím máte někdo zkušenosti ? funguje to ?
xyndl z lesa
Profil *
lukigod:

ten tvůj se mi zdá lepší .. jenže .. porovnávání ?? kam to mám dát .. .:(
keeehi
Profil
xyndl z lesa:
budeš to kontrolovat v php scriptu, který ten daný formulář zpracovává
if($_POST["robot"]==24){
    // tady se pokrečuje ve zpracovávání
}
else
{
    // e to nejspíš robot
}
xyndl z lesa
Profil *
keeehi:

díky ale tato ochrana je mi k ničemu .. jde mi také o to aby se nešlo registovat jen po kliknutí na registrovat a aby se museli vyplnit aspoň nějaké údaje .. počkám až odepíše

lukigod

a řekne mi kam mám nakopírovat :

no a pak už ve zpracovávacím skriptu porovnáváš

$_POST["vysledek"] s proměnnou $_POST["ochrana"]
a pokud jsou hodnoty shodné tak je vše v pořádku, else bude chyba..
keeehi
Profil
xyndl z lesa:
Ptal ses na ochranu proti bootům nebo na ochranu proti odeslání prázdného formuláře?
Otázky byla na ochranu proti bootům proto ti bylo razeno toto řešení

ochrana proti odeslání prázdného formuláře: (Nedá se to použít stylem Ctrl+C a CTRL+V)
if(!empty($_POST["jmeno"]) and !empty($_POST["email"]) and !empty($_POST["text"]))
{
    // tady se pokrečuje ve zpracovávání
}
else
{
    echo "Nevyplnili jste všechny údaje.";
}
fajzen
Profil
keeehi:
and nie end ;-)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0