| Uutiset | Koodikirjasto | Wiki | Keskustelut | FAQ | Info |
GalluppiQrD 26.12.05 14:57 Galluppiskripti, joka arkistoi vanhat kyselyt. Skripti tallentaa vastaajien ip't tietokantaan, joten monestiäänestys ei pitäisi onnistua.
----------- mysql.php ----------- <?php $sql_palvelin = "localhost"; $sql_tunnus = "tunnus"; $sql_salasana = "salasana"; $sql_tietokanta = "database"; $connu = mysql_connect($sql_palvelin, $sql_tunnus, $sql_salasana) or die(mysql_error()); mysql_select_db($sql_tietokanta) or die (mysql_error()); ?> ------------ gallup.php ------------ <? include "mysql.php"; $oma_ip = $_SERVER['REMOTE_ADDR']; if(!$vastaa) { $g_kysymys2 = mysql_query("SELECT kysymys FROM mm_gallup_kysymys WHERE id='1'"); $g_kysymys = mysql_result($g_kysymys2, 0); $perkele_sender2 = mysql_query("SELECT sender from mm_gallup_kysymys"); $perkele_sender = mysql_result($perkele_sender2, 0); echo "<b>$g_kysymys</b><br><br>"; $onx = mysql_query("SELECT * from mm_gallup_ip WHERE ip='$oma_ip'"); if(mysql_num_rows($onx)=="0") { echo "<table class='uutiset2'>"; $g_vastaukset = mysql_query("SELECT * from mm_gallup_vastaukset"); while($r=mysql_fetch_array($g_vastaukset)) { $vastaus = $r["vastaus"]; $kerrat = $r["kerrat"]; $id3 = $r["id"]; echo "<tr><td style='padding-bottom: 3px; padding-left: 4px;'><a href='gallup.php?vastaa=$id3'>$vastaus</a></td></tr>"; } echo "</table>"; } if(mysql_num_rows($onx)=="1") { $h = 0; $h2 = 0; $g_vastaukset = mysql_query("SELECT * from mm_gallup_vastaukset"); $g_vastaukset2 = mysql_query("SELECT * from mm_gallup_vastaukset"); # lasketaan kuimmonta kertaa vastattu yhteensä while($r2=mysql_fetch_array($g_vastaukset)) { $kerrat2 = $r2["kerrat"]; $h2 = $h2 + $kerrat2; } echo "<table class='uutiset2'>"; # ja muut tähän while($r=mysql_fetch_array($g_vastaukset2)) { $vastaus = $r["vastaus"]; $kerrat = $r["kerrat"]; # kappalemäärä vastauksia / vastaus $h = $h + $kerrat; if($h2 == "0") { $pros = round($kerrat / 1 *100, 0); } else { $pros = round($kerrat / $h2 * 100, 0); } $leveys = $pros * 3; echo "<tr><td style='padding-left: 4px; padding-bottom: 3px;'><b>$vastaus</b></td><td style='padding-bottom: 3px;'><img border=0 src=gallup2.gif width='$leveys' height='7'> $pros%</td></tr>"; } echo "</table><br>"; echo "Vastauksia yhteensä $h2 kappaletta.<br>"; echo "Kysymyksen laatija: $perkele_sender."; if($msg == "1") { echo "<br><br>Olet jo vastannut tähän kyselyyn!"; } } echo "<br><br><br><br><a href='galluparkisto.php'><b>Vanhat kyselyt...</b></A>"; } else { $hae_vastaus = mysql_query("SELECT * from mm_gallup_vastaukset WHERE id = '$vastaa'"); if(mysql_num_rows($hae_vastaus)=="0") { header("Location: gallup.php?msg=VAITTAAETTAEITALLAISTAVASTAUSTAOLE"); } if(mysql_num_rows($hae_vastaus)=="1") { $onko_ip = mysql_query("SELECT * from mm_gallup_ip WHERE ip='$oma_ip'"); if(mysql_num_rows($onko_ip)=="1") { header("Location: galup.php?msg=1"); } if(mysql_num_rows($onko_ip)=="0") { $tee_se = mysql_query("UPDATE mm_gallup_vastaukset SET kerrat = kerrat + 1 WHERE id='$vastaa'"); $tee_it = mysql_query("INSERT INTO mm_gallup_ip VALUES('$oma_ip')"); header("Location: gallup.php?msg=TOIMII"); } } } ?> ------------------- galluparkisto.php ------------------- <? include "mysql.php"; if(!$id) { echo "<table width='66%'><tr><td style='padding-left: 4px;'><b>Kysymys</b></td><td><b>Laatija</b></td></tr>"; $hae_gallupit = mysql_query("SELECT * from mm_galluparkisto_kysymykset ORDER BY ID DESC"); while($r=mysql_fetch_array($hae_gallupit)) { $vanha_kysymys = $r["kysymys"]; $vanha_sender = $r["sender"]; $vanha_id = $r["id"]; echo "<tr><td style='padding-bottom: 4px; padding-left: 4px;'><a href='galluparkisto.php?id=$vanha_id'>$vanha_kysymys</a></td><td>$vanha_sender</td></tr>"; } echo "</table>"; } if($id) { $h2 = 0; $hae_nama = mysql_query("SELECT * from mm_galluparkisto_kysymykset WHERE id='$id'"); if(mysql_num_rows($hae_nama)=="0") { echo "Mikä on kun ei taidot riitä, mikä on kun ei onnistu..."; } else { while($f=mysql_fetch_array($hae_nama)) { $id_kysymys = $f["kysymys"]; $id_laatija = $f["sender"]; } echo "<b>$id_kysymys</b><br><br>"; $hae_vastaukset = mysql_query("SELECT * from mm_galluparkisto_vastaukset WHERE kysymys='$id_kysymys'"); $hae_vastaukset2 = mysql_query("SELECT * from mm_galluparkisto_vastaukset WHERE kysymys='$id_kysymys'"); while($t=mysql_fetch_array($hae_vastaukset)) { $id_kerrat = $t["kerrat"]; $h2 = $h2 + $id_kerrat; } echo "<table class='uutiset2'>"; while($r=mysql_fetch_array($hae_vastaukset2)) { $vastaus = $r["vastaus"]; $kerrat = $r["kerrat"]; # kappalemäärä vastauksia / vastaus $h = $h + $kerrat; if($h2 == "0") { $pros = round($kerrat / 1 *100, 0); } else { $pros = round($kerrat / $h2 * 100, 0); } $leveys = $pros * 3; echo "<tr><td style='padding-left: 4px; padding-bottom: 3px;'><b>$vastaus</b></td><td style='padding-bottom: 3px;'><img style='border: 0px solid black; background-color: darkred;' src=gallup2.gif width='$leveys' height='7'> $pros%</td></tr>"; } echo "</table><br>"; echo "Vastauksia lähetettiin yhteensä $h2 kappaletta.<br>"; echo "Kysymyksen laatijana toimi $id_laatija."; } } ?> ---------------- newgallup.php ---------------- <? include "mysql.php"; $username = $_SESSION["username"]; # kirjoitajan nick,ennen käytetty loginskriptin kanssa if(!$lisaa) { ?> <form method=post action=newgallup.php?lisaa=1> <input type=hidden name=sender value='<? echo $username ?>'> <table> <tr><td>Kysymys</td><td><input type=text name=kysymys class=table-input></td></tr> <tr><td>Vastausvaihtoehdot</td><td><textarea name=uudet_vastaukset class=table-input rows=6 cols=60></textarea></td></tr> <tr><td> </td><td class='top_login'><input type=submit class=submit value='Lähetä uusi gallup'></td></tr> </table> <br> Erota vastausvaihtoehdot rivinvaihdolla. <? } if($lisaa=="1") { $hae_vanhat_tiedot = mysql_query("SELECT * from mm_gallup_kysymys"); while($r=mysql_fetch_array($hae_vanhat_tiedot)) { $old_sender = $r["sender"]; $old_kysymys = $r["kysymys"]; $lisaa_taa_arkistoon = mysql_query("INSERT INTO mm_galluparkisto_kysymykset VALUES(',','$old_kysymys','$old_sender')"); } $hae_vanhat_vastaukset = mysql_query("SELECT * from mm_gallup_vastaukset"); while($x=mysql_fetch_array($hae_vanhat_vastaukset)) { $old_vastaus = $x["vastaus"]; $old_kerrat = $x["kerrat"]; $lisaa_arkistoon = mysql_query("INSERT INTO mm_galluparkisto_vastaukset VALUES('$old_kysymys','$old_vastaus','$old_kerrat')"); } $xalee = str_replace("\n", ":", $uudet_vastaukset); $xalee = explode(":", $xalee); $xalee_value = count($xalee); $poista_vanhat_vastaukset = mysql_query("DELETE FROM mm_gallup_vastaukset"); $poista_ipt = mysql_query("DELETE FROM mm_gallup_ip"); $i_d = 1; for ($i = 0; $i < $xalee_value; $i++) { #$joo_moi = str_replace("\n", " ", $xalee[$i]); $lisaa_uus_vastaus = mysql_query("INSERT INTO mm_gallup_vastaukset values('$i_d','0','$xalee[$i]')"); $i_d = $i_d + 1; } $update_se = mysql_query("UPDATE mm_gallup_kysymys SET kysymys='$kysymys', sender='$sender'"); header("Location: gallup.php"); } ?> ---------------- delgallup.php ----------------- <? include "mysql.php"; if(!$mode) { echo "<table width='66%'>"; $hae_gallupit = mysql_query("SELECT * from mm_galluparkisto_kysymykset ORDER BY ID DESC"); while($r=mysql_fetch_array($hae_gallupit)) { $vanha_kysymys = $r["kysymys"]; $vanha_sender = $r["sender"]; $vanha_id = $r["id"]; echo "<tr><td style='padding-bottom: 4px; padding-left: 4px;'><a href='galluparkisto.php?id=$vanha_id'>$vanha_kysymys</a></td><td><a href='delgallup.php?mode=poista2&id=$vanha_id'>Poista!</a></td></tr>"; } echo "</table>"; } if($mode == "poista2") { $ihq = mysql_query("SELECT kysymys FROM mm_galluparkisto_kysymykset WHERE id='$id'"); $ihqmo = mysql_result($ihq, 0); $tokamo = mysql_query("DELETE FROM mm_galluparkisto_vastaukset WHERE kysymys='$ihqmo'"); $kolmas = mysql_query("DELETE FROM mm_galluparkisto_kysymykset WHERE id='$id'"); header("Location: delgallup.php"); } ?> ------------------------------------------ sql.sql, suorita tämä mysql-serverillä ------------------------------------------ CREATE TABLE `mm_galluparkisto_vastaukset` ( `kysymys` text NOT NULL, `vastaus` text NOT NULL, `kerrat` int(11) NOT NULL default '0' ) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO `mm_galluparkisto_vastaukset` VALUES ('Onko layout hyvä?', 'Loistava!\r', 2); INSERT INTO `mm_galluparkisto_vastaukset` VALUES ('Onko layout hyvä?', 'Ehkä\r', 2); INSERT INTO `mm_galluparkisto_vastaukset` VALUES ('Onko layout hyvä?', 'Ei', 0); CREATE TABLE `mm_galluparkisto_kysymykset` ( `id` int(11) NOT NULL auto_increment, `kysymys` text NOT NULL, `sender` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ; INSERT INTO `mm_galluparkisto_kysymykset` VALUES (12, 'Onko layout hyvä?', 'QrD'); CREATE TABLE `mm_gallup_vastaukset` ( `id` int(11) NOT NULL default '0', `kerrat` int(11) NOT NULL default '0', `vastaus` varchar(250) NOT NULL default '' ) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO `mm_gallup_vastaukset` VALUES (1, 0, 'Olen\r'); INSERT INTO `mm_gallup_vastaukset` VALUES (2, 3, 'En ole\r'); INSERT INTO `mm_gallup_vastaukset` VALUES (3, 0, 'En tiedä vielä'); CREATE TABLE `mm_gallup_kysymys` ( `id` int(11) NOT NULL default '0', `kysymys` text NOT NULL, `sender` text NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO `mm_gallup_kysymys` VALUES (1, 'Oletko menossa mm kisoihin 2006 kannustamaan Suomea?', 'Qrd'); CREATE TABLE `mm_gallup_ip` ( `ip` text NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO `mm_gallup_ip` VALUES ('80.186.172.178'); INSERT INTO `mm_gallup_ip` VALUES ('84.231.112.222'); INSERT INTO `mm_gallup_ip` VALUES ('84.250.123.84'); ----------------------------- Skriptissä on valmiina muutama galluppi toimivuuden parantamiseksi, jos taulut ovat tyhjiä, skripti ei välttämättä toimi oikein. Tarkoitus oli tehdä pieni, lyhyt ja yksinkertainen polliskripti, mutta siitä tulikin hieman laajempi. :) cAHVA 00:12 30.12.05 - ei toimi register_globals asetus pois päältä($_GET, $_POST ym. olisi hyvä käytellä. vink vink. ) - tuo IP:n lisäys on aika huono idea. Jos joku selailee cahcella niin sen yhden vastaus vaikuttaa muihinkin(eli ei voi muut äänestää sen takia koska käyttivät samaa välityspalvelinta.) - syötteitä ei tarkisteta - on tuossa muutakin mutta en nyt jaksa kaivella enempää :) Noh.. Miinusta tulloo :( QrD 17:00 2.1.06 cAHVA kirjoitti: - ei toimi register_globals asetus pois päältä($_GET, $_POST ym. olisi hyvä käytellä. vink vink. ) - tuo IP:n lisäys on aika huono idea. Jos joku selailee cahcella niin sen yhden vastaus vaikuttaa muihinkin(eli ei voi muut äänestää sen takia koska käyttivät samaa välityspalvelinta.) - syötteitä ei tarkisteta - on tuossa muutakin mutta en nyt jaksa kaivella enempää :) Noh.. Miinusta tulloo :( Kiitti vinkeistä :> |
![]() Haku
|