CGI приложение

pt_dimitrova каза:
Някой може ли да ми помогне да направия едно CGI приложение на PERL?
Зависи колко е сложно.
Играл съм си да правя някой лесни скриптчета но за нещо по-сериозно
няма да се справя.

Къде ще се изпълняват тези скриптове?
 
ами мисля че е просто ама нещо незнам как става.
искам да имам три страници:
1. index.html в която да си напишеш име и фамилия
2. да е test.cgi където ще се попълва някакъв тест
3. на тази страница да извежда името и фамилията на човека и според броя точки който е събрал да извежда информацията от теста.
 
pt_dimitrova каза:
ами мисля че е просто ама нещо незнам как става.
искам да имам три страници:
1. index.html в която да си напишеш име и фамилия
2. да е test.cgi където ще се попълва някакъв тест
3. на тази страница да извежда името и фамилията на човека и според броя точки който е събрал да извежда информацията от теста.



Чакай, че аз се обърках.. :)

Аз под CGI скрипт се сещам за PERL веднага и затова ти казах, че не ми се занимава с по сложни скриптове.

CGI може да е и PHP скрипт.

Само не разбрах защо трябва да е CGI а не ПХП?
Утре вечерта мога да ти напиша скриптовете/скрипта .
Ако искаш на PERL/CGI ако искаш на PHP .
 
pt_dimitrova каза:
ами трябва ми за една курсова

Ок.
На PERL трябва да е ? Така ли?
Само да не е за утре тази курсова.

И къде ще сложиш файловете?
На сървър ли ще ги качваш или просто трябва да занесеш кода на преподавателя?
 
pt_dimitrova каза:
трябва да го кача някъде но още незнам
не е за утре има време

Аз ще го тествам на сървъра на web-tourist-a.
Давам ти демо (за да видиш, че работи), файловете и се оправяй.

Ама утре вечерта може да е, че днес нямам време.
 
Дай някакъв прост пример за въпроси и точки.

Не че не мога да се сетя ама да знам ако искат нещо специфично..

Те какво.? Само име - въпроси и резултат..
Точки еди колко си и вие минахте тест/не минахте теста така ли?
 
аз съм си избрала този тест:
Хитрец ли сте?

1. Декларирате ли по принцип гледната си точка, когато ръководителят Ви не е прав?
Да
Не
2. Когатo закъснеете за училище или за работа, стараете ли се да влезете тихо, така че да не Ви забележат?
Да
Не
3. Ще помолите ли приятеля си да направи за Вас нещо, което Вие се страхувате да направите сам?
Да
Не
4. Във футбола, хокея и други спортове - смятате ли, че е по-добре честно да загубваш, отколкото нечестно да спечелиш?
Да
Не
5. Когато се опитате да се пошегувате с някого, той веднага ли разбира чие дело е това?

Да
Не

6. Можете ли да кажете явна лъжа, за да провокирате човек към откровеност?
Да
Не
7. Можехте ли в училище да преписвате от съседа си така, че той да не забележи това?

Да
Не

8. Можете ли да хитрувате така, че никой да не забележи?
Да
Не
9. Смятате ли, че отстояването на истината е проява на благородство и смелост?
Да
Не
10. Усещат ли се обикновено хората, когато лъжете?
Да
Не
11. Когато във Ваше присъствие се извършва несправедливост, Вие като правило застъпвате ли се за пострадалите?
Да
Не
12. Смятате ли, че лъжата е присъща на слабите хора?
Да
Не
13. Лесно ли прикривате раздразнението си?
Да
Не
14. Успешно ли използвате пищови на изпит?
Да
Не

1,4,10,11,12,13 носят 0 точки
2,3,5,6,7,8,14 носят 1

при <7 - Вие сте честен и искрен човек
при <12 - Вие не сте изключителен хитрец
при >12 - Вие сте не просто хитрец, Вие сте иключителен хитрец

ако искаш напиши само някои от въпросите, като видя как става аз ще ги довърша другите
 
Ok.
Ще намеря време утре или други ден.
Ако нещо взема, че забравя ( то е възможно и това да стане) ме подсети.
 
ОК
и аз тука се пробвам ама нищо не става.
незнам как да го направя тоя тест.
Благодаря ти!
 
да кажем че имам три файла:
1. registr.cgi - в него съм написала

#!perl
use warnings;
use strict;
use CGI;
print "Content-type:text/html;charset=windows-1251\n\n";
SaveData();
PrintForm();

sub PrintForm
{
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
}

sub SaveData
{
return if($ENV{REQUEST_METHOD} ne 'POST');
return if($ENV{CONTENT_LENGHT}>10000);
my $name=CGI::param('ime');
my $comment=CGI::param('comment');
if (length($name)<3)
{
print '<font color="red">Въведи валидно име</font>';
return;
}
my $txt=<<"EOF";
<table><tr>
<td>$name</td><td>$comment</td>
</tr></table>
<hr/>
EOF
open(FILE,'>>data.txt') or die $!;
print FILE $txt;
close FILE;
}

print " <a href=\"test.cgi\">Na4alo</a>";

следващият: test.cgi
#!perl
use warnings;
use strict;
use CGI;
print "Content-type:text/html;charset=windows-1251\n\n";
PrintForm();

sub PrintForm
{
print <<'EOF';
<form method="POST" print " a href=\"glavna.cgi\">
<form method="post" name="test">
<p align="left">1. Декларирате ли по принцип гледната си точка, когато
ръководителят Ви не е прав?
<p align="left">
<input type="radio" name="Q1" value="yes">
Да <br>
<input type="radio" name="Q1" value="no">
Не </p>
<div align="left">2. Когатo закъснеете за училище или за работа, стараете
ли се да влезете тихо, така че да не Ви забележат?<br>
</div>
<p align="left">
<input type="radio" name="Q2" value="yes">
Да <br>
<input type="radio" name="Q2" value="no">
Не </p>
<p align="left">3. Ще помолите ли приятеля си да направи за Вас нещо,
което Вие се страхувате да направите сам?</p>
<p align="left">
<input type="radio" name="Q3" value="yes">
Да <br>
<input type="radio" name="Q3" value="no">
Не <br>
</p>
<p align="left">4. Във футбола, хокея и други спортове - смятате ли,
че е по-добре честно да загубваш, отколкото нечестно да спечелиш?
<p align="left">
<input type="radio" name="Q4" value="yes">
Да <br>
<input type="radio" name="Q4" value="no">
Не <br>
</p>
<p align="left">5. Когато се опитате да се пошегувате с някого, той
веднага ли разбира чие дело е това?<br>
<br>
<input type="radio" name="Q5" value="yes">
Да <br>
<input type="radio" name="Q5" value="no">
Не <br>
<p align="left"><br>
6. Можете ли да кажете явна лъжа, за да провокирате човек към откровеност?
<p align="left">
<input type="radio" name="Q6" value="yes">
Да <br>
<input type="radio" name="Q6" value="no">
Не <br>
</p>
<p align="left">7. Можехте ли в училище да преписвате от съседа си така,
че той да не забележи това?<br>
<br>
<input type="radio" name="Q7" value="yes">
Да <br>
<input type="radio" name="Q7" value="no">
Не <br>
<p align="left"><br>
8. Можете ли да хитрувате така, че никой да не забележи?
<p align="left">
<input type="radio" name="Q8" value="yes">
Да <br>
<input type="radio" name="Q8" value="no">
Не <br>
</p>
<div align="left">9. Смятате ли, че отстояването на истината е проява
на благородство и смелост?</div>
<p align="left">
<input type="radio" name="Q9" value="yes">
Да <br>
<input type="radio" name="Q9" value="no">
Не <br>
</p>
<p align="left">10. Усещат ли се обикновено хората, когато лъжете?
<p align="left">
<input type="radio" name="Q10" value="yes">
Да <br>
<input type="radio" name="Q10" value="no">
Не <br>
</p>
<p align="left">11. Когато във Ваше присъствие се извършва несправедливост,
Вие като правило застъпвате ли се за пострадалите?</p>
<p align="left">
<input type="radio" name="Q11" value="yes">
Да <br>
<input type="radio" name="Q11" value="no">
Не </p>
<div align="left">12. Смятате ли, че лъжата е присъща на слабите хора?<br>
</div>
<p align="left">
<input type="radio" name="Q12" value="yes">
Да <br>
<input type="radio" name="Q12" value="no">
Не </p>
<p align="left">13. Лесно ли прикривате раздразнението си?</p>
<p align="left">
<input type="radio" name="Q13" value="yes">
Да <br>
<input type="radio" name="Q13" value="no">
Не <br>
</p>
<p align="left">14. Успешно ли използвате пищови на изпит?
<p align="left">
<input type="radio" name="Q14" value="yes">
Да <br>
<input type="radio" name="Q14" value="no">
Не<br>
</p>
<p align="center">Моля, прeди да натиснете бутона проверете дали сте
отговорили на всички въпроси </p>
<p align="center"><br>
<input type="button" name="calculate" value="Изчисли" onClick="calc()">
<input type="reset" value="Изтрий" name="reset">
</p>

</form>
EOF
}

и последният в който ще се извежда резултата е glavna.cgi
#!perl
use warnings;
use strict;
use CGI;
print "Content-type:text/html;charset=windows-1251\n\n";

PrintData();

sub PrintData
{
open FILE,'data.txt' or return;
print <FILE>;
close FILE;
}

има грешки и още има да се пише, но незнам как да го напиша и къде
 
Само не разбрах защо четеш от някакъв текстов файл?

Трябва ли да се записват резултатите някъде?

Файла за да го пробваш трябва да е качен на сървър с PERL.

Слагаш го в папка cgi-bin и в първия ред описваш пътя до интерпретатора.

Аз разбрах, че искаш 2 файла .
Единия е с въпросите (анкетата) а втория просто ти дава резултатите.

Трябва ли да се записва някъде?
 
Чесно да ти кажа и аз незнам.
Искам на първата страница посетителя да си записва името да дава например Next там да попълва теста/анкетата да натиска "Резултат" и на тази страница да излизат името и фамилията на посетителя и резултата който е получил от теста.
 
pt_dimitrova каза:
Чесно да ти кажа и аз незнам.
Искам на първата страница посетителя да си записва името да дава например Next там да попълва теста/анкетата да натиска "Резултат" и на тази страница да излизат името и фамилията на посетителя и резултата който е получил от теста.

Това няма да е трудно.
Аз ти предлагам 2 файла.
В първия да си попълва името, данните и самата анкета.
Във втория му казва :
Име:
Иван Иванов.

Резултат от теста ......
 
Виж това:

http://web-tourist.net/cgi-bin/test.cgi

НА първия въпрос дава точка на "Не"
а на останалите дава точка ако отговора е "Да".
 

Back
Горе