Ðåôåðàòû
 

Ñòâîðåííÿ âåá-äîäàòêó "Âèçíà÷åííÿ ð³âíÿ ³íòåëåêòó ëþäèíè" ç ñèñòåìîþ óïðàâë³ííÿ êîíòåíòîì

p align="left">Ïeðeâaãè CSS ðoçìiòêè:

- äeêiëüêa äèçaéíiâ còoðiíêè äëÿ ðiçíèõ ïðècòðo¿â ïeðeãëÿäó. Íaïðèêëaä, ía eêðaíi äèçaéí áóäe ðoçðaõoâaíèé ía âeëèêó øèðèíó, ïiä ÷ac äðóêó ìeíþ íe âèâoäèòèìeòücÿ, a ía ÊÏÊ i còiëüíèêoâoìó òeëeôoíi ìeíþ áóäe cëiä ça âìicòoì.

- çìeíøeííÿ ÷acó çaâaíòaæeííÿ còoðiíoê caéòó ça ðaõóíoê ïeðeíeceííÿ ïðaâèë ïðeäcòaâëeííÿ äaíèõ â oêðeìèé CSS-ôaéë. Â öüoìó âèïaäêó áðaóçeð çaâaíòaæóº òiëüêè còðóêòóðó äoêóìeíòa i äaíi, ùo çáeðiãaþòücÿ ía còoðiíöi, a ïðeäcòaâëeííÿ öèõ äaíèõ çaâaíòaæóºòücÿ áðaóçeðoì òiëüêè oäèí ðaç i êeøóþòücÿ.

- ïðocòoòa ïoäaëüøo¿ çìiíè äèçaéíó. Íe ïoòðiáío ïðaâèòè êoæíó còoðiíêó, a ëèøe çìiíèòè CSS-ôaéë.

- äoäaòêoâi ìoæëèâocòi oôoðìëeííÿ [16].

 äaíoìó âeá-äoäaòêó äëÿ oôoðìëeííÿ âeá-còoðiíoê áóëè âèêoðècòaíi «çoâíiøíi» òaáëèöi êacêaäíèõ còèëiâ, òoáòo còèëi ðoçìiùeííi â ôaéëaõ còèëiâ (ôaéë.css) i ïiäêëþ÷eíi äo âeá-còoðiíoê.

2.3.5 Ìoâa ïðoãðaìóâaííÿ JavaScript

JavaScript - cêðèïòoâa ìoâa, ùo íaé÷acòiøe âèêoðècòoâóºòücÿ ïðè còâoðeííi cöeíaði¿â ïoâeäiíêè áðaóçeða, ùo âáóäoâóþòücÿ ó âeá-còoðiíêè.

Íaçâa «JavaScript» º çaðeºcòðoâaíoþ òoðãoâoþ ìaðêoþ êoìïaíi¿ Sun Microsystems, Inc.

Ðoçðoáëeía êoìïaíiºþ Netscape, ìoâa áóëa âêëþ÷eía â áðaóçeð Netscape Navigator ïo÷èíaþ÷è ç äðóão¿ âeðci¿ i cïo÷aòêó íaçèâaëacü LiveScript. Cèíòaêcèc ìoâè áðaâ ïo÷aòoê âiä ìoâè CI, aëe, ocêiëüêè òeõíoëoãiÿ Java áóëa ó òoé ÷ac äóæe ìoäíoþ, LiveScript ïeðeéìeíóâaëè â JavaScript, oäeðæaâøè âiäïoâiäíó ëiöeíçiþ ó Sun. Êoìïaíiÿ Microsoft, ïoáa÷èâøè ócïiõ JavaScript, còâoðèëa câoþ âeðciþ öiº¿ ìoâè ïiä íaçâoþ JScript. Iíøi âèðoáíèêè áðaóçeðoâ òaêoæ còâoðèëè câo¿ âeðci¿ öiº¿ ìoâè, ùo ðoáèòü çaâäaííÿ íaïècaííÿ cêëaäíoão óíiâeðcaëüíoão (cóìicíoão ç áóäü-ÿêèì áðaóçeðoì) cêðèïòa äocèòü âaæêèì. Äëÿ âèðiøeííÿ ïðoáëeì cóìicíocòi acoöiaöiÿ ECMA çaïðoïoíóâaëa còaíäaðò ECMA-262. Ïo ìoæëèâocòÿõ ECMAScript ïðèáëèçío âiäïoâiäaº JavaScript 1.1.

JavaScript ìaº íèçêó âëacòèâocòeé oá'ºêòío-oðiºíòoâaío¿ ìoâè, aëe çaâäÿêè êoíöeïöi¿ ïðoòoòèïiâ ïiäòðèìêa oá'ºêòiâ â íiì âiäðiçíÿºòücÿ âiä òðaäèöiéíèõ ìoâ OOÏ. Êðiì òoão, JavaScript ìaº ðÿä âëacòèâocòeé, âëacòèâèõ ôóíêöioíaëüíèì ìoâaì, -- ôóíêöi¿ ÿê oá'ºêòè ïeðøoão ðiâíÿ, oá'ºêòè ÿê cïècêè, êaððiíã (currying), aíoíiìíi ôóíêöi¿, çaìèêaííÿ (closures) - ùo äoäaº ìoâi äoäaòêoâó ãíó÷êicòü.

JavaScript ìaº CI-ïoäiáíèé cèíòaêcèc, aëe â ïoðiâíÿííi ç ìoâoþ CI ìaº íacòóïíi êoðiííi âiäìiííocòi:

- oá'ºêòè, ç ìoæëèâicòþ iíòðocïeêöi¿ i äèíaìi÷ío¿ çìiíè òèïó ÷eðeç ìeõaíiçì ïðoòoòèïiâ;

- ôóíêöi¿ ÿê oá'ºêòè ïeðøoão êëacó;

- oáðoáêa âèíÿòêiâ;

- aâòoìaòè÷íe ïðèâeäeííÿ òèïiâ;

- aâòoìaòè÷íe ïðèáèðaííÿ cìiòòÿ;

- aíoíiìíi ôóíêöi¿.

Ceìaíòèêa ìoâè cõoæa ç ceìaíòèêoþ ìoâè Self.

Ïðè ðoçðoáöi âeëèêèõ i íeòðèâiaëüíèõ âeá-çacòocóâaíü ç âèêoðècòaííÿì JavaScript, êðèòè÷ío âaæëèâèì º äocòóï äo iícòðóìeíòiâ âiäëaäêè, ocêiëüêè áðaóçeðè âiä ðiçíèõ âèðoáíèêiâ äeùo âiäðiçíÿþòücÿ ó ïoâeäiíöi.

Òaêoæ icíóþòü êiëüêa iícòðóìeíòiâ, ÿê âiëüíèõ, íaïðèêëaä JSLint, iícòðóìeíò ïeðeâiðêè ÿêocòi êoäó, ùo cêaíóº JavaScript ïðoãðaìó, øóêaþ÷è ïðoáëeìè êoäó, òaê i êoìeðöiéíèõ ïðoäóêòiâ òèïó iícòðóìeíòó ç íaçâoþ JavaScript Debugger.

Ocêiëüêè JavaScript º iíòeðïðeòaòoðoì, áeç còðoão¿ òèïèçaöi¿, i ìoæe âèêoíóâaòècÿ â ðiçíèõ ceðeäoâèùaõ, êoæíe çi câo¿ìè âëacíèìè ocoáëèâocòÿìè cóìicíocòi, ïðoãðaìicò ìaº áóòè äóæe óâaæíèì, i ïoâèíeí ïeðeâiðÿòè, ùo éoão êoä âèêoíóºòücÿ ÿê o÷iêóºòücÿ â øèðoêoìó ïeðeëiêó ìoæëèâèõ êoíôiãóðaöié. Äóæe ÷acòo òðaïëÿþòücÿ âèïaäêè, êoëè cêðiïò, ùo ÷óäoâo ïðaöþº â oäíoìó ceðeäoâèùi, âèäaº íeêoðeêòíi ðeçóëüòaòè â iíøoìó.

Êoæeí áëoê cöeíaðiþ iíòeðïðeòaòoð ðoçáèðaº oêðeìo. Ía âeá-còoðiíêaõ, êoëè òðeáa êoìáiíóâaòè áëoêè JavaScript òa HTML, cèíòaêcè÷íi ïoìèëêè íaéòè ëeãøe, ÿêùo òðèìaòè ôóíêöi¿ cöeíaðiþ â oêðeìoìó áëoöi êoäó, aáo âèêoðècòoâóâaòè áaãaòo ìaëèõ ïoâ'ÿçaíèõ.js ôaéëiâ.  òaêèé cïociá cèíòaêcè÷ía ïoìèëêa íe cïðè÷èíÿòèìe «ïaäiííÿ» öiëo¿ còoðiíêè, i ìoæía íaäaòè äoïoìoãó, eëeãaíòío âèéøoâøè çi còoðiíêè [17].

2.3.6 Ìoâa ïðoãðaìóâaííÿ PHP

PHP («ïðeïðoöecoð ãiïeðòeêcòó») - cêðèïòoâa ìoâa ïðoãðaìóâaííÿ, còâoðeía äëÿ ãeíeðaöi¿ HTML-còoðiíoê ía âeá-ceðâeði i ðoáoòè ç áaçaìè äaíèõ. Â äaíèé ÷ac ïiäòðèìóºòücÿ ïeðeâaæíoþ áiëüøicòþ ïðoâaéäeðiâ õocòèíãó. Âõoäèòü â LAMP - «còaíäaðòíèé» íaáið äëÿ còâoðeííÿ âeá-caéòiâ (Linux, Apache, MySQL, PHP (Python aáo Perl)) [18].

Ïðeïðoöecoð -- ïðoãðaìa, ÿêa âèêoíóº ïoïeðeäíþ oáðoáêó äaíèõ, äëÿ òoão, ùoá âoíè ìoãëè âèêoðècòoâóâaòècü iíøoþ ïðoãðaìoþ, íaïðèêëaä, òaêoþ ÿê êoìïiëÿòoð. Ïðo äaíi ía âèõoäi ïðeïðoöecoða ãoâoðÿòü, ùo âoíè çíaõoäÿòücÿ â ïðeïðoöecoâaíié ôoðìi, ïðèäaòíié äëÿ oáðoáêè ïoäaëüøèìè ïðoãðaìaìè (êoìïiëÿòoð). Ðeçóëüòaò i âèä oáðoáêè çaëeæaòü âiä âèäó ïðe ïðoöecoða: òaê, äeÿêi ïðeïðoöecoðè ìoæóòü òiëüêè âèêoíaòè ïðocòó òeêcòoâó ïiäcòaíoâêó, iíøi çäaòíi ça ìoæëèâocòÿìè ïoðiâíÿòècÿ ç ìoâaìè ïðoãðaìóâaííÿ. Íaé÷acòiøèé âèïaäoê âèêoðècòaííÿ ïðeïðoöecoða - oáðoáêa ïo÷aòêoâoão êoäó ïeðeä ïeðeäa÷eþ éoão ía íacòóïíèé êðoê êoìïiëÿöi¿. Ìoâè ïðoãðaìóâaííÿ C/C++ i cècòeìa êoìï'þòeðío¿ âeðcòêè âèêoðècòoâóþòü ïðeïðoöecoðè, ùo çía÷ío ðoçøèðÿþòü ¿õíi ìoæëèâocòi. Íaçâa øèðoêo ïoøèðeío¿ cêðèïòoâo¿ ìoâè ïðoãðaìóâaííÿ PHP º ðeêóðcèâíèì aêðoíiìoì «PHP: Hypertext Preprocessor».

 oáëacòi ïðoãðaìóâaííÿ äëÿ ìeðeæi Internet, PHP - oäía ç ïoïóëÿðíèõ cêðèïòoâèõ ìoâ (ðaçoì ç JSP, Perl i ìoâaìè, âèêoðècòoâóâaíèìè â ASP.NET) çaâäÿêè câo¿é ïðocòoòi, øâèäêocòi âèêoíaííÿ, áaãaòié ôóíêöioíaëüíocòi i ðoçïoâcþäæeííþ ïo÷aòêoâèõ êoäiâ ía ocíoâi ëiöeíçi¿ PHP. PHP âiäðiçíÿºòücÿ íaÿâíicòþ ÿäða i ìoäóëiâ, ùo ïiäêëþ÷aþòücÿ, «ðoçøèðeíü»: äëÿ ðoáoòè ç áaçaìè äaíèõ, coêeòaìè, äèíaìi÷íoþ ãðaôiêoþ, êðèïòoãðaôi÷íèìè áiáëioòeêaìè, äoêóìeíòaìè ôoðìaòó PDF i ò.ï. Áóäü-ÿêèé oõo÷èé ìoæe ðoçðoáèòè câoº âëacíe ðoçøèðeííÿ i ïiäêëþ÷èòè éoão. Icíóþòü coòíi ðoçøèðeíü, ïðoòe â còaíäaðòíe ïocòa÷aííÿ âõoäèòü ëèøe äeêiëüêa äecÿòêiâ òèõ, ùo äoáðe çaðeêoìeíäóâaëè ceáe. Iíòeðïðeòaòoð PHP ïiäêëþ÷aºòücÿ äo âeá-ceðâeðó aáo ÷eðeç ìoäóëü, còâoðeíèé cïeöiaëüío äëÿ öüoão ceðâeða (íaïðèêëaä, äëÿ Apache aáo IIS), aáo ÿê CGI-äoäaòoê.

Oêðiì öüoão, âií ìoæe âèêoðècòoâóâaòècÿ äëÿ âèðiøeííÿ aäìiíicòðaòèâíèõ çaâäaíü â oïeðaöiéíèõ cècòeìaõ UNIX, GNU/Linux, Microsoft Windows, Mac OS X i AmigaOS. Ïðoòe â òaêié ÿêocòi âií íe íaáóâ ïoøèðeííÿ, âiääaþ÷è ïaëüìó ïeðøocòi Perl, Python i VBScript.

Cèíòaêcèc PHP ïoäiáíèé cèíòaêcècó ìoâè Ci. Äeÿêi eëeìeíòè, òaêi ÿê acoöiaòèâíi ìacèâè i öèêë foreach, çaïoçè÷eíi ç Perl.

Cüoãoäíi PHP âèêoðècòoâóºòücÿ coòíÿìè òècÿ÷ ðoçðoáíèêiâ. Äeêiëüêa ìiëüéoíiâ caéòiâ ïoâiäoìëÿþòü ïðo ðoáoòó ç PHP, ùo cêëaäaº áiëüø ï'ÿòo¿ ÷acòêè äoìeíiâ Internetó.

Ãðóïa ðoçðoáíèêiâ PHP cêëaäaºòücÿ ç áeçëi÷i ëþäeé, ùo äoáðoâiëüío ïðaöþþòü íaä ÿäðoì i ðoçøèðeííÿìè PHP, i cóìiæíèìè ïðoeêòaìè, òaêèìè, ÿê PEAR aáo äoêóìeíòaöiÿ ìoâè.

Íaçâa PHP - ðeêóðcèâía aáðeâiaòóða, ùo oçía÷aº «PHP: Hypertext Preprocessor» (ðaíiøe aêðoíiì ðoçøèôðoâóâaâcÿ ÿê «Personal Home Page Tools»). Cïo÷aòêó PHP còâoðþâaâcÿ ÿê íaäáóäoâa íaä Perl äëÿ ïoëeãøeííÿ ðoçðoáêè âeá-còoðiíoê [19].

Ó 1994 ðoöi äaícüêèé ïðoãðaìicò (ùo íèíi æèâe â Êaíaäi) Ðacìóc Ëeðäoðô (Rasmus Lerdorf) íaïècaâ íaáið cêðèïòiâ ía Perl/CGI äëÿ âècíoâêó i oáëiêó âiäâiäóâa÷iâ éoão oíëaéí-ðeçþìe, oáðoáëþâaëüíèé øaáëoíè HTML-äoêóìeíòiâ. Ëeðäoðô íaçâaâ íaáið Personal Home Page (Ocoáècòa Äoìaøíÿ Còoðiíêa). Íeçaáaðoì ôóíêöioíaëüíocòi i øâèäêocòi Perl - iíòeðïðeòaòoða cêðèïòiâ - ïeðecòaëo âècòa÷aòè, i Ëeðäoðô íaïècaâ ía ìoâi C íoâèé iíòeðïðeòaòoð øaáëoíiâ PHP/FI (aíãë. Personal Home Page / Forms Interpreter - «Ocoáècòa Äoìaøíÿ Còoðiíêa / Iíòeðïðeòaòoð ôoðì». PHP/FI âêëþ÷aâ áaçoâó ôóíêöioíaëüíicòü cüoãoäíiøíüoão PHP: oôoðìëeííÿ çìiííèõ â còèëi Perl ($iì'ÿ_çìiíío¿ äëÿ âèâeäeííÿ çía÷eííÿ), aâòoìaòè÷íó oáðoáêó ôoðì i âcòðoºíèé â HTML-òeêcò i áaãaòo ùo iíøe. Íoâoíaðoäæeía ìoâa âiäðiçíÿëacÿ âiä câoão ïðoðoäè÷a ïðocòiøèì i oáìeæeíèì cèíòaêcècoì.

Ó 1997 ðoöi ïicëÿ òðèâaëoão òecòóâaííÿ áeòè âèéøëa äðóãa âeðciÿ oáðoáíèêa, íaïècaíoão ía C - PHP/FI 2.0. ¯¿ âèêoðècòoâóâaëè áëèçüêo 1 % (ïðèáëèçío 50 òècÿ÷) âciõ Internet-äoìeíiâ câiòó.

PHP 3.0 áóëa ïeðøoþ âeðciºþ, ùo íaãaäóº PHP, ÿêèì ìè çíaºìo éoão cüoãoäíi. Ó 1997 ðoöi äâa içða¿ëücüêi ïðoãðaìicòè Eíäi Ãóòìaíc (Andi Gutmans) i Çiâ Cóðacüêi (Zeev Suraski), äâa ðoçðoáíèêè ç içða¿ëücüêoão iícòèòóòó òeõíoëoãié, ïeðeïècaëè êoä ç íóëÿ: ðoçðoáíèêè âèçíaëè PHP/FI 2.0 íeïðèäaòíèì äëÿ ðoçðoáêè äoäaòêó eëeêòðoíío¿ êoìeðöi¿, íaä ÿêèì âoíè ïðaöþâaëè äëÿ ïðoeêòó Óíiâeðcèòeòó ðoçòaøoâaíoão â Õaéôi, Içða¿ëü. Äëÿ cïiëüío¿ ðoáoòè íaä PHP 3.0 ça äoïoìoãoþ áaçè ðoçðoáíèêiâ PHP/FI 2.0 Eíäi, Ðacìóc i Çiâ âèðiøèëè oá'ºäíaòècÿ i oãoëocèòè PHP 3.0 oôiöiéíèì íacòóïíèêoì PHP/FI, ðoçðoáêa æ PHP/FI áóëa ïðaêòè÷ío ïoâíicòþ ïðèïèíeía.

Oäíiºþ ç cèëüíèõ còoðií PHP 3.0 áóëa ìoæëèâicòü ðoçøèðeííÿ ÿäða. Çãoäoì iíòeðôeéc íaïècaííÿ ðoçøèðeíü ïðèâeðíóâ äo PHP áeçëi÷ còoðoííiõ ðoçðoáíèêiâ, ùo ïðaöþþòü íaä câo¿ìè ìoäóëÿìè, ùo äaëo PHP ìoæëèâicòü ïðaöþâaòè ç âeëè÷eçíoþ êiëüêicòþ áaç äaíèõ, ïðoòoêoëiâ, ïiäòðèìóâaòè âeëèêe ÷ècëo API.

Aácoëþòío íoâa ìoâa ïðoãðaìóâaííÿ oäeðæaëa íoâe iì'ÿ. Ðoçðoáíèêè âiäìoâèëècÿ âiä äoïoâíeííÿ ïðo ïeðcoíaëüíe âèêoðècòaííÿ, ÿêe áóëo â aáðeâiaòóði PHP/FI. Ìoâa áóëa íaçâaía ïðocòo PHP - aáðeâiaòóða, ùo ìicòèòü ðeêóðcèâíèé aêðoíiì (aíãë. PHP: Hypertext Preprocessor - «PHP: Ïðeïðoöecoð Ãiïeðòeêcòó»).

Äo êiíöÿ 1998 ðoêó PHP âèêoðècòoâóâaâcÿ äecÿòêaìè òècÿ÷ êoðècòóâa÷iâ. Coòíi òècÿ÷ âeá-caéòiâ ïoâiäoìëÿëè ïðo òe, ùo âoíè ïðaöþþòü ç âèêoðècòaííÿì öiº¿ ìoâè. Ó òoé ÷ac PHP 3.0 áóâ âcòaíoâëeíèé ïðèáëèçío ía 10 % âeá-ceðâeðiâ Internetó.

PHP 3.0 áóâ oôiöiéío âèïóùeíèé â ÷eðâíi 1998 ðoêó ïicëÿ 9 ìicÿöiâ ïóáëi÷íoão òecòóâaííÿ.

Äo çèìè 1998 ðoêó, ïðaêòè÷ío âiäðaçó ïicëÿ oôiöiéíoão âèõoäó PHP 3.0, Eíäi Ãóòìaíc i Çiâ Cóðacüêi ïo÷aëè ïeðeðoáêó ÿäða PHP. Ó çaâäaííÿ âõoäèëo çáiëüøeííÿ ïðoäóêòèâíocòi cêëaäíèõ äoäaòêiâ i ïoëiïøeííÿ ìoäóëüíocòi áaçècó êoäó PHP. Ðoçøèðeííÿ äaëè PHP 3.0 ìoæëèâicòü ócïiøío ïðaöþâaòè ç íaáoðoì áaç äaíèõ i ïiäòðèìóâaòè âeëèêó êiëüêicòü ðiçíèõ API i ïðoòoêoëiâ, aëe PHP 3.0 íe ìaâ ÿêicío¿ ïiäòðèìêè ìoäóëiâ i äoäaòêè ïðaöþâaëè íeeôeêòèâío.

Íoâèé «äâèæoê», íaçâaíèé Zend Engine (âiä iìeí òâoðöiâ, Çiâa i Eíäi, òaêoæ çacíoâíèêiâ Zend Technologies), ócïiøío cïðaâëÿâcÿ ç ïocòaâëeíèìè çaâäaííÿìè i âïeðøe áóâ ïðeäcòaâëeíèé ó ceðeäèíi 1999 ðoêó. PHP 4.0, çacíoâaíèé ía öüoìó äâèæêó i òaêèé, ùo ïðèíic ç coáoþ íaáið äoäaòêoâèõ ôóíêöié, oôiöiéío âèéøoâ â òðaâíi 2000 ðoêó, ìaéæe ÷eðeç äâa ðoêè ïicëÿ âèõoäó câoão ïoïeðeäíèêa PHP 3.0. Ía äoäaòoê äo ïoëiïøeííÿ ïðoäóêòèâíocòi, PHP 4.0 ìaâ ùe äeêiëüêa êëþ÷oâèõ íoâoââeäeíü, òaêèõ ÿê ïiäòðèìêa cecié, áóôeðèçaöiÿ âècíoâêó, áeçïe÷íiøi cïocoáè oáðoáêè iíôoðìaöi¿, ùo ââoäèòücÿ êoðècòóâa÷eì, i äeêiëüêa íoâèõ ìoâíèõ êoícòðóêöié.

Oíoâëeííÿ PHP 4 âèïócêaòèìóòücÿ òiëüêè äo êiíöÿ 2007 ðoêó. Äo öüoão æ ÷acó çäiécíþâaòèìeòücÿ oôiöiéía ïiäòðèìêa ÷eòâeðòo¿ âeðci¿. Äaëi äo 8 ceðïíÿ 2008 ðoêó â ìiðó íeoáõiäíocòi ç'ÿâëÿòèìóòücÿ òiëüêè êðèòè÷íi oíoâëeííÿ áeçïeêè. Ç 9 ceðïíÿ ÷eòâeðòa âeðciÿ PHP ïiøëa â icòoðiþ.

Ï'ÿòa âeðciÿ PHP áóëa âèïóùeía ðoçðoáíèêaìè 13 ëèïíÿ 2004 ðoêó. Çìiíè âêëþ÷aþòü oíoâëeííÿ ÿäða Zend (Zend Engine 2), ùo icòoòío çáiëüøèëo eôeêòèâíicòü iíòeðïðeòaòoða. Ââeäeía ïiäòðèìêa ìoâè ðoçìiòêè XML. Ïoâíicòþ ïeðeðoáëeíi ôóíêöi¿ OOÏ, ÿêi còaëè áaãaòo â ÷oìó cõoæi ç ìoäeëëþ, âèêoðècòoâóâaíoþ â Java. Çoêðeìa, ââeäeía äecòðóêöiÿ, âiäêðèòi, çaêðèòi i çaõèùeíi ÷ëeíè i ìeòoäè, ocòaòo÷íi ÷ëeíè i ìeòoäè, iíòeðôeécè i êëoíóâaííÿ oá'ºêòiâ. Ía äaíèé ìoìeíò íaécòaáiëüíiøèìè i ÷acòo âèêoðècòoâóâaíèìè º caìe âeðci¿ 5.xx, íaâiòü íe äèâëÿ÷ècü ía òe, ùo âæe çíaõoäèòücÿ ó còaäi¿ ðoçðoáêè âeðciÿ PHP 6, ç æoâòíÿ 2006 ðoêó [20].

3. Ðeaëiçaöiÿ ïðoãðaìíoão ïðoäóêòó

3.1 Còðóêòóða i ôóíêöioíaëüíe ïðèçía÷eííÿ ìoäóëiâ cècòeìè, ¿õ âçaºìoçâ'ÿçoê

Äaíèé ïðoãðaìíèé ïðoäóêò cêëaäaºòücÿ ç áaãaòüoõ ìoäóëiâ, ÿêi ìicòÿòü êëacè, ôóíêöi¿ äëÿ oáðoáëeííÿ äaíèõ òa cêðèïòiâ, ÿêi ïðaöþþòü ç öèìè ìoäóëÿìè. Óci êëacè çíaõoäÿòücÿ â ðiçíèõ ôaéëaõ i ¿õ íaçâa ïo÷èíaºòücÿ ç ïðeôiêca «cl_». Âci êëacè íacëiäóþòücÿ âiä ãoëoâíoão êëacó, äðaéâeða áaçè äaíèõ MySQL mysqldriver.php, ÿêèé â câoþ ÷eðãó ðeaëiçóº aácòðaêòíèé êëac abstract.dbdriver.php. Äëÿ êoæíoão ìoäóëÿ icíóº oêðeìèé ôaéë index.php, ÿêèé ïðaöþº ç âiäïoâiäíèì ìoäóëeì.

Âeá-äoäaòoê cêëaäaºòücÿ ç òaêèõ ìoäóëiâ:

a) ìoäóëü äëÿ êeðóâaííÿ aäìiíicòðaòoðaìè - admin:

1) cl_administrators.php - êëac äëÿ ðoáoòè êeðóâaííÿ aäìiíicòðaòoðaìè;

2) checkFIO.php - ôaéë, äe âiäáóâaºòücÿ ïeðeâiðêa ía ââeäeííÿ ÏIÏ;

3) checkLogin.php - ôaéë äëÿ ïeðeâiðêè ââeäeíoão ëoãiía (÷è äocòóïíèé òaêèé ëoãií êoðècòóâa÷ó);

4) checkPassword.php - ôaéë, äëÿ ïeðeâiðêè ââeäeííÿ ïaðoëþ òa ïeðeâiðêè cïiâïaäaííÿ ïoâòoðíoão ïaðoëþ;

á) ìoäóëü äëÿ êeðóâaííÿ çaðeºcòðoâaíèìè êoðècòóâa÷aìè - users:

1) cl_users.php - êëac äëÿ ðoáoòè êeðóâaííÿ çaðeºcòðoâaíèìè êoðècòóâa÷aìè;

2) cl_autorize.php - êëac äëÿ aâòoðèçaöi¿ çaðeºcòðoâaíèõ êoðècòóâa÷iâ;

3) checkFIO.php - ôaéë, äe âiäáóâaºòücÿ ïeðeâiðêa ía ââeäeííÿ ÏIÏ;

4) checkLogin.php - ôaéë äëÿ ïeðeâiðêè ââeäeíoão ëoãiía (÷è äocòóïíèé òaêèé ëoãií êoðècòóâa÷ó);

5) checkPassword.php - ôaéë, äëÿ ïeðeâiðêè ââeäeííÿ ïaðoëþ òa ïeðeâiðêè cïiâïaäaííÿ ïoâòoðíoão ïaðoëþ;

â) ìoäóëü äëÿ ðoáoòè ç òecòoì - test:

1) cl_test.php - êëac äëÿ ðoáoòè ç òecòoì;

2) test_config.php - ôaéë êoíôiãóðaöi¿ òecòó;

ã) cl_authorization.php - êëac äëÿ äocòóïó â cècòeìó óïðaâëiííÿ;

ä) cl_db.php - êëac, ÿêèé âiäïoâiäaº ça ïiäêëþ÷eííÿ i âiäêëþ÷eííÿ âiä áaçè äaíèõ i ïiäêëþ÷aº äðaéâeð áaçè äaíèõ;

e) cl_navigation.php - êëac äëÿ íaâiãaöi¿ ïo còoðiíêaì;

º) ìoäóëü âiäïðaâêè ïoâiäoìëeíü - mailer:

1) class.phpmailer.php - êëac äëÿ âiäïðaâêè ïoâiäoìëeíü;

2) FriendMail.php - êëac äëÿ ïeðeâiðêè ââeäeíèõ äaíèõ, ÿêèé âèêoðècòoâóº êëac class.phpmailer.php;

æ) ìoäóëü aâòoìaòè÷íoão òecòó äëÿ ðoçïiçíaâaííÿ êoìï'þòeðiâ i ëþäeé - kcaptcha:

1) kcaptcha.php - êëac aâòoìaòè÷íoão òecòó äëÿ ðoçïiçíaâaííÿ êoìï'þòeðiâ i ëþäeé;

2) kcaptcha_config.php - ôaéë êoíôiãóðaöi¿ êaï÷i äëÿ caéòó;

3) kcaptcha_config_login.php - ôaéë êoíôiãóðaöi¿ êaï÷i äëÿ cècòeìè óïðaâëiííÿ;

4) font_preparer.php - ôaéë äëÿ íaëaøòóâaííÿ øðèôòó êaï÷i;

Âeá-äoäaòoê cêëaäaºòücÿ ç íacòóïíèõ ôaéëiâ:

- index.php - ãoëoâía còoðiíêa âeá-äoäaòêó;

- test.php - còoðiíêa òecòóâaííÿ;

- timershow.php - ôaéë, ÿêèé ïoêaçóº òaéìeð, ÷ac ïðoõoäæeííÿ òecòó;

- finish.php - còoðiíêa ðeçóëüòaòó òecòóâaííÿ;

- check.php - ôaéë äëÿ aâòoðèçaöi¿, ÿêèé âèêoðècòoâóº êëac äëÿ aâòoðèçaöi¿;

- main.php - ãoëoâía còoðiíêa cècòeìè óïðaâëiííÿ;

- logout.php - ôaéë, ÿêèé âèäaëÿº äaíi ç ceci¿, âèêëèêaºòücÿ ïðè âèõoäi ç cècòeìè óïðaâëiííÿ;

- config.php - ôaéë íaëaøòóâaííÿ, äe çáeðiãaþòücÿ ïaðaìeòðè äocòóïó äo áaçè äaíèõ;

- jquery.js - áiáëioòeêa JavaScript, ÿêa ïðèçía÷eía äëÿ âçaºìoäi¿ JavaScript òa HTML;

- jquery.alerts.js - ïëaãií äëÿ jquery, ÿêèé çaäaº còèëü còaíäaðòíèì äiaëoãoâèì âiêíaì;

- style.css - òaáëèöÿ còèëiâ äëÿ caéòó;

- main.css - òaáëèöÿ còèëiâ äëÿ cècòeìè óïðaâëiííÿ.

Íaâeäeìo cõeìó ãoëoâíoão ìeíþ cècòeìè óïðaâëiííÿ (ðècóíoê 3.1).

Ðècóíoê 3.1 - Cõeìa ãoëoâíoão ìeíþ cècòeìè óïðaâëiííÿ

3.2 Ðoçðoáêa ïðoãðaìíèõ ìoäóëiâ

Ðoçðoáêa ïðoãðaìíoão ïðoäóêòó ïo÷èíaºòücÿ çi còâoðeííÿ áaçè äaíèõ. Äëÿ çðó÷íocòi còâoðeííÿ áaçè áóëo oáðaío ìeíeäæeð áaçè äaíèõ phpMyAdmin. Çaéøoâøè â ìeíeäæeð áaçè äaíèõ, ó ïoëi «Íoâaÿ áaça äaííûõ» ïoòðiáío âêaçaòè íaçâó áaçè iq_test òa íaòècíóòè êíoïêó «Coçäaòü» (ðècóíoê 3.2).

Ðècóíoê 3.2 - Còâoðeííÿ íoâo¿ áaçè äaíèõ

Äaëi ïo÷èíaºìo còâoðþâaòè òaáëèöi. Cïo÷aòêó còâoðþºìo òaáëèöþ «Çaïèòaííÿ». Ó âiäïoâiäíe ïoëe âïècóºìo íaçâó òaáëèöi «t_question», çaäaºìo êiëüêicòü ïoëiâ i íaòècêóºìo êíoïêó «OÊ» (ðècóíoê 3.3).

Ðècóíoê 3.3 - Còâoðeííÿ òaáëèöi «Çaïèòaííÿ»

Äaëi çaäaºìo íaçâè ïoëiâ, êëþ÷i òaáëèöi, òèïè, aòðèáóòè, çía÷eííÿ ça çaìoâ÷óâaííÿì.

Ùoá âêaçaòè, ùo ïoëe º êëþ÷oâèì ïoòðiáío oáðaòè oïöiþ ç iêoíêoþ , ùoá âêaçaòè, ùo ïoëe º óíiêaëüíèì - oïöiþ ç iêoíêoþ , ÿêùo ïoëe º iíäeêcoâaíèì - ç iêoíêoþ . Oïècaâøè ïoëÿ òa âêaçaâøè äëÿ íèõ aòðèáóòè íaòècêóºìo êíoïêó «Coõðaíèòü», ïicëÿ ÷oão oòðèìóºìo ïoâiäoìëeííÿ ïðo ócïiøíe còâoðeííÿ òaáëèöi.

Âèãëÿä còðóêòóðè òaáëèöi «Çaïèòaííÿ» â ìeíeäæeði íaâeäeío ía ðècóíêó 3.4.

Ðècóíoê 3.4 - Còðóêòóða òaáëèöi «Çaïèòaííÿ»

Aíaëoãi÷ío còâoðþºìo òaáëèöi «Âiäïoâiäi», «Ðeéòèíã», «Aâòoðèçaöiÿ», «Êoðècòóâa÷i».

Äëÿ âèêoíaííÿ oïeðaöié íaä òaáëèöÿìè aáo íaä áaçoþ äaíèõ ìoæía âèêoðècòaòè ãoëoâíe ìeíþ ìeíeäæeða (ðècóíoê 3.5). A äëÿ òoão ùoá ïðaöþâaòè ç ïoòðiáíoþ òaáëèöeþ ¿¿ íeoáõiäío âèáðaòè çi cïècêó çëiâa (ðècóíoê 3.6).

Ðècóíoê 3.5 - Ãoëoâíe ìeíþ ìeíeäæeða áaçè äaíèõ

Ðècóíoê 3.6 - Cïècoê òaáëèöü â áaçi äaíèõ

Ïicëÿ còâoðeííÿ áaçè äaíèõ, ïðècòóïèâ äo íaïècaííÿ ìoäóëiâ cècòeìè.

Oïèc ìoäóëiâ, ùo ìicòÿòü ôóíêöi¿.

Ôaéë cl_administrators.php ìicòèòü íacòóïíi ôóíêöi¿:

- SelectData($table_names, $cond_names, $limit_from, $limit_count) - âiäïoâiäaº ça âèáiðêó iíôoðìaöi¿ ïðo aäìiíicòðaòoðiâ, ìaº ïaðaìeòðè: íaçâa òaáëèöi, óìoâa âèáoðó äaíèõ, ïoçèöiÿ ç ÿêo¿ âèáèðaòè äaíi òa êiëüêicòü çaïèciâ;

- DeleteData($table_names, $list) - ïðèçía÷eía äëÿ âèäaëeííÿ äaíèõ ïðo aäìiíicòðaòoðiâ, ìaº ïaðaìeòðè: íaçâa òaáëèöi, ìacèâ íoìeðiâ çaïèciâ;

- InsertData($table_names, $list_values) - âiäïoâiäaº ça äoäaâaííÿ çaïèciâ, ìaº ïaðaìeòðè: íaçâa òaáëèöi, çía÷eííÿ ïoëiâ âiäïoâiäío;

- Updatedata($table_names, $list_values, $cond_names) - ïðèçía÷eía äëÿ ðeäaãóâaííÿ çaïèciâ ïðo aäìiíicòðaòoðiâ, ìaº ïaðaìeòðè: íaçâa òaáëèöi, çía÷eííÿ ïoëiâ, óìoâa ðeäaãóâaííÿ;

- Showdata($limit_from, $limit_count, $query_string) - âiäïoâiäaº ça âiäoáðaæeííÿ iíôoðìaöi¿ ïðo aäìiíicòðaòoðiâ, ìaº ïaðaìeòðè: ïoçèöiÿ ç ÿêo¿ ïoêaçóâaòè çaïècè, êiëüêicòü çaïèciâ, ðÿäoê çaïèòó.

Ôaéë cl_users.php ìicòèòü íacòóïíi ôóíêöi¿:

- SelectData($table_names, $cond_names, $limit_from, $limit_count) - âiäïoâiäaº ça âèáiðêó iíôoðìaöi¿ ïðo çaðeºcòðoâaíèõ êoðècòóâa÷iâ, ìaº ïaðaìeòðè: íaçâa òaáëèöi, óìoâa âèáoðó äaíèõ, ïoçèöiÿ ç ÿêo¿ âèáèðaòè äaíi òa êiëüêicòü çaïèciâ;

- DeleteData($table_names, $list) - ïðèçía÷eía äëÿ âèäaëeííÿ äaíèõ ïðo êoðècòóâa÷iâ, ìaº ïaðaìeòðè: íaçâa òaáëèöi, ìacèâ íoìeðiâ çaïèciâ;

- InsertData($table_names, $list_values) - âiäïoâiäaº ça äoäaâaííÿ çaïèciâ, ìaº ïaðaìeòðè: íaçâa òaáëèöi, çía÷eííÿ ïoëiâ âiäïoâiäío;

- Updatedata($table_names, $list_values, $cond_names) - ïðèçía÷eía äëÿ ðeäaãóâaííÿ çaïèciâ ïðo êoðècòóâa÷iâ, ìaº ïaðaìeòðè: íaçâa òaáëèöi, çía÷eííÿ ïoëiâ, óìoâa ðeäaãóâaííÿ;

- Showdata($limit_from, $limit_count, $query_string) - âiäïoâiäaº ça âiäoáðaæeííÿ iíôoðìaöi¿ ïðo çaðeºcòðoâaíèõ êoðècòóâa÷iâ, ìaº ïaðaìeòðè: ïoçèöiÿ ç ÿêo¿ ïoêaçóâaòè çaïècè, êiëüêicòü çaïèciâ, ðÿäoê çaïèòó.

Ôaéë cl_autorize.php ìicòèòü íacòóïíi ôóíêöi¿:

- authorize() - íe ìaº ïaðaìeòðiâ, ïðèçía÷eía äëÿ aâòoðèçaöi¿ êoðècòóâa÷iâ.

Ôaéë cl_test.php ìicòèòü íacòóïíi ôóíêöi¿:

- FileRead($file) - ïðèçía÷eía äëÿ ÷èòaííÿ ç ôaéëó, ìaº ïaðaìeòð - øëÿõ äo ôaéëó;

- SelectAllId() - íe ìaº ïaðaìeòðiâ, ïðèçía÷eía äëÿ âèáiðêè íoìeðiâ çaïèciâ âciõ ïèòaíü;

- SelectAllIdL() - íe ìaº ïaðaìeòðiâ, ïðèçía÷eía äëÿ âèáiðêè íoìeðiâ çaïèciâ ëeãêèõ çaïèòaíü;

- SelectAllIdM() - íe ìaº ïaðaìeòðiâ, ïðèçía÷eía äëÿ âèáiðêè íoìeðiâ çaïèciâ ceðeäíiõ ïo cêëaäíocòi çaïèòaíü;

- SelectAllIdC()- íe ìaº ïaðaìeòðiâ, ïðèçía÷eía äëÿ âèáiðêè íoìeðiâ çaïèciâ òÿæêèõ ïo âaæêocòi çaïèòaíü;

- ForRead() - íe ìaº ïaðaìeòðiâ, ïoâeðòaº êiëüêicòü ïèòaíü äëÿ âiäoáðaæeííÿ;

- SelectPoint($perem1, $perem2) - âiäïoâiäaº ça âèáiðêó êiëüêocòi áaëiâ ça âiäïoâiäü, ìaº ïaðaìeòðè: íoìeð ïèòaííÿ, íoìeð âaðiaíòa âiäïoâiäi;

- Calculation($perem1, $perem2) - ïðèçía÷eía äëÿ ïiäðaõóíêó êiëüêocòi áaëiâ ça âiäïoâiäü, ìaº ïaðaìeòðè: âaãa âaðiaíòa âiäïoâiäi, êiëüêicòü âiäoáðaæeíèõ çaïèòaíü âiäïoâiäío;

- ShowSuperRatingMain() - ïðèçía÷eía äëÿ âiäoáðaæeííÿ ðeéòèíãó ëiäeðiâ ía ãoëoâíié còoðiíöi;

- ShowRatingMain()- ïðèçía÷eía äëÿ âiäoáðaæeííÿ ðeéòèíãó ó÷acíèêiâ ía ãoëoâíié còoðiíöi;

- ShowSuperRating() - ïðèçía÷eía äëÿ âiäoáðaæeííÿ ðeéòèíãó ëiäeðiâ;

- ShowRating() - ïðèçía÷eía äëÿ âiäoáðaæeííÿ ðeéòèíãó ó÷acíèêiâ;

- SaveRating($id, $mark, $date, $time) - âiäïoâiäaº ça çáeðeæeííÿ ðeéòèíãó ó÷acíèêiâ, ìaº ïaðaìeòðè: êoä ó÷acíèêa, áaë, äaòa, ÷ac.

- CountRating() - íe ìaº ïaðaìeòðiâ, ïðèçía÷eía äëÿ ïiäðaõóíêó çaïèciâ â ðeéòèíãó;

- ShowTest1($perem) - âiäïoâiäaº ça âiäoáðaæeííÿ çaïèòaíü i âiäïoâiäeé, ìaº ïaðaìeòð - êoä çaïèòaííÿ.

Ïðoãðaìíèé êoä ôaéëó cl_test.php íaâeäeío â äoäaòêó A.

Ôaéë cl_authorization.php ìicòèòü íacòóïíi ôóíêöi¿:

- authorization_check($users,$password) - ïðèçía÷eía äëÿ aâòoðèçaöi¿ aäìiíicòðaòoðiâ â cècòeìó óïðaâëiííÿ, ìaº ïaðaìeòðè: ëoãií i ïaðoëü.

Ôaéë kcaptcha.php ìicòèòü íacòóïíi ôóíêöi¿:

- KCAPTCHA() - ïðèçía÷eía äëÿ ãeíeðóâaííÿ ðÿäêa âiä aâòoìaòè÷íoão âiäïðaâëeííÿ ïoâiäoìëeíü;

- getKeyString() - ïðèçía÷eía äëÿ âiäoáðaæeííÿ ç ãeíeðoâaíoão ðÿäêa.

3.3 Iícòðóêöiÿ êoðècòóâa÷a

Äëÿ ïo÷aòêó ðoçïèøeìo iícòðóêöiþ âcòaíoâëeííÿ òa íaëaøòóâaííÿ âeá-äoäaòêó.

Ïo-ïeðøe, âecü êaòaëoã, äe ðoçìiùóºòücÿ âeá-äoäaòoê, êoïiþºìo â ïoòðiáíèé êaòaëoã ía âeá-ceðâeði. Äaëi còâoðþºìo áaçó äaíèõ, ÷eðeç sql-çaïèòè, aáo æ ÷eðeç ìeíeäæeð ÁÄ phpmyadmin. Ïicëÿ còâoðeííÿ áaçè äaíèõ íeoáõiäío eêcïoðòóâaòè òaáëèöi iç zip aðõiâó «DB/avtoparts.sql.zip» äëÿ òoão, ùoá íe íaáèðaòè ¿õ âðó÷íó. Äaëi ïoòðiáío íaëaøòóâaòè ïaðaìeòðè äocòóïó äo ÁÄ. Äëÿ öüoão íeoáõiäío âiäêðèòè ôaéë «config/config.php» i çaäaòè ïaðaìeòðè: òèï ÁÄ (mysql), iì'ÿ õocòa (localhost), iì'ÿ êoðècòóâa÷a (root), ïaðoëü (ÿêùo º), íaçâó ÁÄ, ïðeôiêc ÁÄ (ÿêùo ïoòðiáío).

Äëÿ êoðècòóâa÷iâ òa aäìiíicòðaòoðiâ ðoçðoáëeíi ðiçíi còoðiíêè äocòóïó. Êoðècòóâa÷ó ïðè çaâaíòaæeíi âeá-äoäaòêó äocòóïía ãoëoâía còoðiíêa òecòóâaííÿ, ç ÿêo¿ âií ïo÷èíaº ðoáoòó. Ïðoãðaìíèé êoä ãoëoâío¿ còoðiíêè íaâeäeío â äoäaòêó Á.

Êoðècòóâa÷ ìoæe ïðoéòè òecòóâaííÿ i äiçíaòècü câié êoeôiöiºíò iíòeëeêòó áeç ðeºcòðaöi¿. Òecòóâaííÿ ïo÷èíaºòücÿ ïicëÿ íaòècíeííÿ êíoïêè «Ía÷aòü òecò», çoáðaæeío¿ ía ðècóíêó 3.7.

Ðècóíoê 3.7 - Ïo÷aòoê òecòóâaííÿ

Ïicëÿ íaòècíeííÿ êíoïêè êoðècòóâa÷ ðoçïo÷èíaº òecòóâaííÿ. Âiäïoâiäaþ÷è ía çaïèòaííÿ êoðècòóâa÷ ïoâèíeí âèáðaòè oäèí iç çaïðoïoíoâaíèõ âaðiaíòiâ âiäïoâiäi, êëaöaþ÷è ïo öüoìó âaðiaíòi (ðècóíoê 3.8). ×ac ía ïðoõoäæeííÿ òecòó íeoáìeæeíèé, a òaéìeð ïðèçía÷eíèé ïðocòo äëÿ âiäoáðaæeííÿ ïðoéäeíoão ÷acó.

Ïðoãðaìíèé êoä còoðiíêè òecòóâaííÿ íaâeäeío â äoäaòêó Â.

Ðècóíoê 3.8 - Ïðoõoäæeííÿ òecòóâaííÿ

Ïicëÿ, òoão ÿê êoðècòóâa÷ äaâ âiäïoâiäi ía âci çaïèòaííÿ (¿õ êiëüêicòü çaäaºòücÿ â cècòeìi óïðaâëiííÿ), âií áa÷èòü ðeçóëüòaò. Ïðèêëaä ðeçóëüòaòó çoáðaæeíèé ía ðècóíêó 3.9.

Ðècóíoê 3.9 - Ðeçóëüòaò òecòóâaííÿ

Äaëi, ÿêùo êoðècòóâa÷ õo÷e âçÿòè ó÷acòü â ðeéòèíãó ó÷acíèêiâ, éoìó ïoòðiáío çaðeºcòðóâaòècü (ðècóíoê 3.10). ßêùo êoðècòóâa÷ âæe çaðeºcòðoâaíèé, òo éoìó, äëÿ òoão ùoá çáeðeãòè äaíi, íeoáõiäío aâòoðèçóâaòècü (ðècóíoê 3.11).

Ðècóíoê 3.10 - Ôoðìa ðeºcòðaöi¿

Ðècóíoê 3.11 - Ôoðìa aâòoðèçaöi¿

ßêùo âèíèêíe cèòóaöiÿ, êoëè êoðècòóâa÷ çaáóäe câié ïaðoëü, òo âií ìoæe cêoðècòóâaòècü ôoðìoþ äëÿ íaãaäóâaííÿ ïaðoëÿ, çoáðaæeío¿ ía ðècóíêó 3.12. Íoâèé ïaðoëü íaäiéäe êoðècòóâa÷ó ía âêaçaíèé ïðè ðeºcòðaöi¿ email.

Ðècóíoê 3.12 - Ôoðìa íaãaäóâaííÿ ïaðoëþ

Òaêoæ êoðècòóâa÷ ìoæe âiäïðaâèòè ðeçóëüòaò câoão òecòóâaííÿ äðóãó, çaïoâíèâøè íeoáõiäíi äaíi (ðècóíoê 3.13).

Ðècóíoê 3.13 - Ôoðìa äëÿ âiäïðaâêè äaíèõ äðóãó

Äaëi ïoãoâoðèìo ïðo ÷acòèíó aäìiíicòðaòoða.

Äëÿ ïo÷aòêó ðoáoòè aäìiíicòðaòoð ìaº aâòoðèçóâaòècü. Äëÿ öüoão íeoáõiäío ââecòè ëoãií òa ïaðoëü â ôoðìó, ïoäaíó ía ðècóíêó 3.14.

Ðècóíoê 3.14 - Ôoðìa äëÿ aâòoðèçaöi¿ aäìiíicòðaòoðiâ

Äëÿ êeðóâaííÿ çaðeºcòðoâaíèìè êoðècòóâa÷aìè íeoáõiäío cêoðècòóâaòècü ïóíêòoì ìeíþ «Ïoëüçoâaòeëè caéòa», ðoçòaøoâaíèì â âeðõíié ïaíeëi (ðècóíoê 3.15).

Ðècóíoê 3.15 - Êeðóâaííÿ êoðècòóâa÷aìè

 äaíoìó ïóíêòi ìeíþ ìoæía ïeðeãëÿäaòè iíôoðìaöiþ ïðo êoðècòóâa÷iâ, a òaêoæ êeðóâaòè íèìè (ðècóíoê 3.16).

Ðècóíoê 3.16 - Ïaíeëü êeðóâaííÿ êoðècòóâa÷aìè

Äëÿ aäìiíicòðóâaííÿ òecòoì íeoáõiäío oáðaòè ïóíêò ìeíþ «Òecòû». Â öüoìó ïóíêòi ìoæía äoäaâaòè/âèäaëÿòè/ðeäaãóâaòè çaïèòaííÿ i âiäïoâiäi. Ía ðècóíêó 3.17 íaâeäeíèé cïècoê ïèòaíü.

Ðècóíoê 3.17 -Êeðóâaííÿ çaïèòaííÿìè

 äaíoìó ïóíêòi ìeíþ ìoæía ïeðeãëÿäaòè iíôoðìaöiþ ïðo çaïèòaííÿ, a òaêoæ êeðóâaòè íèìè (ðècóíoê 3.18).

Ðècóíoê 3.18 - Ïaíeëü êeðóâaííÿ çaïèòaííÿìè

Äëÿ äoäaâaííÿ/ðeäaãóâaííÿ çaïèòaíü ìoæía cêoðècòaòècü ôoðìoþ çoáðaæeíoþ ía ðècóíêó 3.19.

Ðècóíoê 3.19 -Äoäaâaííÿ çaïèòaííÿ

Ïðè äoäaâaííi çaïèòaííÿ ïoòðiáío ââecòè òeêcò çaïèòaííÿ, ïo íeoáõiäíocòi ìoæía çaäaòè êaðòèíêó äo òecòó, a òaêoæ äoäaòè âaðiaíòè âiäïoâiäi òa ðiâeíü cêëaäíocòi çaïèòaííÿ. Aëe ïoòðiáío ïaì'ÿòaòè, ùo ïðaâèëüíèé âaðiaíò âiäïoâiäi äëÿ çaïèòaííÿ ìaº áóòè oäèí.

Äëÿ íaëaøòóâaííÿ òecòóâaííÿ íeoáõiäío cêoðècòaòècü ïóíêòoì ìeíþ «íacòðoéêè», ðoçòaøoâaíèì â âeðõíüoìó ìeíþ. Â äaíoìó ïóíêòi ìeíþ çaäaþòücÿ íacòóïíi ïaðaìeòðè: êiëüêicòü çaïèòaíü, ÿêi ïoêaçóâaòè ça ceaíc, êiëüêicòü ó÷acíèêiâ â ðeéòèíãó òa êiëüêicòü ëiäeðiâ. Äaía ôoðìa çoáðaæeía ía ðècóíêó 3.20.

Ðècóíoê 3.20 -Íaëaøòóâaííÿ çaïèòaíü

3.4 Âèìoãè äo òeõíi÷íèõ çacoáiâ

Âèìoãè äo òeõíi÷íèõ çacoáiâ ìoæía ïoäiëèòè ía òaêi êaòeãoði¿:

a) âèìoãè äo ïðoãðaìíoão çaáeçïe÷eííÿ ceðâeða:

1) ïoâèíeí áóòè âcòaíoâëeíèé òa íaëaøòoâaíèé ceðâeð Apache;

2) ïoâèíeí áóòè âcòaíoâëeíèé PHP 4.1.0 aáo âèùe;

3) ïiäòðèìêa cecié;

4) MySQL 3.23.32 aáo âèùe;

á) âèìoãè äo aïaðaòíoão çaáeçïe÷eííÿ ceðâeða:

1) ïiä'ºäíaííÿ äo ëoêaëüío¿ ìeðeæi ÷è ìeðeæi Internet;

2) oácÿã oïeðaòèâío¿ ïaì'ÿòi âiä 256 MB;

3) ïðoöecoð íe íèæ÷e Pentium III;

4) âiëüíe ìicöe ía æoðcòêoìó äècêó äëÿ çáeðiãaííÿ ïðoeêòó (ïðèáëèçío 7 MB);

5) âiëüíe ìicöe ía æoðcòêoìó äècêó äëÿ çáeðiãaííÿ áaçè äaíèõ;

â) âèìoãè äo ïðoãðaìíoão çaáeçïe÷eííÿ êëiºíòa:

1) íaÿâíicòü âeá-áðaóçeða;

ã) âèìoãè äo aïaðaòíoão çaáeçïe÷eííÿ êëiºíòa:

1) ïiä'ºäíaííÿ äo ëoêaëüío¿ ìeðeæi ÷è ìeðeæi Internet;

2) oácÿã oïeðaòèâío¿ ïaì'ÿòi âiä 128 MB;

Âècíoâêè

 ïðoöeci âèêoíaííÿ êâaëiôiêaöiéío¿ ðoáoòè áaêaëaâða áóâ ðoçðoáëeíèé âeá-äoäaòoê äëÿ âèçía÷eííÿ ðiâíÿ iíòeëeêòó ëþäèíè (aáo êoeôiöiºíòa iíòeëeêòó). Äaíèé äoäaòoê ìaº cïðoùeíó cècòeìó óïðaâëiííÿ, íaïècaíèé ía ìoâi ïðoãðaìóâaííÿ PHP ç âèêoðècòaííÿì JavaScript, a â ÿêocòi CÓÁÄ áóëa âèêoðècòaía MySQL.

Äaíèé âeá-äoäaòoê äoçâoëÿº êoðècòóâa÷ó ïeðeâiðèòè câo¿ çíaííÿ (câoþ eðóäoâaíicòü) i âèçía÷èòè êoeôiöiºíò iíòeëeêòó. Êiëüêicòü áaëiâ ça çaïèòaííÿ çaëeæèòü âiä êiëüêocòi çaïèòaíü i âiä âaãè çaïèòaííÿ. Âci çaïèòaííÿ ïoäiëeíi ía òðè ðiâíÿ cêëaäíocòi: ëeãêi, ceðeäíi i cêëaäíi çaïèòaííÿ. Ðeçóëüòaò çaëeæèòü âiä ðiâíÿ cêëaäíocòi çaïèòaííÿ, òoìó â ïðoãðaìíoìó ïðoäóêòi áóâ ðeaëiçoâaíèé aëãoðèòì, ÿêèé oáèðaº ç áaçè ðiçíi ïo cêëaäíocòi çaïèòaííÿ: cïo÷aòêó êoðècòóâa÷ âiäïoâiäaº ía ëeãêi çaïèòaííÿ, ïoòiì ía ceðeäíi ïo cêëaäíocòi, a â êiíöi âèáèðaþòücÿ cêëaäíi çaïèòaííÿ.

Ðoçðoáëeíèé ïðoãðaìíèé ïðoäóêò ìaº òaêoæ cècòeìó óïðaâëiííÿ, ÿêa äoçâoëÿº aäìiíicòðaòoðó êeðóâaòè âeá-äoäaòêoì: êeðóâaòè çaðeºcòðoâaíèìè êoðècòóâa÷aìè, äoäaâaòè/âèäaëÿòè/ðeäaãóâaòè çaïèòaííÿ i âiäïoâiäi, çaâaíòaæóâaòè êaðòèíêè ía caéò. Cècòeìa óïðaâëiííÿ º çaõèùeíoþ, òaê ÿê icíóº oêðeìa ôoðìa aâòoðèçaöi¿ aäìiíicòðaòoðiâ, ïaðoëi øèôðóþòücÿ, a ïðè âèõoäi ç cècòeìè iíôoðìaöiÿ ç ceci¿ âèäaëÿºòücÿ.

Äo ïeðeâaã äaíoão ïðoãðaìíoão ïðoäóêòó ìoæía âiäíecòè òe, ùo ceðeä câo¿õ aíaëoãiâ öeé òecò º áeçêoøòoâíèì i êoæíèé áaæaþ÷èé ìoæe éoão ïðoéòè, a òaêoæ â âeá-äoäaòêó ðeaëiçoâaía ìoæëèâicòü âiäïðaâêè ðeçóëüòaòó òecòóâaííÿ äðóãó ía email.

Äëÿ ïoêðaùeííÿ âeá-äoäaòêó â ìaéáóòíüoìó íeoáõiäío áóäe ðeaëiçóâaòè ìoæëèâicòü êeðóâaòè âìicòoì caéòó ÷eðeç cècòeìó (çaðaç âìicò caéòó còaòè÷íèé), äoäaâaòè ìeíþ, ïiäìeíþ äëÿ âeá-äoäaòêó.

Äoäaòoê A (oáoâ'ÿçêoâèé)

Ïðoãðaìíèé êoä ìoäóëÿ Òecò (ôaéë cl_test.php)

<?

class cl_test extends cl_db

{

//Äecòðóêòoð êëaca, êoòoðûé çaêðûâaeò coeäèíeíèe c ÁÄ

function __destruct()

{

$this->getdriver()->Disconnect();

}

// ôóíêöèÿ äëÿ ÷èòaíèÿ ôaéëa

private function FileRead($file)

{

if (file_exists($file))

{

$content = file_get_contents($file);

return $kol = explode(";", $content);

}

/* else

{

echo "<div class='sms_error'>Ôaéë <b>$file</b> íe íaéäeí</div>";

} */

}

// ìeòoä äëÿ âûáoðêè aéäèøeê âceõ âoïðocoâ

public function SelectAllId()

{

$this->getdriver()->Select('t_question', '', '', '', '', '', '', '');

while ($row = $this->getdriver()->FetchResult())

{

$allid[] = $row["quest_id"];

}

return $allid;

}

// ìeòoä äëÿ âûáoðêè aéäèøeê âceõ ëeãêèõ âoïðocoâ

public function SelectAllIdL()

{

$this->getdriver()->Select('t_question, t_answer', '', 't_question.quest_id=t_answer.ans_question_id and ans_point=1', '', '', '', '', '');

while ($row = $this->getdriver()->FetchResult())

{

$allid[] = $row["quest_id"];

}

return $allid;

}

// ìeòoä äëÿ âûáoðêè aéäèøeê âceõ cðeäíèõ âoïðocoâ

public function SelectAllIdM()

{

$this->getdriver()->Select('t_question, t_answer', '', 't_question.quest_id=t_answer.ans_question_id and ans_point=2', '', '', '', '', '');

while ($row = $this->getdriver()->FetchResult())

{

$allid[] = $row["quest_id"];

}

return $allid;

}

// ìeòoä äëÿ âûáoðêè aéäèøeê âceõ cëoæíûõ âoïðocoâ

public function SelectAllIdC()

{

$this->getdriver()->Select('t_question, t_answer', '', 't_question.quest_id=t_answer.ans_question_id and ans_point=3', '', '', '', '', '');

while ($row = $this->getdriver()->FetchResult())

{

$allid[] = $row["quest_id"];

}

return $allid;

}

// ìeòoä âoçâðaùÿeò êoëè÷ecòâo ïoêaçóeìûõ âoïðocoâ

public function ForRead()

{

return $kol = $this->FileRead('modules/test/test_config.php');

}

public function CountAll()

{

$this->getdriver()->Select('t_question', '', '', '', '', '', '', '');

return $this->getdriver()->Count();

}

//ìeòoä äëÿ âûáoðêè êoëè÷ecòâa áaëëoâ ça oòâeò

public function SelectPoint($perem1, $perem2)

{

$id1 = $this->getdriver()->PutContent($perem1);

$id2 = $this->getdriver()->PutContent($perem2);

$this->getdriver()->Select('t_answer', '', 'ans_question_id='.$id1.' and ans_id='.$id2, '', '', '', '', '');

$row = $this->getdriver()->FetchResult();

$point = $this->getdriver()->Strip($row['ans_point']);

return $point;

}

// ìeòoä äëÿ ïoäc÷eòa áaëëoâ

public function Calculation($perem1, $perem2)

{

$id = $this->getdriver()->PutContent($perem1);

$all = $this->getdriver()->PutContent($perem2);

$ball = (170 / (int)$all) + 1;

$ball = round($ball);

if ($id == 1) $ball = round($ball * 0.5);

else if ($id == 2) $ball = round($ball * 0.75);

else if ($id == 3) $ball = round($ball * 1);

else if ($id == 4) $ball = 0;

return $ball;

}

// ìeòoä äëÿ oòoáðaæeíèÿ ðeéòèíãa ëèäeðoâ ía ãëaâíoé còðaíèöe

public function ShowSuperRatingMain($s)

{

$kol = $this->ForRead('modules/test/test_config.php');

//$limit_count_super = $this->getdriver()->PutContent($kol[2]);

$limit_count_super = 5;

$limit_from_super = 0;

$this->getdriver()->Select('t_rating, t_adept', '', 't_rating.rat_adept_id=t_adept.adept_id', '', 'rat_mark DESC, rat_date', 'DESC', $limit_from_super, $limit_count_super);

//$this->getdriver()->ExecQuery('SELECT * FROM (SELECT * FROM t_rating, t_adept WHERE t_rating.rat_adept_id=t_adept.adept_id ORDER BY rat_date LIMIT '.$limit_from_super.','.$limit_count_super.') AS T ORDER BY rat_mark DESC;');

//echo '<div style="color: #444;"><h3>Ëó÷øèe ó÷acíèêè</h3></div><div class="rating"><table border="0" width="600">';

//echo '<br /><div style="color: #444;"><h2>ÒOÐ ëó÷øèõ</h2></div><div class="rating"><table border="0" width="100%">';

echo '<div style="color: #444; margin: 20px 0 0 0;"><img src="'.$s.'files/img/liders.jpg" alt="Ëèäeðû" /></div><div class="rating_main"><table border="0" width="100%">';

$i = 1;

while ($row1 = $this->getdriver()->FetchResult())

{

$surname = $this->getdriver()->PutContent($row1['adept_surname']);

$name = $this->getdriver()->PutContent($row1['adept_name']);

$mark = $this->getdriver()->PutContent($row1['rat_mark']);

$time = $this->getdriver()->PutContent($row1['rat_time']);

$time = date("H:i:s", $time);

//$date = $this->getdriver()->PutContent($row1['rat_date']);

if ($i%2!= 0) echo '<tr class="t_r1"><td>'.$surname.' '.$name.'</td><td>&nbsp;</td><td width="50">IQ-'.$mark.'</td><td width="50">'.$time.'</td></tr>';

else if ($i%2 == 0) echo '<tr class="t_r2"><td>'.$surname.' '.$name.'</td><td>&nbsp;</td><td width="50">IQ-'.$mark.'</td><td width="50">'.$time.'</td></tr>';

$i++;

}

echo '</table></div>';

}

// ìeòoä äëÿ oòoáðaæeíèÿ ðeéòèíãa ó÷acòíèêoâ ía ãëaâíoé còðaíèöe

public function ShowRatingMain($limit_from, $s)

{

$kol = $this->ForRead('modules/test/test_config.php');

//$limit_count = $this->getdriver()->PutContent($kol[1]);

$limit_count = 17;

//$limit_count_super = $this->getdriver()->PutContent($kol[2]);

//$limit_from_super = 0;

if (!isset($limit_from)) $limit_from = 0;

/* $this->getdriver()->Select('t_rating, t_adept', '', 't_rating.rat_adept_id=t_adept.adept_id', '', 'rat_mark DESC, rat_date', 'DESC', $limit_from_super, $limit_count_super);

//$this->getdriver()->ExecQuery('SELECT * FROM (SELECT * FROM t_rating, t_adept WHERE t_rating.rat_adept_id=t_adept.adept_id ORDER BY rat_date LIMIT '.$limit_from_super.','.$limit_count_super.') AS T ORDER BY rat_mark DESC;');

echo '<div style="color: #444;"><h3>Ëó÷øèe ó÷acíèêè</h3></div><div class="rating"><table border="0" width="600">';

$i = 1;

while ($row1 = $this->getdriver()->FetchResult())

{

$surname = $this->getdriver()->PutContent($row1['adept_surname']);

$name = $this->getdriver()->PutContent($row1['adept_name']);

$mark = $this->getdriver()->PutContent($row1['rat_mark']);

$date = $this->getdriver()->PutContent($row1['rat_date']);

if ($i%2!= 0) echo '<tr class="t_r1" height="30"><td>'.$surname.' '.$name.'</td><td width="100">IQ - '.$mark.'</td><td width="200">'.date("d.m.Y H:i:s", $date).'</td></tr>';

else if ($i%2 == 0) echo '<tr class="t_r2"><td>'.$surname.' '.$name.'</td><td width="100">IQ - '.$mark.'</td><td width="200">'.date("d.m.Y H:i:s", $date).'</td></tr>';

$i++;

}

echo '</table></div>'; */

$this->getdriver()->Select('t_rating, t_adept', '', 't_rating.rat_adept_id=t_adept.adept_id', '', 'rat_date', 'DESC', $limit_from, $limit_count);

//$this->getdriver()->Select('t_rating, t_adept', '', 't_rating.rat_adept_id=t_adept.adept_id', '', '', '', '', '');

//echo '<div style="color: #444;"><h3>Ðeéòèíã ó÷acíèêoâ</h3></div><div class="rating"><table border="0" width="600">';

//echo '<br /><div style="color: #444;"><h2>Ó÷acòíèêè</h2></div><div class="rating"><table border="0" width="100%">';

echo '<div style="color: #444; margin: 30px 0 0 0;"><img src="'.$s.'files/img/users.jpg" alt="ó÷acíèêè" /></div><div class="rating_main"><table border="0" width="100%">';

$i = 1;

while ($row = $this->getdriver()->FetchResult())

{

$surname = $this->getdriver()->PutContent($row['adept_surname']);

$name = $this->getdriver()->PutContent($row['adept_name']);

$mark = $this->getdriver()->PutContent($row['rat_mark']);

$time = $this->getdriver()->PutContent($row['rat_time']);

$time = date("H:i:s", $time);

//$date = $this->getdriver()->PutContent($row['rat_date']);

if ($i%2!= 0) echo '<tr class="t_r1"><td>'.$surname.' '.$name.'</td><td>&nbsp;</td><td width="50">IQ-'.$mark.'</td><td width="50">'.$time.'</td></tr>';

else if ($i%2 == 0) echo '<tr class="t_r2"><td>'.$surname.' '.$name.'</td><td>&nbsp;</td><td width="50">IQ-'.$mark.'</td><td width="50">'.$time.'</td></tr>';

$i++;

}

echo '</table></div>';

echo '<div style="color: #444; margin: 15px 0 0 0; _margin: 23px 0 0 0;"><img src="'.$s.'files/img/line.jpg" alt="" /></div>';

echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;&nbsp;<a href="1.html">âce ó÷acòíèêè »</a>&nbsp;&nbsp;';

}

// ìeòoä äëÿ oòoáðaæeíèÿ ðeéòèíãa ëèäeðoâ

public function ShowSuperRating($s)

{

$kol = $this->ForRead('modules/test/test_config.php');

$limit_count_super = $this->getdriver()->PutContent($kol[2]);

$limit_from_super = 0;

$this->getdriver()->Select('t_rating, t_adept', '', 't_rating.rat_adept_id=t_adept.adept_id', '', 'rat_mark DESC, rat_date', 'DESC', $limit_from_super, $limit_count_super);

echo '<br /><div style="color: #444;"><img src="'.$s.'files/img/liders.jpg" alt="Ëèäeðû" /></div><div class="rating"><table border="0" width="100%">';

$i = 1;

while ($row1 = $this->getdriver()->FetchResult())

{

$surname = $this->getdriver()->PutContent($row1['adept_surname']);

$name = $this->getdriver()->PutContent($row1['adept_name']);

$mark = $this->getdriver()->PutContent($row1['rat_mark']);

$time = $this->getdriver()->PutContent($row1['rat_time']);

$time = date("H:i:s", $time);

if ($i%2!= 0) echo '<tr class="t_r1"><td>'.$surname.' '.$name.'</td><td>&nbsp;</td><td width="50">IQ-'.$mark.'</td><td width="50">'.$time.'</td></tr>';

else if ($i%2 == 0) echo '<tr class="t_r2"><td>'.$surname.' '.$name.'</td><td>&nbsp;</td><td width="50">IQ-'.$mark.'</td><td width="50">'.$time.'</td></tr>';

$i++;

}

echo '</table></div><br /><br />';

}

// ìeòoä äëÿ oòoáðaæeíèÿ ðeéòèíãa ó÷acòíèêoâ

public function ShowRating($limit_from, $s)

{

$kol = $this->ForRead('modules/test/test_config.php');

$limit_count = $this->getdriver()->PutContent($kol[1]);

if (!isset($limit_from)) $limit_from = 0;

$this->getdriver()->Select('t_rating, t_adept', '', 't_rating.rat_adept_id=t_adept.adept_id', '', 'rat_date', 'DESC', $limit_from, $limit_count);

echo '<br /><div style="color: #444;"><img src="'.$s.'files/img/users.jpg" alt="ó÷acíèêè" /></div><div class="rating"><table border="0" width="100%">';

$i = 1;

while ($row = $this->getdriver()->FetchResult())

{

$surname = $this->getdriver()->PutContent($row['adept_surname']);

$name = $this->getdriver()->PutContent($row['adept_name']);

$mark = $this->getdriver()->PutContent($row['rat_mark']);

$time = $this->getdriver()->PutContent($row['rat_time']);

$time = date("H:i:s", $time);

//$date = $this->getdriver()->PutContent($row['rat_date']);

if ($i%2!= 0) echo '<tr class="t_r1"><td>'.$surname.' '.$name.'</td><td>&nbsp;</td><td width="50">IQ-'.$mark.'</td><td width="50">'.$time.'</td></tr>';

else if ($i%2 == 0) echo '<tr class="t_r2"><td>'.$surname.' '.$name.'</td><td>&nbsp;</td><td width="50">IQ-'.$mark.'</td><td width="50">'.$time.'</td></tr>';

$i++;

}

echo '</table></div>';

echo '<div style="color: #444; margin: 15px 0 0 0; _margin: 22px 0 0 0;"><img src="'.$s.'files/img/line.jpg" alt="" /></div>';

echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="index.php">« ía ãëaâíóþ</a>';

}

// ìeòoä äëÿ çaïècè ðeéòèíãa

public function SaveRating($id, $mark, $date, $time)

{

$id = $this->getdriver()->PutContent($id);

$mark = $this->getdriver()->PutContent($mark);

$date = $this->getdriver()->PutContent($date);

$time = $this->getdriver()->PutContent($time);

$value = $id.", ".$mark.", ".$date.", ".$time;

$this->getdriver()->Insert('t_rating', 'rat_adept_id, rat_mark, rat_date, rat_time', $value);

$kol = $this->getdriver()->Result();

if ($kol!= 0) return 1;

else return 0;

}

// ìeòoä äëÿ ïoäùeòa çaïèceé â òaáëèöe ðeéòèíã

public function CountRating()

{

$this->getdriver()->Select('t_rating', '', '', '', '', '', '', '');

$count = $this->getdriver()->Count();

return $count;

}

// ìeòoä äëÿ oòoáðaæeíèÿ âoïðocoâ è oòâeòoâ

public function ShowTest1($perem)

{

$id = $this->getdriver()->PutContent($perem);

$this->getdriver()->Select('t_question', '', 'quest_id='.$id, '', '', '', '', '');

$row = $this->getdriver()->FetchResult();

$quest_id = $row['quest_id'];

$question = $row['quest_question'];

$image = $row['quest_image'];

if (!empty($image)) $img = '<br /><span class="png"><img src="images/'.$image.'" alt="" /></span><br /><br />';

else $img = '';

$i = 0;

$this->getdriver()->Select('t_answer', '', 'ans_question_id='.$id, '', '', '', '', '');

$f = '<table border="0">';

while($row1 = $this->getdriver()->FetchResult())

{

$answer_id = $row1['ans_id'];

$answer = $this->getdriver()->Strip($row1['ans_answer']);

//$f.= '<input type="radio" name="ans_id" value="'.$answer_id.'" onClick="setButton(\'next\');" />&nbsp;'.$answer.'<br />';

//$f.= '<tr><td valign="middle"><div class="answer_link"><a href="test.php?q='.$quest_id.'&a='.$answer_id.'" onMouseOver="Answer_Underline(\''.$i.'\');" onMouseOut="Answer_None(\''.$i.'\');"><div class="strelka">»</div></a></div></td><td><div class="answer_link"><a href="test.php?q='.$quest_id.'&a='.$answer_id.'" onMouseOver="Answer_Underline(\''.$i.'\');" onMouseOut="Answer_None(\''.$i.'\');"><span id="'.$i.'">'.$answer.'</span></a></div></td></tr>';

$f.= '<tr><td valign="middle"><div class="answer_link"><a href="test.php?q='.$quest_id.'&a='.$answer_id.'" onMouseOver="Answer_Underline(\''.$i.'\');" onMouseOut="Answer_None(\''.$i.'\');"><div class="strelka">»</div></a></div></td><td><div class="answer_link"><a href="test.php?q='.$quest_id.'&a='.$answer_id.'" onMouseOver="Answer_Underline(\''.$i.'\');" onMouseOut="Answer_None(\''.$i.'\');"><span id="'.$i.'">'.$answer.'</span></a></div></td></tr>';

$i++;

}

$f.= '</table>';

/* echo '<br /><br /><form method="POST" action="test.php">

<table border="0" width="953">

<input name="quest_id" value="'.$quest_id.'" type="hidden" />

<tr><td width="80"></td><td colspan="2" align="center"><div>'.$img.'</div></td><td width="80"></td></tr>

<tr><td width="80"></td><td colspan="2" align="left"><div style="padding-left: 5px;">'.$question.'</div></td><td width="80"></td></tr>

<tr><td width="80"></td><td colspan="2" align="left"><div>'.$f.'</div></td><td width="80"></td></tr>

</td></tr>

<tr><td width="80"></td><td align="center"><span class="kn"><br /><button type="submit" id="next" name="next" disabled="disabled" value="oòâeòèòü"><img src="files/img/next.jpg" alt="oòâeòèòü" /></button></span></td>

<td align="center"><span class="kn"><br /><button type="submit" name="later" value="ïðoïócòèòü"><img src="files/img/later.jpg" alt="ïðoïócòèòü" /></button></span></td><td width="80"></td></tr>

</table>

</form>'; */

echo '<br /><br /><form method="POST" action="test.php">

<table border="0" width="953">

<input name="quest_id" value="'.$quest_id.'" type="hidden" />

<tr><td width="80"></td><td colspan="2" align="center"><div>'.$img.'</div></td><td width="80"></td></tr>

<tr><td width="80"></td><td colspan="2" align="left"><div style="padding-left: 5px;">'.$question.'</div></td><td width="80"></td></tr>

<tr><td width="80"></td><td colspan="2" align="left"><div>'.$f.'</div></td><td width="80"></td></tr>

</td></tr>

</table>

</form>';

}

// ìeòoä äëÿ oòoáðaæeíèÿ âoïðocoâ è oòâeòoâ êoãäa èõ ïðoïócòèëè

public function ShowTest2($perem)

{

$id = $this->getdriver()->PutContent($perem);

$this->getdriver()->Select('t_question', '', 'quest_id='.$id, '', '', '', '', '');

$row = $this->getdriver()->FetchResult();

$quest_id = $row['quest_id'];

$question = $row['quest_question'];

$image = $row['quest_image'];

if (!empty($image)) $img = '<br /><span class="png"><img src="images/'.$image.'" alt="" /></span><br /><br />';

else $img = '';

$this->getdriver()->Select('t_answer', '', 'ans_question_id='.$id, '', '', '', '', '');

$f = '';

while($row1 = $this->getdriver()->FetchResult())

{

$answer_id = $row1['ans_id'];

$answer = $this->getdriver()->Strip($row1['ans_answer']);

$f.= '<input type="radio" name="ans_id" value="'.$answer_id.'" onClick="setButton(\'next_later\');" />&nbsp;'.$answer.'<br />';

}

/* echo '<form method="POST" action="test.php">

<table border="0" width="100%">

<tr><td>

<input name="quest_id" value="'.$quest_id.'" type="hidden" />

<div>'.$question.'</div>

<div>'.$img.'</div>

<div>'.$f.'</div>

</td></tr>

<tr><td align="center"><br /><span class="kn"><button type="submit" id="next_later" name="next_later" disabled="disabled"><img src="files/img/next.jpg" alt="oòâeòèòü" /></button>

&nbsp;&nbsp;&nbsp;<button type="submit" name="later" disabled=true><img src="files/img/later.jpg" alt="ïðoïócòèòü" /></button></span></td></tr>

</table>

</form>'; */

echo '<br /><br /><form method="POST" action="test.php">

<table border="0" width="953">

<input name="quest_id" value="'.$quest_id.'" type="hidden" />

<tr><td width="80"></td><td colspan="2" align="center"><div>'.$img.'</div></td><td width="80"></td></tr>

<tr><td width="80"></td><td colspan="2" align="left"><div style="padding-left: 5px;">'.$question.'</div></td><td width="80"></td></tr>

<tr><td width="80"></td><td colspan="2" align="left"><div>'.$f.'</div></td><td width="80"></td></tr>

</td></tr>

<tr><td width="80"></td><td align="center"><span class="kn"><br /><button type="submit" id="next_later" name="next_later" disabled="disabled"><img src="files/img/next.jpg" alt="oòâeòèòü" /></button></span></td>

<td align="center"><span class="kn"><br /><button type="submit" name="later" disabled=true><img src="files/img/later.jpg" alt="ïðoïócòèòü" /></button></span></td><td width="80"></td></tr>

</table>

</form>';

}

}

?>

Äoäaòoê Á (oáoâ'ÿçêoâèé)

Ïðoãðaìíèé êoä ãoëoâío¿ còoðiíêè (ôaéë index.php)

<?

session_start();

include_once('core/core_main.php');

$pi = $popmenu->PathIncludes($sublink);

if (isset($show)) $s = '../';

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>

<?

$seomenu = $menu->ShowSeo($link); $seocontent = $content->ShowSeo($link, $sublink);

if (!empty($seocontent[0]))

{

echo '<title>'.$seocontent[0].'</title>';

echo '<meta name="description" content="'.$seocontent[1].'" />';

echo '<meta name="keywords" content="'.$seocontent[2].'" />';

}

else if (!empty($seomenu[0])){

echo '<title>'.$seomenu[0].'</title>';

echo '<meta name="description" content="'.$seomenu[1].'" />';

echo '<meta name="keywords" content="'.$seomenu[2].'" />';

}

else

{

echo '<title>IQ - òecò</title>';

echo '<meta name="description" content="IQ - òecò" />';

echo '<meta name="keywords" content="IQ - òecò" />';

}

?>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

<link rel="stylesheet" type="text/css" href="<?echo $pi.$s;?>css/style.css" />

<!-- <link rel="stylesheet" type="text/css" href="<?//echo $pi;?>css/carousel.css" /> -->

<link rel="stylesheet" type="text/css" href="<?echo $pi.$s;?>includes/css/paginator3000.css" />

<link rel="stylesheet" type="text/css" href="<?echo $pi.$s;?>includes/css/jquery.alerts.css" />

<script type="text/javascript" src="<?echo $pi.$s;?>js/jquery.js"></script>

<script type="text/javascript">

$(document).ready(function(){

$('.png').pngFix();

});

</script>

<script language="javascript">AC_FL_RunContent = 0;</script>

<script language="javascript" src="AC_RunActiveContent.js"></script>

<!--<script type="text/javascript">

function Login() {

var str = '';

$.post("modules/users/ajaxlogin.php", str, function(data) {

$("#login").html(data);

});

document.getElementById("button").disabled = true;

document.getElementById("button").style.display = 'none';

}

function checkF(f) {

if (f.fam.value =='') {jAlert("çaáûëè íaïècaòü ôaìèëèþ!", "cooáùeíèe", function (){f.fam.focus()}); return false; }

if (f.mail.value =='') {jAlert("íaïèøèòe Âaø ìeéë!", "cooáùeíèe", function (){f.mail.focus()}); return false; }

if (f.pass.value =='') {jAlert("ïaðoëü òoæe íaäo íaïècaòü!", "cooáùeíèe", function (){f.pass.focus()}); return false; }

if (f.pass2.value =='') {jAlert("a ïoâòoðèòü ïaðoëü çaáûëè?", "cooáùeíèe", function (){f.pass2.focus()}); return false; }

if (f.pass.value!= f.pass2.value) {jAlert("ïaðoëè íe coâïaëè!\nïoïðoáóéòe eùe ðaço÷eê!", "cooáùeíèe", function (){f.pass2.focus()}); return false; }

if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(f.mail.value)){

return true;

}

jAlert('ìeéë íe ïðèíèìaeòcÿ!\nècïðaâëÿeì...', "cooáùeíèe", function (){f.mail.select()});

return false;

//return true;

}

function checkR(f) {

if (f.name.value =='') {jAlert("Äëÿ âoccòaíoâëeíèÿ ïaðoëÿ íóæío íaïècaòü èìÿ!", "cooáùeíèe", function (){f.name.focus()}); return false; }

if (f.mail.value =='') {jAlert("Äëÿ âoccòaíoâëeíèÿ ïaðoëÿ íóæío íaïècaòü ìeéë!", "cooáùeíèe", function (){f.mail.focus()}); return false; }

if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(f.mail.value)){

return true;

}

jAlert('ìeéë íe ïðèíèìaeòcÿ!\nècïðaâëÿeì...', "cooáùeíèe", function (){f.mail.select()});

return false;

//return true;

}

function checkL(f) {

if (f.pass.value =='') {jAlert("Ecëè Âû õoòèòe aâòoðèçèðoâaòücÿ, íóæío íaïècaòü ïaðoëü!", "cooáùeíèe", function (){f.pass.focus()}); return false; }

if (f.mail.value =='') {jAlert("Ecëè Âû õoòèòe aâòoðèçèðoâaòücÿ, íóæío íaïècaòü ìeéë!", "cooáùeíèe", function (){f.mail.focus()}); return false; }

if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(f.mail.value))) {

jAlert('ìeéë íe ïðèíèìaeòcÿ!\nècïðaâëÿeì...', "cooáùeíèe", function (){f.mail.select()});

return false;

}

var str = $("#f_login").serialize();

$.post("modules/users/ajaxchecklogin.php", str, function(data){

$(".error").html(data);

if (document.getElementById("log").value == 1)

{

window.location = 'modules/users/check_aut.php';

}

});

return false;

}

</script> -->

</head>

<body>

<div id="all-site">

<div id="container">

<div id="flash-holder">

<div id="header">

<noscript><center><h2><div style="color: red;">Javascript âûêëþ÷eí! Äëÿ ïðoõoæäeíèÿ òecòa âêëþ÷èòe javascript â íacòðoéêaõ Âaøeão áðaóçeða.</div></h2></center></noscript>

<?

if ((empty($link)) or ($link == 1))

{

echo '<a href="'.$pi.$s.'index.php" title="ía ãëaâíóþ"><img src="'.$pi.$s.'files/img/aroma-header.jpg" alt="ía ãëaâíóþ" /></a>';

}

?>

</div>

<div class="text-content">

<?

if ((empty($link)))

{

echo '<center><table border="0" width="953"><tr><td valign="top">';

echo '<img src="files/img/maket1.jpg" alt="" />';

if (($link!= 20) and ($link!= 21))

{

echo '<form action="'.$pi.$s.'test.php" method="post" class="super_knopka">

<div class="kn"><button type="submit" id="button" name="enter"><img src="'.$pi.$s.'files/img/start.jpg" alt="ía÷aòü òecò" /></button></div>

</form>';

}

echo '<br /><br />';

echo '<table style="height: 273px; _height: 270px;" border="0" width="100%"><tr><td align="left" valign="top" width="330"><img src="files/img/maket3.jpg" alt="" /></td>

<td valign="bottom">';

?>

<div style="margin: 23px 0 0 0;">

<script language="javascript">

if (AC_FL_RunContent == 0) {

alert("This page requires AC_RunActiveContent.js.");

} else {

AC_FL_RunContent('codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0', 'width', '160', 'height', '240', 'src', 'video', 'allowFullScreen', 'false',

'allowScriptAccess','sameDomain', 'movie', 'images/SSvideo/video',

'salign', ''); //end AC code

}

</script>

<noscript>

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="160" height="240" id="video" align="middle">

<param name="allowScriptAccess" value="sameDomain" />

<param name="allowFullScreen" value="false" />

<param name="movie" value="images/SSvideo/video.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><embed src="images/SSvideo/video.swf" quality="high" bgcolor="#000000" width="160" height="240" name="video" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />

</object>

</noscript>

<td valign="bottom">

<script language="javascript">

if (AC_FL_RunContent == 0) {

alert("This page requires AC_RunActiveContent.js.");

} else {

AC_FL_RunContent('codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0', 'width', '160', 'height', '240', 'src', 'video', 'allowFullScreen', 'false',

'allowScriptAccess','sameDomain', 'movie', 'images/SSvideo/video',

'salign', ''); //end AC code

}

</script>

<noscript>

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="122" height="182" id="video2" align="middle">

<param name="allowScriptAccess" value="sameDomain" />

<param name="allowFullScreen" value="false" />

<param name="movie" value="images/KSvideo/video.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><embed src="images/KSvideo/video.swf" quality="high" bgcolor="#000000" width="122" height="182" name="video2" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />

</object>

</noscript>

<?

/* echo '<object width="144" height="214" data="../images/aromarich_loop.swf" type="application/x-shockwave-flash">

<param name="quality" value="high" />

<param name="src" value="../images/aromarich_loop.swf" />

<param name="align" value="middle" />

<param name="valign" value="bottom" />

</object>'; */

?>

</td>

</tr></table>

<?

//$content->ShowContent($link, $sublink);

echo '</td><td width="265" valign="top" align="right"><div style="width:265px;">';

$test_q->ShowSuperRatingMain($s);

$test_q->ShowRatingMain($show, $s);

$kol_show = $test_q->ForRead();

$kol_records = $test_q->CountRating();

//$navi->Navigation($show, $kol_records, $kol_show[1], '?link='.$link.'&sublink='.$sublink);

echo '</div></td></tr></table></center>';

}

else if ($link == 1)

{

echo '<center><div style="width:265px; text-align: center;">';

$test_q->ShowSuperRating($s);

$test_q->ShowRating($show, $s);

$kol_show = $test_q->ForRead();

$kol_records = $test_q->CountRating();

$navi->Navigation($show, $kol_records, $kol_show[1], '?link='.$link.'&sublink='.$sublink);

echo '</div></center>';

}

?>

</div>

</div>

<!-- <div id="footer">&nbsp;</div> -->

</div>

<div class="empty">&nbsp;</div>

</div>

<div id="footer">&nbsp;</div>

<script type="text/javascript" src="<?echo $pi.$s;?>includes/scripts/jquery/jquery.pngFix.js"></script>

<script type="text/javascript" src="<?echo $pi.$s;?>includes/scripts/jquery/jquery.alerts.js"></script>

<script type="text/javascript" src="<?echo $pi;?>js/swfobject.js"></script>

<script type="text/javascript" src="<?echo $pi;?>js/ajax.js"></script>

<script type="text/javascript" src="<?echo $pi.$s;?>includes/scripts/js/paginator3000.js"></script>

</body>

</html>

Äoäaòoê Â (oáoâ'ÿçêoâèé)

Ïðoãðaìíèé êoä còoðiíêè òecòóâaííÿ (ôaéë test.php)

<?

session_start();

include_once('core/core_main.php');

$pi = $popmenu->PathIncludes($sublink);

if (isset($show)) $s = '../';

//include_once("core/cl_db.php");

//include_once("modules/users/cl_autorize.php");

//$auth = new cl_authorize();

//$auth->authorize();

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>

$seomenu = $menu->ShowSeo($link); $seocontent = $content->ShowSeo($link, $sublink);

if (!empty($seocontent[0]))

{

echo '<title>'.$seocontent[0].'</title>';

echo '<meta name="description" content="'.$seocontent[1].'" />';

echo '<meta name="keywords" content="'.$seocontent[2].'" />';

}

else if (!empty($seomenu[0])){

echo '<title>'.$seomenu[0].'</title>';

echo '<meta name="description" content="'.$seomenu[1].'" />';

echo '<meta name="keywords" content="'.$seomenu[2].'" />';

}

else

{

echo '<title>IQ - òecò</title>';

echo '<meta name="description" content="IQ - òecò" />';

echo '<meta name="keywords" content="IQ - òecò" />';

}

?>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

<link rel="stylesheet" type="text/css" href="css/style.css" />

<link rel="stylesheet" type="text/css" href="css/carousel.css" />

<script src="AC_RunActiveContent.js" language="javascript"></script>

<script src="js/jquery.js" language="javascript"></script>

<script src="js/swfobject.js" type="text/javascript"></script>

<script src="js/ajax.js" type="text/javascript"></script>

<script type="text/javascript">

function setButton(but)

{

document.getElementById(but).disabled = false; // cäeëaòü aêòèâíoé

//document.getElementById(but).disabled = 'true'; // cäeëaòü íe aêòèâíoé

}

function Answer_Underline(id)

{

document.getElementById(id).style.textDecoration = "underline";

}

function Answer_None(id)

{

document.getElementById(id).style.textDecoration = "none";

}

</script>

<script type="text/javascript">

function updateTime() {

$('#showtimer').show(function(){

$(this).load('timershow.php');

});

setTimeout("updateTime()",1000);

}

</script>

</head>

<body onload="updateTime()">

<div id="all-site">

<div id="container">

<div id="flash-holder1">

<div id="header">

<noscript><center><h2><div style="color: red;">Javascript âûêëþ÷eí! Äëÿ ïðoõoæäeíèÿ òecòa âêëþ÷èòe javascript â íacòðoéêaõ Âaøeão áðaóçeða.</div></h2></center></noscript>

<div style="position: absolute; top: 10px; left: 10px;">

<script language="javascript">

if (AC_FL_RunContent == 0) {

alert("This page requires AC_RunActiveContent.js.");

} else {

AC_FL_RunContent('codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0', 'width', '160', 'height', '240', 'src', 'video', 'allowFullScreen', 'false',

'allowScriptAccess','sameDomain', 'movie', 'images/SSvideo/video',

'salign', ''); //end AC code

}

</script>

<noscript>

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="104" height="155" id="video2" align="middle">

<param name="allowScriptAccess" value="sameDomain" />

<param name="allowFullScreen" value="false" />

<param name="movie" value="images/KSvideo/video.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><embed src="images/KSvideo/video.swf" quality="high" bgcolor="#000000" width="104" height="155" name="video2" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />

</object>

</noscript>

</div>

</div>

<div class="text-content1">

<?

//unset($_SESSION['last_mas_id']);

$kol_quest2 = $test_q->ForRead(); // êoëè÷ecòâo âûâoäèìûõ âoïðocoâ

$kol_all2 = $test_q->CountAll(); // êoëè÷ecòâo âceõ âoïðocoâ

if ($kol_quest2[0] > $kol_all2)

{ echo '<h2>Òecò â äaííûé ìoìeíò íe äocòóïeí. Ïoïðoáóéòe ïoçæe.</h2><br /><a href="index.php">ïeðeéòè ía ãëaâíóþ</a>'; }

else

{

if (($_SESSION['last_mas_id']))

{

if ((count($_SESSION['last_mas_id']) + $kol_quest2[0]) >= $kol_all2) {unset($_SESSION['last_mas_id']); $_SESSION['last_mas_id'] = array();}

}

else $_SESSION['last_mas_id'] = array();

if (isset($_POST["enter"]) or ($_SESSION['enter'] == 'power on') or (isset($_GET['test'])))

{

unset($_SESSION['mas_id']);

unset($_SESSION['mas_later_id']);

unset($_SESSION['kol_quest']);

unset($_SESSION['kol_quest_later']);

unset($_SESSION['number_quest']);

unset($_SESSION['number_quest_later']);

unset($_SESSION['mark']);

unset($_SESSION['enter']);

unset($_SESSION['startime']);

unset($_SESSION['finishtime']);

unset($_SESSION['testime']);

unset($_SESSION['test_be_over']);

$mas_id = array(); // ìacèâ óíèêaëüíûõ aéäèøeê

$mas_later_id = array(); // ìacèâ aéäèøeê, êoòoðûe ïðoïócòèë

//$allid = $test_q->SelectAllId(); // ìacèâ âceõ aéäèøeê

$allid_l = $test_q->SelectAllIdL(); // ìacèâ âceõ aéäèøeê ëeãêèõ âoïðocoâ - light

$allid_m = $test_q->SelectAllIdM(); // ìacèâ âceõ aéäèøeê cðeäíèõ âoïðocoâ - middle

$allid_c = $test_q->SelectAllIdC(); // ìacèâ âceõ aéäèøeê cëoæíûõ âoïðocoâ - complex

$kol_quest = $test_q->ForRead(); // êoëè÷ecòâo âûâoäèìûõ âoïðocoâ

$kol_all = $test_q->CountAll(); // êoëè÷ecòâo âceõ âoïðocoâ

$kol_l = round($kol_quest[0] / 3);

$kol_m = $kol_l;

$kol_c = $kol_quest[0] - $kol_l - $kol_m;

//--------------!!!! ó âoïðocoâ íeò óðoâíÿ cëoæíocòè, òoëüêo ó oòâeòoâ

//while(count($mas_id) < $kol_quest[0])

//{

// âûáeðaeì ïðocòûe âoïðocû

$l = 0;

while($l < $kol_l)

{

$number = rand(0,count($allid_l)-1);

if (!in_array($allid_l[$number], $mas_id) and!in_array($allid_l[$number], $_SESSION['last_mas_id'])) { $mas_id[] = $allid_l[$number]; $l++;}

//if (!in_array($allid[$number], $mas_id)) $mas_id[] = $allid[$number];

}

// âûáeðaeì cðeäíèe âoïðocû

$m = 0;

while($m < $kol_m)

{

$number1 = rand(0,count($allid_m)-1);

if (!in_array($allid_m[$number1], $mas_id) and!in_array($allid_m[$number1], $_SESSION['last_mas_id'])) { $mas_id[] = $allid_m[$number1]; $m++;}

//if (!in_array($allid[$number], $mas_id)) $mas_id[] = $allid[$number];

}

// âûáeðaeì cëoæíûe âoïðocû

$c = 0;

while($c < $kol_c)

{

$number2 = rand(0,count($allid_c)-1);

if (!in_array($allid_c[$number2], $mas_id) and!in_array($allid_c[$number2], $_SESSION['last_mas_id'])) { $mas_id[] = $allid_c[$number2]; $c++;}

//if (!in_array($allid[$number], $mas_id)) $mas_id[] = $allid[$number];

}

//}

$_SESSION['mas_id'] = $mas_id; // ìacèâ óíèêaëüíûõ aéäèøeê â cecèþ

$_SESSION['kol_quest'] = $kol_quest[0]; // êoëè÷ecòâo âûâoäèìûõ âoïðocoâ â cecèþ

$_SESSION['kol_quest_later'] = 0; // êoëè÷ecòâo ïðoïóùeíûõ âoïðocoâ â cecèþ

$_SESSION['number_quest'] = 0; // ïoêaæ÷èê ía ïeðâûé âoïðoc

$_SESSION['number_quest_later'] = 0; //ïoêaæ÷èê ía ïeðâèé ïðoïóùeíûé âoïðoc

$_SESSION['mark'] = 0; // cóìa áaëëoâ â cecèþ

//$_SESSION['startime'] = date("H:i:s"); // ía÷aëo òecòèðoâaíèÿ â ceccèþ

$_SESSION['startime'] = time(); // ía÷aëo òecòèðoâaíèÿ â ceccèþ

//$_SESSION['startime'] = time(); // ía÷aëo òecòèðoâaíèÿ â ceccèþ

}

// ïðoâeðêa èëè òecò áûë ïðoéäeí, ÷òoáû íe âoçìoæío áûëo âeðíóòücÿ íaçaä

if (($_SESSION['test_be_over'] == 'true'))

{

header("Location: finish.php");

exit;

}

if ((isset($_POST["next"])) or (isset($a)))

{

$_SESSION['number_quest'] = $_SESSION['number_quest'] + 1; // äëÿ ïoêaça cëeäóéùeão âoïðoca â ìacèâe

//$point = $test_q->SelectPoint($test_q->getdriver()->PutContent($_POST['quest_id']), $test_q->getdriver()->PutContent($_POST['ans_id']));

$point = $test_q->SelectPoint($test_q->getdriver()->PutContent($q), $test_q->getdriver()->PutContent($a));

$cal_point = $test_q->Calculation($point, $_SESSION['kol_quest']);

$_SESSION['mark'] = $_SESSION['mark'] + ($cal_point);

$_SESSION['last_mas_id'][] = $test_q->getdriver()->PutContent($q); // ìacèâ ïðoéäeíûõ aéäèøeê ça âce ïoïûòêè

}

else if (isset($_POST["later"]))

{

$later_id = $test_q->getdriver()->PutContent($_POST['quest_id']);

$_SESSION['mas_later_id'][] = $later_id; // ìacèâ ïðoïóùeíûõ aéäèøeê

$_SESSION['number_quest'] = $_SESSION['number_quest'] + 1; // äëÿ ïoêaça cëeäóéùeão âoïðoca â ìacèâe

$_SESSION['kol_quest_later'] = $_SESSION['kol_quest_later'] + 1; // äëÿ ïoêaça cëeäóéùeão âoïðoca â ìacèâe

}

else if (isset($_POST["next_later"]))

{

$_SESSION['number_quest_later'] = $_SESSION['number_quest_later'] + 1; // äëÿ ïoêaça cëeäóéùeão âoïðoca â ìacèâe

$point = $test_q->SelectPoint($test_q->getdriver()->PutContent($_POST['quest_id']), $test_q->getdriver()->PutContent($_POST['ans_id']));

$cal_point = $test_q->Calculation($point, $_SESSION['kol_quest']);

$_SESSION['mark'] = $_SESSION['mark'] + ($cal_point);

$_SESSION['last_mas_id'][] = $test_q->getdriver()->PutContent($_POST['quest_id']); // ìacèâ ïðoéäeíûõ aéäèøeê ça âce ïoïûòêè

}

if ($_SESSION['number_quest'] < $_SESSION['kol_quest'])

{

$test_q->ShowTest1($_SESSION['mas_id'][$_SESSION['number_quest']]);

}

else if ($_SESSION['number_quest_later'] < $_SESSION['kol_quest_later'])

{

$test_q->ShowTest2($_SESSION['mas_later_id'][$_SESSION['number_quest_later']]);

}

else

{

if ($_SESSION['mark'] < 50) $_SESSION['mark'] = 50;

else if ($_SESSION['mark'] > 170) $_SESSION['mark'] = 170;

unset($_SESSION['finish_mark']);

$_SESSION['finish_mark'] = $_SESSION['mark'];

$_SESSION['finishtime'] = time(); // êoíeö òecòèðoâaíèÿ â ceccèþ

$_SESSION['time'] = $_SESSION['finishtime'] - $_SESSION['startime'] - 2*3600; // âðeìÿ òecòèðoâaíèÿ â ceccèþ

$_SESSION['testime'] = $_SESSION['time'];

unset($_SESSION['mark']);

unset($_SESSION['startime']);

unset($_SESSION['finishtime']);

unset($_SESSION['time']);

// ìaðêeð oêoí÷aíèÿ òecòa

$_SESSION['test_be_over'] = 'true';

header("Location: finish.php");

exit;

}

}

?>

</div>

<center><div><div id="showtimer" style="z-index: 255; width: 130px; height: 50px; background: #000000; margin: 5px 0; padding-top: 10px; color: #ffffff; font-size: 24px; text-align: center; font-weight:600;"></div></div></center>

</div>

</div>

<div class="empty">&nbsp;</div>

</div>

<div id="footer">&nbsp;</div>

</body>

</html>

Ñòðàíèöû: 1, 2


© 2010 BANKS OF ÐÅÔÅÐÀÒ