Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Тест на php

11K
30 апреля 2008 года
Georg XIV
41 / / 23.01.2007
Я любитель php, не разбираюсь я в MySql и времени нет, необходимо создать тест на php. Пытался чета сделать через файлы, типа есть файл в нем вопросы и варианты ответов, каждый с новой строки. Скрипт php в одном файле, обновляется страница после нажатия кнопки, счетчик в другом файле, по нему берутся вопросы, каждый раз создается форма, причем данные передаются ток через файлы (я х.з. как одна страница сама себе передаст данные), проверка не связана с вопросами.... тупо по счетчику, какой вопрос такую комбинацию и проверяет. Есть предложение занести правильные ответы в другой файл либо пометить в файле с вопросами верный...
короче помогите, кто может, оптимизировать код, чтобы не стыдно было сдавать...
вот весь скрипт =) там много лишнего, но думаю, вы поймете что к чему.... буду рад если кто-то поможет....

Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<script src="script04.js" language="javascript" type="text/javascript"></script>
<style type="text/css"><!--
div#slist{color: red;
font-style: italic;}
div#quest{color: white;
font-style: italic;}
H1 {
 text-align: center;
  margin: 0px; 
  color: #00FF00;
}
H2 {
 text-align: center;
  margin: 0px; 
  color: #FFFF00;
}

 DIV.shadow H1 {
  position: relative;      
  left: 5px;           
  top: -1em;           
  color: #ccc;         
  z-index: -1          
}

--></style>


<?
    $TheFile = "date.txt";
    $Open = fopen("date.txt", "r");
    if ($Open)
    {
        $Data = file($TheFile);
        for ($n = 0; $n < count($Data); $n++)
        {
        $GetLine = explode("\t", $Data[$n]);
        $List[$n] = $GetLine[0];
        }
        fclose ($Open);
    } else
        print ("Ошибка0! Такой файл не существует!<BR>\n");


    $access = "hits.txt";
    $vs = @file($access);
    $cv = $vs[0];
    ++$cv;
    $fh = fopen($access, "w");
    @fwrite($fh, $cv);
    fclose($fh);


if ($cv == 0)
    {
    $a = "FIO.txt";
    $fh = fopen($a, "w");
    @fwrite($fh, $FIO);
    fclose($fh);
    }

if ($cv == 1)
                {if  (isset($checkme1)&& !isset($checkme2) && !isset($checkme3) && !isset($checkme4))
                    {Molodtca();}else {Miss();Tvar(1);}}
            else
                if ($cv == 2)
                {if  (!isset($checkme2)&& !isset($checkme1) && isset($checkme3) && !isset($checkme4))
                    {Molodtca();}else {Miss();Tvar(3);}}
            else
                if ($cv == 3)
                {if  (!isset($checkme4)&& !isset($checkme2) && !isset($checkme3) && isset($checkme1))
                    {Molodtca();}else {Miss();Tvar(1);}}
            else
                if ($cv == 4)
                {if  (!isset($checkme3)&& !isset($checkme2) && !isset($checkme1) && isset($checkme4))
                    {Molodtca();}else {Miss();Tvar(4);}}
            else
                if ($cv == 5)
                {if  (!isset($checkme1)&& isset($checkme2) && !isset($checkme3) && !isset($checkme4))
                {Molodtca();}else {Miss();Tvar(2);}}
            else
                if ($cv == 6)
                {if  (!isset($checkme2)&& !isset($checkme3) && !isset($checkme1) && isset($checkme4))
                {Molodtca();}else {Miss();Tvar(4);}}
            else
                if ($cv == 7)
                {if  (isset($checkme1)&& !isset($checkme2) && !isset($checkme3) && !isset($checkme4))
                {Molodtca();}else {Miss();Tvar(1);}}
            else
                if ($cv == 8)
                {if  (!isset($checkme4)&& !isset($checkme2) && isset($checkme1) && !isset($checkme3))
                {Molodtca();}else {Miss();Tvar(1);}}
            else
                if ($cv == 9)
                {if  (!isset($checkme3)&& isset($checkme2) && !isset($checkme1) && !isset($checkme4))
                {Molodtca();}else {Miss();Tvar(2);}}
            else
                if ($cv == 10)
                {if  (!isset($checkme3)&& !isset($checkme2) && isset($checkme1) && !isset($checkme4))
                {Molodtca();}else {Miss();Tvar(1);}}
            else
                if ($cv == 11)
                {if  (!isset($checkme4)&& !isset($checkme2) && !isset($checkme1) && isset($checkme3))
                {Molodtca();}else {Miss();Tvar(3);}}
            else
                if ($cv == 12)
                {if  (!isset($checkme2)&& !isset($checkme3) && !isset($checkme1) && isset($checkme4))
                {Molodtca();}else {Miss();Tvar(4);}}
            else
                if ($cv == 13)
                {if  (!isset($checkme1)&& isset($checkme2) && !isset($checkme3) && !isset($checkme4))
                {Molodtca();}else {Miss();Tvar(2);}}
            else
                if ($cv == 14)
                {if  (!isset($checkme3)&& isset($checkme2) && !isset($checkme1) && !isset($checkme4))
                {Molodtca();}else {Miss();Tvar(2);}}
            else
                if ($cv == 15)
                {if  (!isset($checkme4)&& isset($checkme2) && !isset($checkme3) && !isset($checkme1))
                {Molodtca();}else {Miss();Tvar(2);}}
           
                   


function FormCreate($a,$b,$c,$d)
{
    if (!@$submit)
    {
       
    ?>  
<head> 
<title>Test Html, CSS, DHTML</title>
<style type="text/css" media="screen"><!--
#navigation p {
    position: absolute;
    margin: 15px;
    right: 15px;
    font-weight: bold;
    font-size: 18px;
   

}
.col {
  background: #ccc;    
  color: blue;         
  border: 1px solid black;
  margin-right: 7px    
}
div{color: yellow;
size: 16 pt;
font-style: italic;
}
--></style>
</head>
       
        <body text="#ffffff" background="images/n016.gif"></body>
    <div id="navigation">
    <p> тест по html </p>
    </div> 
<form>
<fieldset style="padding: 10px">
  <legend style="color: white">варианты ответов:</legend>
        <input class=col type="checkbox" name="checkme1" value="yo"><?print"$a"?><br>
        <input class=col type="checkbox" name="checkme2" value="yol"><?print"$b"?><br>
        <input class=col type="checkbox" name="checkme3" value="yoll"><?print"$c"?><br>
        <input class=col type="checkbox" name="checkme4" value="yolll"><?print"$d"?><br>
        <p></p>
</fieldset>
<br>
<input type="image" align="absmiddle" src="imgbutton.gif" width=85 height=25 name="jsbutton">
        </FORM>

    <?
    }
    else { }
}

function Molodtca()
    {
        $Yes = "True.txt";
        $true = @file($Yes);
        $a = $true[0];
        ++$a;
        $b = fopen($Yes, "w");
        @fwrite($b, $a);
        fclose($b);
    }

function Miss()
    {
        $No = "false.txt";
        $false = @file($No);
        $a = $false[0];
        $d = $GLOBALS["cv"]*5;
        $b = fopen($No, "a");
        @fwrite($b, "$d\n");
        fclose($b);
    }

function Tvar($T)
    {
        $Truevar = "Tvar.txt";
        $TV= @file($Truevar);
        $a = $TV[0];
        $d = $GLOBALS["cv"]*5+$T;
        $b = fopen($Truevar, "a");
        @fwrite($b, "$d\n");
        fclose($b);
    }

if ($cv<15)
{
$n1 = 4*$cv + $cv + 1;
$n2 = 4*$cv + $cv + 2;
$n3 = 4*$cv + $cv + 3;
$n4 = 4*$cv + $cv + 4;
$Question = $List[($cv*5)];

print("<div>$Question</div>");

//print ("<HR><P>\n") ;
FormCreate($List[$n1],$List[$n2],$List[$n3],$List[$n4]);
}
else
{
                    $proverka = "True.txt";
                    $true = @file($proverka);
                    $a = $true[0];
                   
                    $c = 15 - $a;
                   
                    $F = "FIO.txt";
                    $vs = @file($F);
                    $r = $vs[0];
                   
                    Print("<h2>Тестирование студента:  $r</h2><br> ");
                    Print("<h1>Результат:</h1>");
                    Print(" <div class=shadow><h1>Результат:</h1></div><BR>\n
                   
                   
                    <Font Size = 18 Color = Blue>  
                    $a - ПРАВИЛЬНО<BR>\n</Font> <Font Size = 18 Color = Red>  $c - НЕ ПРАВИЛЬНО</Font>");
                    $count = 0;
                    if  (($a>=0) && ($a<=7)) {$count=2;} else
                    if  (($a>=8) && ($a<=10)) {$count=3;} else
                    if  (($a>=11) && ($a<=13)) {$count=4;} else
                    if  (($a==14) || ($a==15)) {$count=5;} else {}
                    {Print("<h2>Оценка: $count</h2>");}
                   
                   
                    print("<br>");
                    if ($a < 15) {
                    print("<h1>Неверные ответы:</h1>");
                    print(" <div class=shadow><h1>Неверные ответы:</h1></div><BR>\n");
                    }
                                   
                    $b = fopen($proverka, "w");
                    @fwrite($b, 0);
                    fclose($b);
               
                $access = "hits.txt";
                $vs = @file($access);
                $cv = $vs[0];
                $fh = fopen($access, "w");
                @fwrite($fh, -1);
                fclose($fh);

$TheFile1 = "Tvar.txt";
$Open = fopen("Tvar.txt", "r");
if ($Open)
    {
        $TV = file($TheFile1);
        for ($s = 0; $s < count($TV); $s++)
        {
        $GetLine = explode("\t", $TV[$s]);
        $List3[$s] = $GetLine[0];
    }
fclose ($Open);
} else
        print ("Ошибка1! Такой файл не существует!<BR>\n");
 
               
           
$TheFile = "false.txt";
$Open = fopen("false.txt", "r");
if ($Open)
    {
        $false = file($TheFile);
        for ($m = 0; $m < count($false); $m++)
        {
        $GetLine = explode("\t", $false[$m]);
        $List2[$m] = $GetLine[0];
    }
for ($m = 0; $m < count($false); $m++)
{
$k = $List2[$m]-5;

print("<br><div id=quest>$List[$k]</div>");
$p = $List3[$m]-5;
print("<br><div id=slist>$List[$p]</div>");
}
fclose ($Open);

$TheFile = "false.txt";
unlink($TheFile);
$TheFile1 = "Tvar.txt";
unlink($TheFile1);

    } else
        print ("Ошибка2! Такой файл не существует!<BR>\n");
               



?>
    <body background="images/n016.gif">
    <FORM>
    <input type="submit" name="submit" value="Пройти заново">  
    <h1><a href="index.html" id="arrow">На главную!</a>
    <img src="images/arrow_off.gif" width="147" height="82" id="arrowImg" alt="arrow" /></h1>
   
    </FORM>
<?
}
?>

</html>
1.8K
30 апреля 2008 года
Валериус
190 / / 14.07.2006
Во-первый, код лучше выкладывать в виде приложенного архива или, хотя бы, внутри специального тэга.
Во-вторых, табуляция - это добро.
В-третьих, выложи-ка и пример файла с вопросами.
В-четвёртых, вижу уже одну ошибку: у тебя два раза закрывается тэг <style>.
244
30 апреля 2008 года
UAS
2.0K / / 19.07.2006
Бррр какой ужасный код. Каждый вопрос проверяется вручную %) Да и страшно все так..

Как вариант:
1) для хранения используй лучше XML
2) Варианты ответов шифруй как-нибудь способом (тут уж как позволит простор фантазии)
3) Используй циклы, тогда и не надо всю эту фигну писать, начиная от $cv==1 и до 15
15
30 апреля 2008 года
shaelf
2.7K / / 04.05.2005
У автора время до вечера оформить это безобразие.
11K
30 апреля 2008 года
Georg XIV
41 / / 23.01.2007
Цитата: Валериус
Во-первый, код лучше выкладывать в виде приложенного архива или, хотя бы, внутри специального тэга.
Во-вторых, табуляция - это добро.
В-третьих, выложи-ка и пример файла с вопросами.
В-четвёртых, вижу уже одну ошибку: у тебя два раза закрывается тэг <style>.


1. учтем, вот весь архив, посмотрите [ATTACH]2819[/ATTACH]
2. ---
3. [ATTACH]2818[/ATTACH]
4. я знаю, и она не одна )

11K
30 апреля 2008 года
Georg XIV
41 / / 23.01.2007
Цитата: UAS
Бррр какой ужасный код. Каждый вопрос проверяется вручную %) Да и страшно все так..


я знаю, иначе бы у меня не возникали вопросы...

Цитата:

3) Используй циклы, тогда и не надо всю эту фигну писать, начиная от $cv==1 и до 15


например?

11K
30 апреля 2008 года
Georg XIV
41 / / 23.01.2007
Цитата: shaelf
У автора время до вечера оформить это безобразие.


до вечера явно не управлюсь :)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог