|
Ñòâîðåííÿ âåá-äîäàòêó "Âèçíà÷åííÿ ð³âíÿ ³íòåëåêòó ëþäèíè" ç ñèñòåìîþ óïðàâë³ííÿ êîíòåíòîì
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éëaprivate 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íèöepublic 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> </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> </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íèöepublic 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> </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> </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 ' <a href="1.html">âce ó÷acòíèêè »</a> ';}// ì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> </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> </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> </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> </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 ' <a href="index.php">« ía ãëaâíóþ</a>';}// ìeòoä äëÿ çaïècè ðeéòèíãapublic 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\');" /> '.$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\');" /> '.$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> <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"> </div> --></div><div class="empty"> </div></div><div id="footer"> </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"> </div></div><div id="footer"> </div></body></html>
Ñòðàíèöû: 1, 2
|
|