Wie progge ich ein Votesystem

mzeem

Erfahrenes Mitglied
Ich habe schon wirklich lange an einem Vote-System rumgebastelt und hab es immer wieder gelöscht weils irgendwie net so ganz klappt.

Wenn hier jemand was weiss bitte melden ;)) ich verzweifle bald...

Achja wenn es geht ein system in dem ich grafiken einfügen kann das des aussieht wie ein Diagramm, danke!!!

Ich habe ansprüche ich weiss hehe
 
also ich hab mal ein votesystem von jemandem geklaut, und bischen verändert :)
PHP:
//--------------------------------------------------------------------------------
//------------------- durchsuchen eines mehrdimensionalen arrays -----------------
//--------------------------------------------------------------------------------
function in_multi_array($needle, $haystack)
{
	$in_multi_array = false;
	if(in_array($needle, $haystack))
	{
		$in_multi_array = true;
	}
	else
	{
		for ($i = 0; $i < sizeof($haystack); $i++)
		{
			if(is_array($haystack[$i]))
			{
				if(in_multi_array($needle, $haystack[$i]))
				{
					$in_multi_array = true;
					break;
				}
			}
		}
	}
	return $in_multi_array;
}



//--------------------------------------------------------------------------------
//--------------------------- Ip wird herausgelesen ------------------------------
//--------------------------------------------------------------------------------
$errors = 0;
$z = file("antworten.dat","r");
$fp = fopen("lastip.log", "r");
while ($zeile = fgets($fp,2000))
    {
    	$ip[] = explode(",", $zeile);
    }
//----------------------------- Ip wird ueberprueft ------------------------------
if(in_multi_array($REMOTE_ADDR, $ip)){
	echo "Du hast schon gevotet<br><br>";
	$errors++;
	} else {
//--------------------------- wenn nicht ip speichern ----------------------------
    echo "nix";
	}



//--------------------------------------------------------------------------------
//----------------------------- fragen, wenn neuwähler ---------------------------
//--------------------------------------------------------------------------------
if($errors == 0)
{
	$varia=file("fragen.dat","r");
	$frage=array_pop($varia);
	$i = "0";
	
	echo "$frage";
	echo "<form action=\"poll_inc.php\" method=\"get\">";
	
	while(isset($varia[$i])) {
		$j=$i+1;
		echo "<input type=\"radio\" name=\"ant\" value=\"$j\">$varia[$i]<br>";
		$i++;
	}
	echo "<input type=\"submit\" name=\"button\" value=\"abstimmen\">";
	echo "</form>";
//--------------------------------------------------------------------------------
//------------------------- antworten, wenn nicht neuwähler ----------------------
//--------------------------------------------------------------------------------
} else {
	$varia=file("fragen.dat","r");
	$laenge=90;
	$gesamt=0;
	foreach($z as $zahl){
		$gesamt=$gesamt+$zahl;
	}
	$proz=array();
	foreach ($z as $zahl) {
		if ($gesamt!=0) {
			$p=round($zahl/$gesamt*10000)/100;
			array_push($proz,$p);
		}
	}
	$max=1;
	foreach ($z as $zahl) {
		$zahl=$zahl*10/10;
		if($zahl > $max) {
			$max=$zahl;
		}
	}
	$breite=array();
	foreach ($z as $zahl){
		$b=$zahl*$laenge/$max;
		array_push($breite,$b);
	}
	$i=0;
	while (isset($z[$i])){
		echo "$varia[$i]<br>"; 

		echo "<img src=\"balken_blau.gif\" border=\"0\" width=\"$breite[$i]\" height=\"12\" alt=\"$z[$i] Stimmen\">"; 

		$x=$laenge-$breite[$i];

		echo "<img src=\"balken_grau.gif\" border=\"0\" width=\"$x\" height=\"12\" alt=\"$z[$i] Stimmen\">"; 
		echo "$proz[$i]%";

		echo "<br>";

		$i++;
	}
	echo "<br>Stimmen: $gesamt (100%)";
}
poll_inc.php :
PHP:
function in_multi_array($needle, $haystack)
{
	$in_multi_array = false;
	if(in_array($needle, $haystack))
	{
		$in_multi_array = true;
	}
	else
	{
		for ($i = 0; $i < sizeof($haystack); $i++)
		{
			if(is_array($haystack[$i]))
			{
				if(in_multi_array($needle, $haystack[$i]))
				{
					$in_multi_array = true;
					break;
				}
			}
		}
	}
	return $in_multi_array;
}
$fp = fopen("lastip.log", "r");
while ($zeile = fgets($fp,2000))
    {
    	$ip[] = explode(",", $zeile);
    }
    
$z=file("antworten.dat","r");

if($button == "abstimmen" && !in_multi_array($REMOTE_ADDR, $ip)){
	$z[$ant-1]=$z[$ant-1]+1;
	$datei=fopen("antworten.dat","w");
	
	foreach ($z as $save) {fputs($datei,chop($save)."\n");}
	
	fclose($datei); 
	$saveip = fopen("lastip.log","a");
	$data = "$REMOTE_ADDR,ipnummer\n";
	fputs($saveip,$data);
	fclose($saveip);
	echo "Deine ip wurde gespeichert<br><br>";

} else {
	echo "Du hast schon gevotet";
}

das ganze beruht natürlich auf einer txt datenbank !
mit sql wäre es bestimmt viel einfacher (leider hab ich da noch keinen richtigen plan von :))
aber vielleicht lässt sich da was draus machen !
 
dein script ist aber irgendwie ip-basierend. das ist nciht so praktisch, denn eigentlich jeder hat verändernde ip's.

ich würde mit cookies arbeiten. die kann man löschen, aber das muss man schon absichtlich machen. ips ändern sich auch unabsichtlich.
 
ich weiss schon das sich ip´s andauernd ändern :)
das war ja auch erst zu testzwecken bei uns auf dem server gelegen, da hat jeder seine eigene ip... aber ich glaub das is ja kein problem sich das umzuschreiben !
 
DANKE

Ich danke euch ;)) Aber is besser so wenns ohne Datenbank läuft da ich eh sone lame DB von STRATO habe ;)) cu
 
das von evilash ausgebreitete script benutzt eine von ihm so getaufte "text-datenbank"

das ist keine datenbank. also läuft das ohne datenbank.
dann hast du da die lösung. ;D
 
ähmm wenn du mir folgen kannst hab ich ja net gesagt das sein script auf eine datenbank basiert ;)
 
at: mzeem.
sorry.. hab in der eile wohl das "so" überlesen. hast ja recht.

at: evilash.
hmm... das ist doch einfach ne textdatei mit daten drin. keine datenbank. oder hab ich wieder was überlesen.
dann ist es keine datenbank sondern einfach ne billige datei.. ;D
 
Zurück