áúðчðть - Xakep Online
áúðчðть - Xakep Online
áúðчðть - Xakep Online
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Êîäèíã<br />
VOTING-ÑÈÑÒÅÌÀ ÍÀ PHP<br />
Íèêèòà «Nikitos» Êèñëèöèí<br />
(nikitoz@realxakepru) http://nikitosincru<br />
Introduce<br />
Ïðåæäå âñåãî äàâàé ðåøèì, êàê òåõíîëîãè÷åñêè ìû áóäåì ðåàëèçîâûâàòü çàäà÷ó<br />
 ÷àñòíîñòè, ãäå ìû áóäåì õðàíèòü èíôîðìàöèþ îá îïðîñå Ìîæíî, êîíå÷íî,<br />
â òåêñòîâîì ôàéëå, íî ÿ ðåøèë ñ ñàìîãî íà÷àëà äåëàòü óïîð íà áàçû<br />
äàííûõ - äàæå â äîâîëüíî ïðîñòûõ ñëó÷àÿõ Ãîâîðÿ «áàçû äàííûõ», ÿ ïîäðàçóìåâàþ<br />
mySQL, ïîñêîëüêó ýòî î÷åíü ìîùíûé, íàäåæíûé è áûñòðûé àãðåãàò,<br />
èäåàëüíî ïîäõîäÿùèé äëÿ ðàáîòû â ñâÿçêå ñ PHP Ñ åãî ïîìîùüþ ìîæíî ýôôåêòèâíî<br />
ðåàëèçîâàòü ïî÷òè ëþáóþ çàäà÷ó, íå òðåáóþùóþ ñâåðõñåêðåòíîñòè<br />
(áàíêîâñêèå òðàíçàêöèè, ÁÄ ïî íàëîãîïëàòåëüùèêàì è òï) Äà è âîîáùå, ïèñàòü<br />
ñ èñïîëüçîâàíèåì mySQL çíà÷èòåëüíî ïðîùå, íåæåëè ãåìîððîèòüñÿ ñ<br />
ôàéëàìè Âåñü ñìàê SQL-áàç äàííûõ ïðîÿâëÿåòñÿ ïðè íàïèñàíèè ïðèëîæåíèé,<br />
êîòîðûå äîëæíû õèòðûì îáðàçîì ñîðòèðîâàòü çàïèñè - ÿçûê çàïðîñîâ SQL<br />
÷ðåçâû÷àéíî ãèáîê è ïîçâîëÿåò ïîëó÷àòü äàííûå èç ÁÄ óæå â îòñîðòèðîâàííîì<br />
ïîðÿäêå, ÷òî ïîðîé èçáàâëÿåò îò ìíîãèõ êèëîáàéòîâ ëèøíåãî êîäà<br />
mySQL<br />
Votingñèñòåìà<br />
íà PHP<br />
Íåîáõîäèìîå óñëîâèå ïîëíîöåííîãî ðàçâèòèÿ ëþáîãî www-ïðîåêòà - íàëè÷èå<br />
îáðàòíîé ñâÿçè ïîëüçîâàòåëÿ òâîåãî ïðîäóêòà ñ ïðîèçâîäèòåëåì, òå ñ òîáîé :)<br />
Ôîðóìû, ãîñòåâûå êíèãè - ýòî âñå, êîíå÷íî, çäîðîâî, íî â íèõ òû âèäèøü<br />
äîâîëüíî ñóáúåêòèâíûå ìíåíèÿ, îáû÷íî ïîëÿðèçîâàííûå: îò «âñå îòñòîé» äî<br />
«ñóïåð-ñòàð» ×åìó æå âåðèòü? Ãîëîñîâàíèþ<br />
Ðèñóíîê 1 Êîäèì íàø PHP-ñêðèïò<br />
Îáñóäèì ïðîöåññ âçàèìîäåéñòâèÿ èíòåðïðåòàòîðà PHP ñ ñåðâåðîì áàç äàííûõ<br />
Ïåðâûì äåëîì îñóùåñòâëÿåòñÿ ïîäêëþ÷åíèå ê ñåðâåðó ÁÄ, êîòîðîå òðåáóåò àóòåíòèôèêàöèè<br />
ïîëüçîâàòåëÿ Çàëîãèíèâøèñü, ïîëüçîâàòåëü ìîæåò âûïîëíÿòü<br />
ðàçëè÷íûå äåéñòâèÿ ñ áàçàìè äàííûõ, îòïðàâëÿÿ ñåðâåðó çàïðîñû íà ÿçûêå SQL<br />
Íèêèòà «Nikitos» Êèñëèöèí (nikitoz@realxakepru) http://nikitosincru<br />
Íî îá ýòîì ÷óòü ïîçæå Ñåé÷àñ æå ÿ îïèøó îñíîâíûå php-ôóíêöèè, èñïîëüçóåìûå<br />
äëÿ ðàáîòû ñ ìóñêëîì (mySQL)<br />
Ïîäêëþ÷åíèå ê ñåðâåðó ÁÄ îñóùåñòâëÿåòñÿ ôóíêöèåé<br />
Mysql_connect($host:$port, $user, $passwd), ãäå $host - àäðåñ mySQL ñåðâåðà,<br />
$port - ïîðò, íà êîòîðîì âèñèò äåìîí ÁÄ, $user - þçåð, $passwd – ïàðîëü<br />
Ïðèìåð: mysql_connect(«localhost:3306»,»nikitos»,»KoyRNhsL2»)<br />
Âûáîð àêòèâíîé ÁÄ îñóùåñòâëÿåòñÿ ôóíêöèåé<br />
Mysql_select_db($database,$link), ãäå $database - èìÿ ÁÄ, $link - óêàçàòåëü íà<br />
àêòèâíîå ñîåäèíåíèå ñ ÁÄ SQL-çàïðîñ îòïðàâëÿåòñÿ ôóíêöèåé<br />
Mysql_query($query, $link), ãäå $query - ñòðîêà çàïðîñà, $link - óêàçàòåëü íà<br />
àêòèâíîå ñîåäèíåíèå ñ áàçîé äàííûõ<br />
Ôóíêöèé åùå î÷åíü ìíîãî, íî èõ ìû áóäåì îáñóæäàòü ïî ìåðå íåîáõîäèìîñòè<br />
Ýòèõ æå âïîëíå õâàòèò äëÿ òîãî, ÷òîáû íà÷àòü ïèñàòü ãîëîñîâàíèå<br />
Òàáëèöû â SQL<br />
90<br />
Ðèñóíîê 3 Âîò êàê âûãëÿäèò íàøà<br />
òàáëèöà â MySQL<br />
Ïðåæäå ÷åì ïðèñòóïàòü ê íàïèñàíèþ êîäà, ñëåäóåò ïðîäóìàòü ñòðóêòóðó òàáëèö,<br />
â êîòîðûõ áóäóò õðàíèòüñÿ äàííûå  íàøåì ñëó÷àå ïîñòîÿííî áóäóò èñïîëüçîâàòüñÿ<br />
òðè òàáëèöû Ïåðâàÿ - vote - èìååò ñëåäóþùèå ïîëÿ:<br />
no - èäåíòèôèêàòîð ãîëîñîâàíèÿ<br />
vopros - âîïðîñ ãîëîñîâàíèÿ<br />
voters - ÷èñëî ïðîãîëîñîâàâøèõ<br />
vote_table - èìÿ òàáëèöû, â êîòîðîé<br />
õðàíÿòñÿ âàðèàíòû îòâåòîâ äëÿ äàííîãî<br />
ãîëîñîâàíèÿ<br />
Âòîðàÿ òàáëèöà - adm - èñïîëüçóåòñÿ<br />
äëÿ õðàíåíèÿ èíôîðìàöèè îá àäìèíèñòðàòîðàõ<br />
ãîëîñîâàíèÿ è èìååò<br />
ñëåäóþùèå ïîëÿ:<br />
id<br />
login<br />
Passwd<br />
Email<br />
name<br />
È òðåòüÿ - ips - ñîäåðæèò ip-àäðåñà<br />
ãîëîñîâàâøèõ, èñïîëüçóåòñÿ äëÿ çàùèòû<br />
îò íàêðó÷èâàíèÿ ãîëîñîâàíèé<br />
Âîò åå ñòðóêòóðà:<br />
no<br />
ip<br />
time<br />
Îñòàëüíûå òàáëèöû ñîçäàþòñÿ äèíàìè÷åñêè<br />
ïî ìåðå äîáàâëåíèÿ íîâûõ<br />
ãîëîñîâàíèé