Ostatnio potrzebny był mi skrypt sondy, jednak wszystkie skrypty dostępne w internecie nie za bardzo mnie zadowoliły, wiec postanowiłem napisać sam coś swojego.
Więc tu moja prośba, o ocenę mojego skryptu

<?php //@autor: Dominik Gawenda //@wersja: 1.0 | 2010-07-20 //@skrypt sondy if($mod_sonda !=0) { $sonda_id = $_POST['sonda_id']; $pozycja_sondy = $_POST['sonda']; $nowa_ilosc_glosow = $sDane['ilosc_glosow'] + 1; $nowa_ilosc_glosow_pozycja = $ssDane['ilosc_glosow'] + 1; $update1 = mysql_query("UPDATE sonda SET ilosc_glosow = '".$nowa_ilosc_glosow."' WHERE id=".$sDane['id']." "); $update2 = mysql_query("UPDATE sonda_dane SET ilosc_glosow = '".$nowa_ilosc_glosow_pozycja."' WHERE id = '".$ssDane['id']."' "); } if($sIle != 0) { echo '<div style="text-align:center;padding-bottom:10px;"><b>'.$sDane['nazwa'].'</b><br />'.$sDane['opis'].'</div>'; echo '<div><b>'.$ssDane['pytanie'].'</b> ('.$procent.'%)<div style="background:#ff7e01;width:'.$procent.'%;height:10px;margin:5px 0px 5px 0px;"></div></div>'; } } else { echo '<div style="padding:5px;"><input type="hidden" name="sonda_id" value="'.$sDane['id'].'" /><input type="radio" name="sonda" value="'.$ssDane['id'].'" /> <b>'.$ssDane['pytanie'].'</b></div>'; } echo '<input type="submit" name="glosuj" value="GŁOSUJ" class="sz_buton"><br style="clear:both" /></form>'; } echo '<div style="text-align:center;padding-top:10px;">Głos oddało: '.$sDane['ilosc_glosow'].' '.Osoby($sDane['ilosc_glosow']).'</div></div>'; } } } ?>
Powyżej skrypt sondy, bez panelu administracyjnego, gdyż jeszcze nie zrobiłem go

Poniżej prezentacja tabel bazy
Tabela SONDA
-- -- Struktura tabeli dla `sonda` -- CREATE TABLE IF NOT EXISTS `sonda` ( `id` tinyint(4) NOT NULL AUTO_INCREMENT, `nazwa` varchar(250) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, `opis` text CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, `ilosc_glosow` int(11) NOT NULL, `autor` varchar(250) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, `data_od` date NOT NULL, `data_do` date NOT NULL, `aktywny` tinyint(1) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
i dla tabeli SONDA_DANE
CREATE TABLE IF NOT EXISTS `sonda_dane` ( `id` tinyint(4) NOT NULL AUTO_INCREMENT, `id_sonda` tinyint(4) NOT NULL, `pytanie` varchar(250) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, `ilosc_glosow` int(11) NOT NULL, `aktywny` tinyint(1) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=9 ;
Ktoś zapyta dlaczego w dwóch tabelach? Dla tego gdyż skrypt przygotowany dla więcej niże 1 sondy, dlatego opis sondy jest trzymany w osobnej tabeli niż dane dla sondy.
Proszę o ocenę mojego skryptu i ewentualne uwagi co by poprawić. Zastanawiam się jeszcze jak by można mocniej zabezpieczyć sondę, gdyż aktualnie korzysta wyłącznie z ciasteczek. Myślałem jeszcze od zapisywaniu adresów IP w pliku (nie chce zaśmiecać tym bazy) i ewentualnie również sprawdzać czy z takiego IP już głosowano w przypadku ręcznego usunięcia ciastka

Pozdrawiam