За последние 24 часа нас посетили 18156 программистов и 1644 робота. Сейчас ищут 1927 программистов ...

Скрипт тестирование студентов

Тема в разделе "Вопросы от блондинок", создана пользователем kuliev, 8 окт 2007.

Статус темы:
Закрыта.
  1. kuliev

    kuliev Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    Помогите разобраться со скриптом!!! :oops:
    PHP:
    1.  
    2. <html>
    3.  
    4. <head>
    5.   <title></title>
    6. </head>
    7.  
    8. <body>
    9.  
    10. <?php
    11.  
    12. $LoginScript="$HTTP_HOST/test/login.php";
    13. $NewsFile="news.html";
    14.  
    15. if (!isset($STCount)) $STCount=0;
    16. $STCount++;
    17. SetCOOKIE("STCount","$STCount,0x7FFFFFFF");
    18.  
    19. $f=fopen("counter.dat","a+");
    20. flock($f,2);
    21. $count=fread($f,100);
    22.  
    23. $REMOTE_HOST=gethostbyaddr($REMOTE_ADDR);
    24. if(!($HTTP_HOST===$REMOTE_HOST)) @$count=$count+1;
    25. ftruncate($f,0);
    26. fwrite($f,$count);
    27. flock($f,3);
    28. fclose($f);
    29.  
    30. if (file_exists($NewsFile))
    31. {
    32.     $news=join('', file($NEwsFile));
    33.     }
    34.     else $news="No news today";
    35.  
    36. echo "<html><head><title>test</title></head>";
    37. echo "<h1>systema proveki<br>SmartTest</h1>";
    38. echo "<br><h1>Register</h1>";
    39. echo "<form action=http://$LoginScript>";
    40. echo "<br>Login <input type=text name=user><br> Pass <input type=password name=pswd>";
    41. echo "<input type=submit value=Login>";
    42. echo "$STCount  <br>  $count";
    43. /////////////
    44. ?>
    45. <?
    46.  
    47. session_name("smarttest");
    48. session_register("Fullname");
    49. session_register("UserName");
    50.  
    51. //$Dir="c:/";
    52. $text ="";
    53.  
    54. function GetQuestText()
    55. {
    56.     global $Counter, $text;
    57.     $tmp=$Counter+1;
    58.  
    59.     echo "<br><b>vopros $tmp</b><br>";
    60.     echo "$text";
    61.     echo "<br>";
    62.     echo "<form  action=$SCRIPT_NAME><br>";
    63.  
    64.     echo "<input name=a1 type=checkbox value=1>";
    65.     echo "<input name=a2 type=checkbox value=2>";
    66.     echo "<input name=a3 type=checkbox value=3>";
    67.     echo "<input name=a4 type=checkbox value=4>";
    68.     echo "<input name=a5 type=checkbox value=5>";
    69.     echo "<input name=a6 type=checkbox value=6>";
    70.     echo "<br>";
    71.     echo "<input type=submit value=Send></form>";
    72.     }
    73.  
    74.     function connect()
    75.     {
    76.         mysql_connect($server,$user,$pass) or die (Error);
    77.         mysql_select_db($db);
    78.         }
    79.  
    80.         function GetTestList()
    81.         {
    82.             global $SCRIPT_NAME;
    83.             echo "<center><i>Список доступных тестов</i></center><br>";
    84.             echo "<table border cols=3 width=100% bgcolor=#ceffce";
    85.             echo "<tr align=center bgcolor#3333ff>";
    86.             echo "<td><b><i><font color=#ffffff>nomer</font></i></b></td>";
    87.             echo "<td><b><i><font color=#ffffff>nazvanie</font></i></b></td>";
    88.             echo "<td><b><i><font color=#ffffff>autor</font></i></b></td>";
    89.  
    90.             $res=mysql_query("select no,desk,autor FROM reg");
    91.             while ($Row=mysql_fetch_row($res))
    92.             {
    93.                 echo "<tr>";
    94.                 for ($i=0; $i<mysql_num_fields($res); $i++)
    95.                 echo "<td><a href=$SCRIPT_NAME?tno=$Row[$i]</a></td>";
    96.                 echo "</tr>";
    97.                 }
    98.                 echo "</table>";
    99.                 function register ()
    100.                 {
    101.                     global $user, $pswd, $accept, $login;
    102.                     global $UserName, $FullName;
    103.                     $Login=0;
    104.                     $res=mysql_query("select * from ureg");
    105.                     while ($Row=mysql_fetch_row($res))
    106.                     {
    107.                         if($Row[0]==$user)
    108.                         {
    109.                             if($Row[1]===md5($pswd))
    110.                             {
    111.                                 $FullName=$row[2];
    112.                                 $UserMane=$user;
    113.                                 $Login=1;
    114.                                 break; }
    115.                                 }
    116.                                 }
    117.  
    118.  if ($Login==0)
    119.  {
    120.     unset ($accet);
    121.     session_unset();
    122.     global $Dir;
    123.     global $REMOTE_ADDR;
    124.  
    125.     @mkdir($Dir,755);
    126.     //$f=fopen("access.log","a+") or die (error access.log);
    127.     flock($f,2);
    128.     $dt=date("m.d.Y H.i.s");
    129.     if (PHP_OS=="Linux") $NL="\n"; else $NL="\n\r";
    130.     fputs($f,"$dt Access denied for user $user [$pswd]. IP:$REMOTE_ADDR $NL");
    131.     flock($f,3);
    132.     fclose($f);
    133.     exit;
    134.     }
    135.     else
    136.     {
    137.         echo "<b><i> zdrastvuy, $Row[2]!</b></i><br>";
    138.         GetTestList();
    139.         }
    140.         return;
    141.         }
    142.         connect();
    143.         echo "login=$Login $UserName";
    144.         if(!isset($Login))
    145.         {
    146.             Register();
    147.             }
    148.             else
    149.             {
    150.                 session_register("TestNo");
    151.                 session_register("Arr");
    152.                 session_register("Counter");
    153.                 session_register("Table");
    154.                 session_register("True");
    155.                 session_register("Max");
    156.                 session_register("Prev");
    157.                 session_register("Diff");
    158.                 session_register("Total");
    159.                 session_register("TT");
    160.  
    161.                 if (!isset($TestNo))
    162.                 {
    163.                     $Res=mysql_query("SELECT no,qmax,tbl FROM reg WHERE no=$tno");
    164.                     $Row=mysql_fetch_row($Res);
    165.                     $Max=$Row[1];
    166.                     $Table=$Row[2];
    167.                     $Diff=$Row[3];
    168.                     $QDiff=0; $Total=0;
    169.                     $Atable=$Table."_a";
    170.                     echo $Atable;
    171.  
    172.  $R=@mysql_query("SELECT * FROM $ATable") or die ("error @ 138 [$ATable]");
    173.  while ($R=mysql_fetch_row($R))
    174.  {
    175.     if($Rw[0]===$UserName)
    176.     {
    177.         echo "vi uge prohodili daniy test<br>";
    178.         echo "Vasha ochenka $Rw[1]. Vi praelno otvetili na $Rw[2] voprosov (a)";
    179.         GetTestList();
    180.         exit;
    181.         } //if($Rw)
    182.         }//while($Rw);
    183.  
    184.  $TestNo=tno;
    185.  $Counter=0;
    186.  
    187.  function checkarr($Arr)
    188.  {
    189.     //raznie
    190.     $Res=1;
    191.     for ($i=0; $i<10; $i++)
    192.     for ($j=0; $j<10; $j++)
    193.     if ($Arr[$i]===$Arr[$j])
    194.     {
    195.         $Res=0; break(1);
    196.         }
    197.         return $Res;
    198.         }
    199.         mt_rand(time()+(double)microtime()*1000000);
    200.         for ($i=0; $i<9; $i++) $Quest[]=mt_rand(0,100);
    201.         while (checkarr($Quest)==0)
    202.         {
    203.             for ($i=0; $i<9; $i++) $Quest[$i]=mt_rand(0,100);
    204.             }//while
    205.  
    206. $Arr=serialize($Quest);
    207. $Res=mysql_query("SELECT * FROM $Table WHERE no=$Quest[$Counter]");
    208.         $Row=mysql_fetch_row($Res);
    209.         $Prev=$Row[2];
    210.         $text=$Row[1];
    211.         $Diff=$Row[3];
    212.  
    213.         GetQuestText();
    214.         }//if (!isset)
    215.         else
    216.  
    217.         {
    218.             if(!isset($a1)) $a1=""; if(!isset($a2)) $a2="";
    219.             if(!isset($a3)) $a3=""; if(!isset($a4)) $a4="";
    220.             if(!isset($a5)) $a5=""; if(!isset($a6)) $a6="";
    221.  
    222.             $Answer=$a1.$a2.$a3.$a4.$a5.$a6;
    223.             if ($Answer===$Prev)
    224.             {
    225.                 $True=@$True+1;
    226.                 $Trusted='Y';
    227.                 if ($Diff=='Y') $Total=$Total+3;
    228.                 else $Total=$Total+1;
    229.                 }
    230.                 else $Trusted='N';
    231.  
    232.                 if ($Diff=='Y') $TT=$TT+3;
    233.                 else $TT=$TT+1;
    234.  
    235.                 if($Counter===9)
    236.                 {
    237.                     $Atable=$table."_a";
    238.                     $Exp=($Total*10)/$TT;
    239.                     if ($Exp>=90) $Mark=5;
    240.                     else if ($Exp>=75) $Mark=4;
    241.                     else if ($Exp>=50) $Mark=3;
    242.                     else if ($Exp<50) $Mark=2;
    243.  
    244. mysql_query("insert into $Atable values ('$UserName','$Mark','$True')");
    245. $msg="<br>$FullName, vi otvetili pravilno na $True voprosov";
    246. $msg=$msg+"<br> vi nabrali $Total ballow iz vozmoznix $TT($Exp)%";
    247. $msg=$msg+"<br> Vasha ochenka: $Mark ";
    248. echo $msg;
    249. }
    250.  
    251. $Quest=unserialize($Arr);
    252. $Res=mysql_query("SELECT * FROM $Table WHERE no=$Quest[$Counter]");
    253. $Row=mysql_fetch_row($Res);
    254. $Prev=$Row[2];
    255. $text=$Row[1];
    256. $Diff=$Row[3];
    257. $Counter=$Counter+1;
    258. GetQuestText();
    259.      }
    260.     }
    261.    }
    262.  
    263. ?>
    264.  
    265. </body>
    266.  
    267. </html>
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Синтаксических ошибок нет :D
     
  3. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Это уже караул...
    Чел находит где-то скрипт, не может разобраться что там и зачем, поэтому выкладывает на форуме, чтобы за него разобрались другие :lol:

    kuliev
    Я разберусь за тебя в скрипте, если ты за меня заработаешь немножко денег ;)
     
  4. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Попробую проявить свои телепатические способности. http://phpfaq.ru/globals
     
  5. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Как модератор, предлагаю тему закрыть, потому что она не достойна даже раздела для блондинок.
    Человек даже не хочет думать, хочет что бы за него всё сделали.

    Тему закрываю.
     
Статус темы:
Закрыта.