CGI приложение

точно това исках да стане.
аз останалите сигурно ще ги направя и сама. като видя тези.
само ако можеш да ми кажеш какъв е кода на test2.cgi
 
Самия код е супер прост и има само 2 условия.
Забравил съм всичко на PERL и не намерих скриптовете които съм правил за да погледна синтаксис-минтаксис и някакви екстри.

Значи аз малко преписах от твоя код но имаше няколко грешки .

Формуляра ти си го написала така:

print <<'EOF';
<form method="POST" print " a href=\"glavna.cgi\">
<input type="text" name="ime" /><br/>
<textarea name="comment"></textarea><br/>
<input type="submit"/>
</form>
EOF
}



трябва да е action="адреса на скрипта" а не a href="адреса на скрипта".

Другото което е, че си написала на value="yes"/value="no"

По добре да е value="1"/value="2" .
Твоето не е грешно но аз предпочитам числа.




Ето как съм написал формуляра test.cgi:

#!/usr/bin/perl
use strict;
use CGI ':standard';
print "Content-type: text/html\n\n";

PrintForm();


sub PrintForm
{
print <<'EOF';
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>

<form method="POST" action="test2.cgi">
<input type="text" name="ime" /><br/>
<div align="left">
<input type="text" name="familia" /><br/><br/>

Хитрец ли сте? <br/><br/>
1. Декларирате ли по принцип гледната си точка, когато ръководителят Ви не е прав?<div>
<p align="left">
<input type="radio" name="Q1" value="1">
Да <br>
<input type="radio" name="Q1" value="2">
Не </p>
<div align="left">2. Когатo закъснеете за училище или за работа, стараете
ли се да влезете тихо, така че да не Ви забележат?<br>
</div>
<p align="left">
<input type="radio" name="Q2" value="1">
Да <br>
<input type="radio" name="Q2" value="2">
Не </p>
<p align="left">3. Ще помолите ли приятеля си да направи за Вас нещо,
което Вие се страхувате да направите сам?</p>
<p align="left">
<input type="radio" name="Q3" value="1">
Да <br>
<input type="radio" name="Q3" value="2">
Не <br>
</p>


<input type="submit" value="Давай">
</form>
</body>

EOF

}



В скрипта test2.cgi аз проверявам само името дали е с повече от 3 букви.
Така както си се опитала ти да го направиш.
Ако е с по малко букви му показва надпис "Трябва да е с най малко 3 букви" и exit; .

Не мога да ти кажа защо трябва да се декларират променливите с които ще работя в самия скрипт. Не си спомням какво точно беше .

Ето и скрипта test2.php:


#!/usr/bin/perl
use strict;
use CGI ':standard';
my ($ime,$familia,$q1,$q2,$q3,$tochki);
$ime= param('ime');
$familia= param('familia');
$q1= param('Q1');
$q2= param('Q2');
$q3= param('Q3');
print "Content-type: text/html\n\n";
if (length($ime)<3)
{print "Името ви трябва да е с повече от 3 букви";exit;}

if($q1==2){$tochki=$tochki+1;}
if($q2==1){$tochki=$tochki+1;}
if($q3==1){$tochki=$tochki+1;}


if($tochki==0){$tochki=0;}
print<<"TEST_RESULT";
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
Име: $ime <br/>
Фамилия: $familia<br/>
Точки: $tochki <br/>
TEST_RESULT

if ($tochki>1) {print "Ви сте голям хитрец";}
else {print "Ви не сте голям хитрец";}






Елементарен е но толкова мога в момента на PERL.
Виждаш как получавам данните и как ги обработвам.
Проверявам с няколко условия дали е написал верния отговор и ако го е написал му вдигам точките с едно.

Абе надявам се да ти свърши работа.
Ако не друго поне работи.
То и това не е малко. :)
 

Back
Горе