Galluppi

QrD 26.12.05 14:57

Galluppiskripti, joka arkistoi vanhat kyselyt. Skripti tallentaa vastaajien ip't tietokantaan, joten monestiäänestys ei pitäisi onnistua.

 Tekstiversio  Arvo: -4 (8 ääntä)  Äänestä: +  -
-----------
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'> &nbsp;$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'> &nbsp;$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ä :>