Antispam v PHP

Programovacie jazyky, rady, poradňa...
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Antispam v PHP

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

Ahoj
Mam problém s antispamom, nejak ho neviem nakódiť
Potrebujem riadok, ktorý mi vygeneruje 2 náhodne čísla (1 alebo 2 ciferné)
Prvé číslo sa mi uloží do premennej $prve_cislo , a druhe do $druhe_cislo ...
Fungovalo by to na príncipe formulára, kde by vyžadovalo súčet tých dvoch čísiel. Bol by tam jeden input (text) a jeden submit.
Ak by bolo teda prvé vygenerované číslo 2 a druhé 10, užívateľ by zadal 12, napísalo by mu niečo ako "kód platný"
v opačnom prípade "kód neplatný"...
vďaka[/code]
TGiJack
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 419
Registrovaný: 30 nov 2006, 19:37
Bydlisko: NO
Kontaktovať používateľa:

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

tak to mas jednoduche vztvoris si jeden subor napriklad

priklad.php

Kód: Vybrať všetko

<? 
session_start(); 

Header ("Content-type: image/jpeg"); 
$obrazok = ImageCreate (80, 25); 
$a = substr(rand(1,10),0,5); 
$b = substr(rand(1,10),0,5); 

$_SESSION['c'] = $a + $b; 
$farba_podkladu = ImageColorAllocate ($obrazok, rand(0,255), rand(0,255), rand(0,255)); 
$biela = ImageColorAllocate ($obrazok, rand(0,255), rand(0,255), rand(0,255)); 
ImageString ($obrazok, 5, 5, 5,  "$a + $b=", $biela); 
ImageJpeg ($obrazok); 
Imagedestroy($obrazok); 
?> 

a druhy ako

kontrola.php

Kód: Vybrať všetko

<?php 
// samotna kontrola ci je vysledok spravny 
session_start(); 
$c = $_SESSION['c']; 
if (isset($_POST['ok'])) { 
   if ($c == $_POST['vysledok']) { 
      $res = "Spravne :-D"; 
   }else { 
      $res = "Zle ;-(";} 
   } 
?> 

<!-- HTML KOD --> 

<img src="priklad.php" /> <br /> 
Napis vysledok prikladu: <br /> 
<form method="post" action="#"> 
<input type="text" name="vysledok"/> 
<input type="submit" name="ok" value="Potvrd"/> <br /> 
</form> 
<?php if (isset($_POST['ok'])) { echo $res; } ?> 


tak tu mas taky suuuper jednoduchy priklad ale ak sa stym pohras tak by si mohol mat z toho priklad ktory by si aj riesil 5 minut hadam pomoze ak by nieco tak napis

PS: st7mi farbami sa treba pohrat a zvolit nejake hranice lebo to niekedy vygeneruje uplne necitatelny priklad ale tak to uz je natebe ..mozes si tam vlozit aj vlastne pozadie pismo pootacat a podobne ..musis sa stym len pohrat ..dokonca aj font by sa tam mal dat vlastn7 aky len ches >|
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

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

Dikes moc K+
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

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

TGiJack napísal:tak to mas jednoduche vztvoris si jeden subor napriklad

priklad.php

Kód: Vybrať všetko

<? 
session_start(); 

Header ("Content-type: image/jpeg"); 
$obrazok = ImageCreate (80, 25); 
$a = substr(rand(1,10),0,5); 
$b = substr(rand(1,10),0,5); 

$_SESSION['c'] = $a + $b; 
$farba_podkladu = ImageColorAllocate ($obrazok, rand(0,255), rand(0,255), rand(0,255)); 
$biela = ImageColorAllocate ($obrazok, rand(0,255), rand(0,255), rand(0,255)); 
ImageString ($obrazok, 5, 5, 5,  "$a + $b=", $biela); 
ImageJpeg ($obrazok); 
Imagedestroy($obrazok); 
?> 

a druhy ako

kontrola.php

Kód: Vybrať všetko

<?php 
// samotna kontrola ci je vysledok spravny 
session_start(); 
$c = $_SESSION['c']; 
if (isset($_POST['ok'])) { 
   if ($c == $_POST['vysledok']) { 
      $res = "Spravne :-D"; 
   }else { 
      $res = "Zle ;-(";} 
   } 
?> 

<!-- HTML KOD --> 

<img src="priklad.php" /> <br /> 
Napis vysledok prikladu: <br /> 
<form method="post" action="#"> 
<input type="test" name="vysledok"/> 
<input type="submit" name="ok" value="Potvrd"/> <br /> 
</form> 
<?php if (isset($_POST['ok'])) { echo $res; } ?> 


tak tu mas taky suuuper jednoduchy priklad ale ak sa stym pohras tak by si mohol mat z toho priklad ktory by si aj riesil 5 minut hadam pomoze ak by nieco tak napis

PS: st7mi farbami sa treba pohrat a zvolit nejake hranice lebo to niekedy vygeneruje uplne necitatelny priklad ale tak to uz je natebe ..mozes si tam vlozit aj vlastne pozadie pismo pootacat a podobne ..musis sa stym len pohrat ..dokonca aj font by sa tam mal dat vlastn7 aky len ches >|
zas tolko toho vlastného tam nedávaj, lebo to potom dopadne tak, že si definuješ vlastný xhtml štandard kde poznáš aj inputy type="test" ;)

Kód: Vybrať všetko

<input type="test" name="vysledok"/>
TGiJack
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 419
Registrovaný: 30 nov 2006, 19:37
Bydlisko: NO
Kontaktovať používateľa:

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

:oops: :oops: ach jaj preklep malo by tam byt TEXT :oops: ale tak funguje to a to je hlavne :) už som to tam opravil teraz to už bude OK
xixi ale nebolo by to super taka automaticka captcha :lol:
Napísať odpoveď