phpRS 2.8.x : phpRS Fórum
Toto fórum je určené výhradně k diskuzi o verzích phpRS v2.8.x.
phpRS - redakční a informační systém
2.8.0. vlastní captcha - otázečka
Zaslán uživatelem/kou: cross182 (IP adresa zaznamenána)
Datum: 2008-06-03, 22:24

Zdravím, dělám si vlastní jednoduchou captchu, kde pod formulář na komentář vložím:

$a = rand(1,3);
$b = rand(1,3);
echo $a . " + " . $b;
$vysledek = $a+$b;
echo "<input type=\"hidden\" name=\"vysledek\" value=\"$vysledek\" />";
echo "<input type=\"text\" name=\"opsano\" />";

Pak ale potřebuji někam vložit podmínku:

if($_POST['vysledek']==$_POST['opsano'])
{}
else{}

jenže netuším, kam. Vím, že na místo, kde se to odesílání provádí, ale nevím, kde to najdu. Mám upraveny komentáře a zkoušel jsem to dát do
function NovyPridejKom()
{....
ale nic. Poradíte někdo prosím?

Re: 2.8.0. vlastní captcha - otázečka
Zaslán uživatelem/kou: cross182 (IP adresa zaznamenána)
Datum: 2008-06-04, 10:52

Pomožte mi s tím prosím někdo :(

Re: 2.8.0. vlastní captcha - otázečka
Zaslán uživatelem/kou: MirekS (IP adresa zaznamenána)
Datum: 2008-06-04, 12:58

tak je treba rozlisit kam vlozit vygenerovanou otazku (tedy ty INPUTy) a kam jeji kontrolu
takze ty inputy jsou spravne vlozeny a zobrazuji se ve formulari?
pokud ano, pak by v te zminovane funkci mely existovat a melo by se s nimi dat pracovat

Re: 2.8.0. vlastní captcha - otázečka
Zaslán uživatelem/kou: cross182 (IP adresa zaznamenána)
Datum: 2008-06-04, 13:50

plugin/captcha.php

$a = rand(1,3);
$b = rand(1,3);
echo $a . " + " . $b;
$vysledek = $a+$b;
echo "<input type=\"hidden\" name=\"vysledek\" value=\"$vysledek\" />";
echo "<input type=\"text\" name=\"opsano\" />";


comment.php
function NovyFormKom()
{
// bezpecnostni korekce
$GLOBALS["cisloclanku"]=phprs_sql_escape_string($GLOBALS["cisloclanku"]);

// test na existenci reg. ctenare
if ($GLOBALS["prmyctenar"]->ctenarstav==1):
  $prctenar=$GLOBALS["prmyctenar"]->Ukaz("jmeno");
  $prctenar_mail=$GLOBALS["prmyctenar"]->Ukaz("email");
else:
  $prctenar='';
  $prctenar_mail='@';
endif;
// formular pro pridani noveho komentare
echo "<form action=\"comment.php\" method=\"post\">
<input type=\"hidden\" name=\"akce\" value=\"insert\" />
<input type=\"hidden\" name=\"cisloclanku\" value=\"".$GLOBALS["cisloclanku"]."\" />
<input type=\"hidden\" name=\"cislokom\" value=\"0\" />
<center>
<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">
<tr class=\"kom-z\"><td><b>".RS_KO_ZPR_JME.":</b>&nbsp;</td><td><input type=\"text\" size=\"40\" name=\"kod\" value=\"".$prctenar."\" class=\"textpole\" /></td></tr>

<tr class=\"kom-z\"><td><b>".RS_KO_ZPR_TIT.":</b>&nbsp;</td><td><input type=\"text\" size=\"40\" name=\"ktitulek\" class=\"textpole\" /></td></tr>
</table>
<p align=\"center\"><textarea name=\"kobsah\" cols=\"60\" rows=\"16\" wrap=\"yes\" class=\"textbox\"></textarea></p>";
include "plugin/captcha.php";
echo "<p align=\"center\"><input type=\"submit\" name=\"pridej\" value=\" ".RS_ODESLAT." \" class=\"tl\" />&nbsp;&nbsp;&nbsp;&nbsp;<input type=\"reset\" value=\" ".RS_RESET." \" class=\"tl\" /></p>
<p align=\"center\" class=\"kom-z\">".RS_KO_INFO."</p>
</center>
</form>
<p></p>\n";
}


Výsledek
[http://tinyurl.com/63mr55]

Jdu na to dobře? Co mám tedy prosím udělat dál? :(

Re: 2.8.0. vlastní captcha - otázečka
Zaslán uživatelem/kou: MirekS (IP adresa zaznamenána)
Datum: 2008-06-04, 15:19

no v tom formulari to je vlozeno, takze v te funkci NovyPridejKom uz by to melo jit otestovat

Re: 2.8.0. vlastní captcha - otázečka
Zaslán uživatelem/kou: cross182 (IP adresa zaznamenána)
Datum: 2008-06-04, 16:22

Tyjo, fakt to jde :) Nevím, proč to předtím nešlo :) Díky moc :)
Btw. Nevíš, jak bych mohl ošetřit to, kdyby uživatel špatně zadal výsledek - aby se mohl navrátit zpět do již předvyplněného formuláře (aby to nemusel psát znovu) ? Nějak přes $_SESSION ?

Re: 2.8.0. vlastní captcha - otázečka
Zaslán uživatelem/kou: marty (IP adresa zaznamenána)
Datum: 2008-06-04, 16:36

co treb na zacatek
function NovyPridejKom()
{....
vlozit:
if($_POST['vysledek']!=$_POST['opsano'])
{
echo"spatne cislo
<br>
<input type='button'onclick='history.back()'value='Zpět'>";
exit;
}

mozna tim exitem rozhodis layout kdyz nekdo spatne opise cislo, ale pri kliku natl zpet by zas mel mit vse co napsal nez to odeslal :-)

je to jen myslenky jakym smerem bych to ja resil
cauky

ICQ: 179653900
skype: marty_hranice
| www.hnfond.cz | | www.struhlovsko.cz | www.bxclub.com | www.r21club.com | www.palenice.net

Re: 2.8.0. vlastní captcha - otázečka
Zaslán uživatelem/kou: marty (IP adresa zaznamenána)
Datum: 2008-06-04, 16:37

ha, nez sem se dokopal k odpovedi uteklo par hodin a vidim ze vysledek je proveden elegantne :-) caute

ICQ: 179653900
skype: marty_hranice
| www.hnfond.cz | | www.struhlovsko.cz | www.bxclub.com | www.r21club.com | www.palenice.net

Re: 2.8.0. vlastní captcha - otázečka
Zaslán uživatelem/kou: cross182 (IP adresa zaznamenána)
Datum: 2008-06-04, 21:21

No sám jsem tam dal
echo '<a href="" onclick="history.back()">zpět</a>';
Ono se to sice přesměruje zpět na ten form vyplněný, ale za okamžik to hodí jen na comment.php + Zadaný článek neexistuje!
Když se najede kurzorem na to "Zpět", tak jde vidět, že zpětný odkaz ukazuje právě na "comment.php" nikoliv comment.php?akce=new&cisloclanku=2007030001

Re: 2.8.0. vlastní captcha - otázečka
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2008-06-04, 22:55

echo '<a href="javascript:self.history.back()">zpět</a>';

alebo:

echo '<a href="#" onclick="self.history.back(); return(false);">zpět</a>';


ale dá sa to aj úpravou formulára, nejak takto:

echo '<input name="test" value="'.(isset($GLOBALS['test'])? htmlspecialchars($GLOBALS['test'], ENT_QUOTES): '')).'">';



Celkem upraveno 1×. Poslední úprava pa3k v 04.06.2008 22:57.

Re: 2.8.0. vlastní captcha - otázečka
Zaslán uživatelem/kou: cross182 (IP adresa zaznamenána)
Datum: 2008-06-04, 23:16

Jé, paráda. Díky moc všem, jste zlatí :)
Kdybych měl nějaké problémy ( s tím počítám ), tak se ještě ozvu.
Ještě jednou díky moc :)

Re: 2.8.0. vlastní captcha - otázečka
Zaslán uživatelem/kou: cross182 (IP adresa zaznamenána)
Datum: 2008-06-05, 00:16

Tak mám další otázku, ale trošku jiným směrem.
Nakonec jsem tu captchu udělal skrze dny v týdnu - uživatel musí napsat, co je zítra za den.

Myslíte, že bych to mohl dát sem na fórum, aby to mohli použít případní další zájemci?

Re: 2.8.0. vlastní captcha - otázečka
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2008-06-05, 16:38

cross182 napísal/a:
-------------------------------------------------------
> Myslíte, že bych to mohl dát sem na fórum, aby to
> mohli použít případní další zájemci?

určite áno

Re: 2.8.0. vlastní captcha - otázečka
Zaslán uživatelem/kou: cross182 (IP adresa zaznamenána)
Datum: 2008-06-05, 18:48

Ok, až budu mít na to čas, tak to dám nějak dokupy a nahodím to sem.

Re: 2.8.0. vlastní captcha - otázečka
Zaslán uživatelem/kou: cross182 (IP adresa zaznamenána)
Datum: 2008-06-06, 01:58

Takže tady to je, snad tam nejsou žádné chyby:
[http://ava-plus44.com/navod-captcha/navod.php]

Re: 2.8.0. vlastní captcha - otázečka
Zaslán uživatelem/kou: cross182 (IP adresa zaznamenána)
Datum: 2008-07-17, 14:36

Zdravím :) Všiml jsem si, že se tu zase rozebírala spamová ochrana, tak tohle téma posunu na chvilku nahoru.
Už přes měsíc mi na mém webu běží ta Vlastní anti-spam ochrana a zatím to neprolomil žádný bot. Tak snad to bude úspěšné :)



Lituji, ale pouze registrovaní uživatelé mohou zasílat příspěvky do této sekce.
This forum powered by Phorum and designed by STaNBoSS.