Preji krasny den, obracim se na vas z dotazem. Vytvoril jsem si kod pro generovani nahodnych kontrolnych otazek, jako nahradu za CAPTCHA a setkal jsem se s problemem, ze dochazi k to ze jsou me odpovedi spatne vyhodnocovany, pokud odpovim spatne je tato odpoved a spatne vyhodnocena, pokud vsak odpovim spravne je odpoved obcas vyhodnocena jako spatna a obcas jako spravana, bohuzel jsem v to nenalezl zadny system. Zkousel jsem i zodrazit pomoci echo najednou jak otazky tak odpovedi a zda byly tyto dvojice vzdy spravne. Prikladam i kod:
Gegerovani otazky a odpovedi z extexniho souboru:
<?php
session_start();
$otazka = array("Je jedna a jedna rovno dvěma či osmi?(odpověd opište přesně jak je uvedena v textu)",
"Je tři plus tři rovno dvanácti či šesti?(odpověd opište přesně jak je uvedena v textu)",
"Je deset plus deset rovno dvaceti či dvaadvaceti?(odpověd opište přesně jak je uvedena v textu)");
$odpoved = array("dvěma",
"šesti",
"dvaceti");
$max=count($otazka);
$tip=rand()%($max);
$_SESSION["question"]=$otazka[$tip];
$_SESSION["answer"] = $odpoved[$tip];
?>
do souboru comment.php:
session_start()
...
include_once("kontrolni_otazka.php");
...
function NovyFormKom()
{
...
<p class=\"stred\"><strong>".RS_KO_OTAZKA.":</strong> ".$_SESSION["question"]."</p>
<p class=\"stred\"><strong>".RS_KO_ODPOVED.":</strong> <input type=\"text\" name=\"odpovedpris\" size=\"12\" class=\"textpole\" /></p>
...
}
function NovyPridejKom()
{
...
$GLOBALS["kodmail"]=phprs_sql_escape_string($GLOBALS["kodmail"]);
//podminka pro porovnani odpovedi z kodu a odpovedi od prispevovatele
if ($odpovedzevnitr==$odpovedzvenku):
$ip_adresa=$_SERVER["REMOTE_ADDR"]; // ip adresa ctenare
$aktdatum=Date("Y-m-d H:i:s");
...
endif;
predem dekuji za kazde mozne reseni a jsem si vedom ze to neni idealni reseni a tedy prosim o odpoved na moznouchybu v kodu, nikoli polemizovani o vhodnosti a nevhodnosti. Jeste jednou predem dekuji
Celkem upraveno 1×. Poslední úprava JeaDee v 22.08.2006 09:04.