"; session_register("session_IP"); $bandymas=0; session_register("bandymas"); // echo "session:".session_name()." IP ".session_is_registered("session_IP")."
"; $naujas_testas=true; } else{ // echo "bandym: $bandymas
"; $naujas_testas=false; // echo "

Šiame kompiuteryje jau yra pradėtas ir nepabaigtas testas

"; } ?> "; global $HTTP_POST_VARS; $HTTP_POST_VARS['grupe']=$grupe; //nutylimasis blanko 'Submit' mygtuko pavadinimas echo "Taisyklės

"; $submit_text="Išsiųsk"; //patikriname ar į testą jau buvo kreiptasi $nepradzia=isset($pavarde)&isset($vardas)&isset($eladresas); if ($nepradzia) $nepradzia=strlen($pavarde)>1&strlen($vardas)>1&strlen($eladresas)>3; //$paz ateina iš blanko, jei vartotojas nusprendė įsirašyti einamąjį įvertinimą if (isset($paz)) if (!$nepradzia){ //Atsispausdiname informaciją įrašymo klaidos paieškai echo " pavarde".isset($pavarde); if (isset($pavarde)) echo $pavarde; echo " vardas".isset($vardas); if (isset($vardas)) echo $vardas; echo " eladresas".isset($eladresas); if (isset($eladresas)) echo $eladresas; exit("Įrašymo klaida ..."); } else{ // įrašome pažymį // pradžioje nuskaitome seną informaciją $file=file($rezultatuFailas); $kada=date(" H:i:s y.m.d "); // papildome informacija apie laiką ir vartotojo testo išlaikymo įvertinimą $file[$ID+1]=substr($file[$ID+1],0,strlen($file[$ID+1])-1).$kada.$paz."\n"; // informuojame vartotoją apie įrašytą rezultatą // echo "$vardas $pavarde,

$kada

testo rezultatas = $paz"; // echo ""; saugiaiIrasyk($rezultatuFailas,implode('',$file)); exit("$vardas $pavarde,

$kada

testo rezultatas = $paz"); // exit(""); // pakartotinis kreipimasis kazkodel neveikia: // echo "

Pakartoti testą"; } elseif ($nepradzia){ // nuskaitome visus klausimus include($klausimuFailas); $visoKlaus=count($Klaus); // Jei pateikiama pirmasis klausimas, pasisveikiname su vartotoju if ($speta==0){ echo "Sveika(s),  $vardas $pavarde!
"; $maxnext=count($Klaus[0])-1-1; } $speta+=1; // Atvejis, kai naujo klausimo pradžia ar vartotojas nepateikė jokio atsakymo if (!isset($atsak)) { // Nuskaitome bendra informacija apie visus vartotojus $file=file($rezultatuFailas); if ($ID<0){ // testo pradžioje susirandame vartotojo ID arba papildome nauju // ir papildome informacija apie testo laikymo pradžią $N=count($file); for ($i=0; $i<$N; $i+=3){ $s=$file[$i]; $pavarde_ = strtolower(strtok($s," ")); $vardas_ = strtolower(strtok(" ")); if (strcmp(strtolower($pavarde),$pavarde_)==0& strcmp(strtolower($vardas),$vardas_)==0){ $ID=$i; break; } } if ($ID<0){ $ID=$N; $file[]="$pavarde $vardas $eladresas\n"; $file[]="\n"; $file[]="\n"; } $pradzia=date(" H:i:s - "); $file[$ID+1]=substr($file[$ID+1],0,strlen($file[$ID+1])-1).$pradzia."\n"; $file[$ID+2]="\n"; saugiaiIrasyk($rezultatuFailas,implode('',$file)); } $neKlausti=array(); for ($i=0; $i<$visoKlaus; $i++) $neKlausti[] = "$i"; // suzinome kokie klausimai dar nepanaudoti $neKlausti = array_diff($neKlausti,split(" ",$file[$ID+2])); // foreach ($neKlausti as $value) echo $value; $keys = array_keys($neKlausti); // parenkame dar neklaustą klausimą ir jį užregistruojame vartotojo faile $ik=intval($neKlausti[$keys[rand(0,count($neKlausti)-1)]]); $file[$ID+2]=substr($file[$ID+2],0,strlen($file[$ID+2])-1)."$ik \n"; saugiaiIrasyk($rezultatuFailas,implode('',$file)); // įsimename koks dabar klausiamo klausimo numerį $klausimoNr=$ik; // pasiimame klausimą ir teisingo atsakymo indeksą $klaus=$Klaus[$ik]; $teisingas=$Teisingas[$ik]; // užregistruojame, kad gautas naujas klausimas $gautaKlausimu++; echo "

$gautaKlausimu-asis klausimas:
"; // kaupiame informaciją apie galimą maksimalų taškų skaičių // atimame papildomai vieną, nes nulinis indeksas skirtas klausimui if ($gautaKlausimu<=$maxKlausimu){ $maxtaskai=$maxnext; $maxnext+=count($klaus)-1-1; } include("naujas_testas.php"); } // Vartotojas pasirinko vieną iš galimų atsakymų variantų else { //isset($atsak) $keys=array_keys($Klaus); // jei nėra bendro klausimų/atsakymų statistikos failo, jį sukuriame // (Uosyje bus blogai, nes negalėsime sukurti failo įrašymui) if (!file_exists($statistikosFailas)){ $s=""; foreach ($keys as $v) $s.="0 0\n"; $f=fopen($statistikosFailas,'w'); if ($f){ flock($f,2); fputs($f,$s); flock($f,3); fclose($f); } else echo "Negaliu atidaryti $statistikosFailas failą ..."; } $fs=file($statistikosFailas); $fsOK=isset($fs); // jei bendras klausimų/atsakymų statistikos failas trumpesnis už klausimų failą, // tai jį praplečiame if ($fsOK&(count($fs)$gautaKlausimu-asis klausimas:
"; // echo($klausimoNr); // užregistruojame klausimą padidintami jo panaudojimo skaitliuką if ($fsOK){ $s=$fs[$klausimoNr]; $i=strpos($s,' '); $fs[$klausimoNr]=strval(intval(substr($s,0,$i))+1).substr($s,$i); } // jei atsakyta teisingai, padidiname vartotojų surinktų taškų skaičių // ir bendroje statistikoje pažymime, kad į klausimą šį kartą atsakyta teisingai if ($atsak==$teisingas) { echo "Teisingai!

"; $taskai+=count($klaus)-1-1; if ($fsOK){ $s=$fs[$klausimoNr]; $i=strpos($s,' '); $fs[$klausimoNr]=substr($s,0,$i+1).strval(intval(substr($s,$i+1))+1)."\n"; } } else{ // analogiškus veiksmus atliekame, jei atsakyta neteisingai // $taskai-=1; unset($klaus[$atsak]); $maxtaskai=$maxnext-1; $maxnext+=count($klaus)-1-1; if (count($klaus)==1) echo "Na ir nesiseka! (-:

"; elseif (rand(0,1)==0) echo "Neteisingai (-:, bandyk dar:

"; else echo "Nesiseka (-:, mėgink dar:

"; if (count($klaus)>1+1) include("naujas_testas.php"); } //$atsak==$teisingas // jei su su statistikos failu viskas OK, papildome jį nauja informacija if ($fsOK){ $f=fopen($statistikosFailas,'w'); if ($f){ flock($f,2); fputs($f,implode('',$fs)); flock($f,3); fclose($f); } else echo "Negaliu atnaujinti $statistikosFailas failą ..."; } // Naują klausimą pateikiame tik tuo atveju, jei teisingai pasirinko, // arba išmetus vieną variantą - lieka vienintelis (teisingas) if (($atsak==$teisingas)|count($klaus)==2){ unset($klaus); unset($atsak); $submit_text="Naujas klausimas"; include("naujas_testas.php"); } }//isset($pavarde... $paz=round(10*($taskai+0.0)/max(1,$maxtaskai),2); // echo "taskai=$taskai, maxtaskai=$maxtaskai, paz=$paz"; } // o čia test pradžioje pasiimame duomenis apie vartotoją else{// pradzia... if (!$naujas_testas) echo "

Šiame kompiuteryje jau yra pradėtas ar buvo įvertintas testas

Jei nori naujo testo, uždaryk visus naršyklių langus ir pradėk iš naujo

"; else { ?>
Vardas
Pavardė
Eladresas
> >