Pomoc s PHP Antispamom

Programovacie jazyky, rady, poradňa...
.:M4jco:.
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 442
Registrovaný: 01 máj 2007, 13:07
Bydlisko: Bassline lover
Kontaktovať používateľa:

Pomoc s PHP Antispamom

Príspevok od používateľa .:M4jco:. »

Dobrý deň

Na mojom webe sa mi začal rozširovať spam a tak som sa rozhodol tomu zabrániť. Avšak moje znalosti php niesu natolko dobre aby som to dokázal urobiť.

Mám na mysli tento antispam:
http://www.hojko.com/viewtopic.php?p=712498#712498

A konkrétne mám problém s vložením do mojho php kodu. Konkretne sa jedna o toto:

Kód: Vybrať všetko

echo "<form action=\"/$s/$a/\" method=\"post\">

<div><strong>Nick:</strong><br /><input type=\"text\" name=\"nick\" value=\"";
if ($userinfo["login"]=="") { echo (stripslashes($_POST["nick"])); } else { echo ($userinfo["login"]); }
echo "\" style=\"width: 150px;\"";
if ($submit!="" AND $_POST["nick"]=="") { echo " class=\"input-error\""; }
echo " /><br /><strong>$lang_form_text:</strong><br /><textarea name=\"text\" cols=\"\" rows=\"\" style=\"height: 200px; width: 400px;\"";
if ($submit!="" AND $_POST["text"]=="") { echo " class=\"input-error\""; }
echo ">".stripslashes($_POST["text"])."</textarea><br /><input type=\"text\" name=\"web\" value=\"\" style=\"display: none;\" /><input type=\"submit\" name=\"submit\" value=\"$lang_button_save\" /></div>

</form>\n\n";
A problém spočíva v tom, že neviem kde mám potrebný kod k antispamu vložiť. Skúšal som to vložiť rozne, ale ani jedna možnosť nefungovala, tak poprosím nejakého programatora v php aby mi s tým trošku pomohol keby mohol.

Ďakujem :wink:
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Používaš tam niekde aj session?
.:M4jco:.
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 442
Registrovaný: 01 máj 2007, 13:07
Bydlisko: Bassline lover
Kontaktovať používateľa:

Príspevok od používateľa .:M4jco:. »

Nie, session tam nepoužívam.
krasko
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 305
Registrovaný: 10 mar 2008, 5:02

Príspevok od používateľa krasko »

a mas moznost ju pouzit?

tam to mas najlepsie, k tomu nema pristup nik len server
.:M4jco:.
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 442
Registrovaný: 01 máj 2007, 13:07
Bydlisko: Bassline lover
Kontaktovať používateľa:

Príspevok od používateľa .:M4jco:. »

Môžem ju použiť, ale netuším ako an to. Keby sa chce niekomu do toho lepšie pozrieť pribalim ten subor do prílohy
Prílohy
index.rar
(6.86 KiB) 54 stiahnutí
krasko
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 305
Registrovaný: 10 mar 2008, 5:02

Príspevok od používateľa krasko »

Vyborne. Este taka otazka, chces to riesit cez obrazok alebo cez text?
.:M4jco:.
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 442
Registrovaný: 01 máj 2007, 13:07
Bydlisko: Bassline lover
Kontaktovať používateľa:

Príspevok od používateľa .:M4jco:. »

Cez obrazok by to bolo najlepšie podla mňa.
krasko
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 305
Registrovaný: 10 mar 2008, 5:02

Príspevok od používateľa krasko »

chces tam aj pismena ci len cisla? a este kolko ich chces by si mohol spomenut (osobne pouzivam 4 pismena ;))
.:M4jco:.
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 442
Registrovaný: 01 máj 2007, 13:07
Bydlisko: Bassline lover
Kontaktovať používateľa:

Príspevok od používateľa .:M4jco:. »

Stačia štyri, a daj tam len čísla, je to pohodlnejšie :wink:
Inak velmi ti ďakujem že mi pomáhaš s týmto...fakt :wink:
krasko
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 305
Registrovaný: 10 mar 2008, 5:02

Príspevok od používateľa krasko »

takze tu je moj image.php
urcite nie je dokonaly ale mne zatial postacoval :)

Kód: Vybrať všetko

<?php
   session_start();
   $_SESSION['captcha'] = rand(1000, 9999);

   header("Content-type: image/png");
   $text = $_SESSION['captcha'];
   $pismeno = str_split($text);

   //rozmery
   $w = 100;
   $h = 25;
   $obr = imagecreate($w,$h);

   //farbicky
   $white      = ImageColorAllocate($obr, 255, 255, 255);
   $blue       = ImageColorAllocate($obr,   0,   0, 255);
   $red        = ImageColorAllocate($obr, 255,   0,   0);
   $black      = ImageColorAllocate($obr,   0,   0,   0);
   $cer1       = ImageColorAllocate($obr, 112,   0,   0);
   $cer2       = ImageColorAllocate($obr, 173,   0,   0);
   $tmavomodra = ImageColorAllocate($obr,   0, 102, 153);
   $gray       = ImageColorAllocate($obr, 105, 105, 105);
  
   $styl = $white;

   imagesetstyle($obr, $styl);
   imagefilledrectangle($obr, 0, 0, $w, $h, IMG_COLOR_STYLED);
   
   //generovanie nahodnej farby ku kazdemu znaku:
   $farbicky = array('blue', 'red', 'cer1', 'cer2', 'tmavomodra', 'gray');
   $pocet = count($farbicky);
   
   $nahoda1 = rand(0, $pocet-1);
   $nahoda2 = rand(0, $pocet-1);
   $nahoda3 = rand(0, $pocet-1);
   $nahoda4 = rand(0, $pocet-1);
   
   imagestring($obr, rand(3, 5), rand(0, 15), rand(0, 10), $pismeno[0], ${$farbicky[$nahoda1]});
   imagestring($obr, rand(3, 5), rand(25,40), rand(0, 10), $pismeno[1], ${$farbicky[$nahoda2]});
   imagestring($obr, rand(3, 5), rand(50,65), rand(0, 10), $pismeno[2], ${$farbicky[$nahoda3]});
   imagestring($obr, rand(3, 5), rand(75,90), rand(0, 10), $pismeno[3], ${$farbicky[$nahoda4]});

   imagepng($obr);
?>
potom len pred odoslanim daj session_start(); a porovnaj vstup spamfiltra z formulara z premennov $_SESSION['captcha'];

snad to zvladnes :)
.:M4jco:.
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 442
Registrovaný: 01 máj 2007, 13:07
Bydlisko: Bassline lover
Kontaktovať používateľa:

Príspevok od používateľa .:M4jco:. »

Po dvojhodinovej dohode po icq sme prišli na riešenie mojho problému :wink: touto cestou ďakujem kraskovi za ochotu :)
krasko
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 305
Registrovaný: 10 mar 2008, 5:02

Príspevok od používateľa krasko »

...eh dve hodiny, nemusel si ratat aj to, ze som jedol a kukal simpsnov :D
Napísať odpoveď