| Autor | Zpráva | ||
|---|---|---|---|
| Vitality Profil |
#1 · Zasláno: 16. 5. 2013, 23:11:15
Zdravím
Mohl by mi prosím někdo pomoci s řešením. Jedná se o anketu kde uživatel si voli mezi 4 možnými volbami, oni se započítávají a hlas se vyhodnocuje procentuálně, viz : odkaz. Potřeboval bych vytvořit .sql soubor kde se bude ukládat IP adresa uživatele který hlasoval, co hlasoval a kolikrát hlasoval pomocí temp MySQL tabulky. Hledal jsem to všude možně na internetu a mají to napsáno hodně složitě, nedokážu to zjednodušit a aplikovat. Mohl by mi prosím někdo poradit jak by měl takový kod vypadat? Prosím o co nejjednodušší řešení pro lajka jako mě to stačí :) function anketa(){
global $question="Máte se?";
global $choice1="jo";
global $choice2="ne";
$obsah_souboru = precti_soubor('anketa.txt');
$hlasy = explode("|",$obsah_souboru); //0|0|0|0
$celkem = $hlasy[0]+$hlasy[1]+$hlasy[2]+$hlasy[3];
echo "<table>";
echo "<tr><th colspan=\"2\">".$question."</th></tr>";
//Volba 1
//Výpočet ąířky sloupečku
if($celkem!=0)
$sirka=round((100*$hlasy[0])/$celkem);
else
$sirka=0;
//Tisk odkazu
echo "<tr><td><a href=\"hlasuj.php?volba=0\">".$choice1."</a></td>";
//Tisk sloupečku
echo "<td><img src=\"sloupek.png\" height=\"16\" width=\"".$sirka."\" alt=\"-\" /> ( ".$hlasy[0]." hlasů / ".$sirka." %)";
echo "</td></tr>";
//Volba 2
.
.hlasuj.php řeší timelimit přes cookies a započteni hlasu <?
//Získá z URL adresy
$id=$_GET["volba"];
//Někdo se pokouší hacknout skript a provést nepřípustnou volbu
if ($id>3){
header("Location: anketa/anketa.php");
exit();
}
$susenka = "ankety";
$neprijmouthlas = 60*2; // 2 minuty nehlasovat = nastaví platnost cookie
if (($$susenka) <> 1) //pokud nehlasoval, tak
{
//Pošli cookie
setcookie($susenka,1,Time()+$neprijmouthlas);
//Načtení dat
$soubor=fopen("anketa.txt", "r"); //otevře soubor pro čtení
$data=fread($soubor, filesize("anketa.txt")); //načte obsah celého souboru do proměnné data
fclose($soubor); //uzavře soubor
$hlasy = explode("|",$data);
//Navýší hlasy
$hlasy[$id]=$hlasy[$id]+1;
$data=$hlasy[0]."|".$hlasy[1]."|".$hlasy[2]."|".$hlasy[3];
//Otevře soubor v režimu zápis (parametr "w")
$soubor=fopen("anketa.txt", "w");
//Zapíše nová data do souboru
fwrite($soubor,$data);
//Zavře soubor
fclose($soubor);
}
//Pošle hlavičku pro přesměrování na původní stránku s anketou
header("Location: anketa.php");
?> |
||
| Str4wberry Profil |
#2 · Zasláno: 17. 5. 2013, 23:01:42
Což o to. Tabulka pro hlasy bude triviální. Pokud je potřeba anketa jen jedna, stačí dva sloupce (IP adresa a číslo možnosti):
CREATE TABLE `anketa` ( `ip` varchar(15) NOT NULL, `volba` int(1) NOT NULL ) |
||
| Vitality Profil |
ok diky
|
||
| Vitality Profil |
ff
|
||
| Kajman Profil |
$nazev_promenne='variable'.$id; echo $$nazev_promenne; Lepší je ale použít pole. $variable=array(); $variable[1] = $xml->prvni_odpoved; $variable[2] = $xml->druha_odpoved; $variable[3] = $xml->treti_odpoved; $variable[4] = $xml->ctvrta_odpoved; echo $variable[$id]; |
||
|
Časová prodleva: 13 let
|
|||
0