[PHP] UmfrageScript ändern, damit ich 2 Umfragen in einer Seite habe?

digiTALE

Lt. Junior Grade
Registriert
Juli 2004
Beiträge
270
Hallo,

habe ein UmfrageScript, funktioniert auch einwandfrei. Nur wollte ich eine 2 Umfrage mit einfügen und habe das gleiche Script benutzt, aber an welchen sstellen muss ich das ändern damit es sich nicht in die Quere kommt !?

Das Script kommt ohne MySQL aus, wär schön wenn mir jemand helfen könnte :)

PHP:
<?php
	$varia=file("php/1_frage.txt","r");
	$frage=array_pop($varia);
	echo "<div class=\"main_text\"><b>$frage <font color=\"cc0000\"> *</font></b><br><br />";
	echo "<table width=\"660\" cellpadding=\"0\" cellspacing=\"0\">";
	echo "<tr />";
	echo "<td width=\"240\" valign=\"top\" class=\"umfrage\">";
	echo "<form action=\"$_SERVER[PHP_SELF]\" method=\"post\">"; 
	$i=0;
	while(isset($varia[$i])) {
	$j=$i+1;
	echo "<input type=\"radio\" name=\"ant\" value=\"$j\"> $varia[$i]<br />";
	$i++;
	} 
	echo "<br />";
	echo "<input type=\"submit\" value=\"Abstimmen\" class=\"button\"></form>";
	echo "<td width=\"420\" valign=\"top\" class=\"umfrage\">"; 
	$z=file("php/1_antwort.txt","r"); 
	if ($ant!='') { 
	$lvote=fopen("php/1_ip.txt","r");
	$lv=fgets($lvote,255);
	fclose($lvote);
	$ip=getenv("REMOTE_ADDR");
	if ($lv!=$ip) { 
	$z[$ant-1]=$z[$ant-1]+1;
	$datei=fopen("php/1_antwort.txt","w");
	foreach ($z as $save) {fputs($datei,chop($save)."\n");}
	fclose($datei); 
	$lvote=fopen("php/1_ip.txt","w");
	fputs($lvote,"$ip");
	fclose($lvote);
	}
	} 
	$laenge=300; 
	$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=\"img/grau_1.png\" width=\"3\" height=\"12\" align=\"absmiddle\"><img src=\"img/grau_2.png\" width=\"$breite[$i]\" height=\"12\" align=\"absmiddle\"><img src=\"img/grau_3.png\" width=\"3\" height=\"12\" align=\"absmiddle\">"; 
	echo " <b>$proz[$i]%</b>";
	echo "<br />";
	$i++;
	}
	echo "<br /><b>Stimmen: $gesamt (100%)</b></td>";
	echo "</td>";
	echo "</tr>";
	echo "</table>";
	echo "</div>";
?>
 

Anhänge

  • UmfrageScript.txt
    1,9 KB · Aufrufe: 424
Zuletzt bearbeitet von einem Moderator:
AW: [PHP] UmfrageScript ändern, damit ich 2 Umfragen in einer Seite habe !?

andere Sache, warum machst du bei den brs den Abschluss hin, lässt aber bei imgs das alt Attribut und den Abschluss weg ? <font> benutzt man schon lange nicht mehr!
 
AW: [PHP] UmfrageScript ändern, damit ich 2 Umfragen in einer Seite habe !?

Ich denke es reicht, alle verwendeten Dateinamen zu ändern, so dass die Umfragen in unterschiedlichen Speicherorten zwischengespeichert werden.
 
AW: [PHP] UmfrageScript ändern, damit ich 2 Umfragen in einer Seite habe !?

@ Benjamin_L

Habe das bei vielen gesehen ds sie beim br so einen Abschluss gemacht haben. und das ALT Attribut habe ich vergessen so wie es aussieht.


@ kuehnch

das habe ich schon probiert aber das funktioniert nicht. Da muss noch irgendetwas im Script verändert werden.


Weiß jemand was ich im Script ändern muss damit ich 2 Umfragen in einem habe?
 
AW: [PHP] UmfrageScript ändern, damit ich 2 Umfragen in einer Seite habe !?

Du müsstest an das Script eine Zahl übergeben. Und dann immer schreiben statt.
PHP:
"php/1_frage.txt"

PHP:
"php/".$id."_frage.txt"

Übergebe also eine ID der Umfrage per GET an das Script.
PHP:
if( (!isset($_GET['pollID'])) ) { die("Es wurde keine Umfragen-ID definiert!"); }

$id = $_GET['pollID'];

if( !is_numeric($id) ) { die("Ung&uuml;ltiger Typ von 'ID'!"); }

Mfg
KoЯn
 
Zuletzt bearbeitet:
AW: [PHP] UmfrageScript ändern, damit ich 2 Umfragen in einer Seite habe !?

ähm ich wollte das script dann 2 mal in einer Seite einbauen. Dazu habe ich mir die "txt" dateien angelegt.

Für die erste Umfrage :
- 1_fragen.txt
- 1_antworten.txt
- 1_ip.txt


Für die zweite Umfrage :
- 2_fragen.txt
- 2_antworten.txt
- 2_ip.txt

und die "txt" dateien sind im selben ordner namens "php". Wenn ich bei der Zweiten Umfrage abstimme wird irgendwie auch die erste Umfrage mit abgestimmt"


@ Quidoff

und das funktioniert auch wenn ich das für die 2_frage.txt benutze?
 
AW: [PHP] UmfrageScript ändern, damit ich 2 Umfragen in einer Seite habe !?

Ich hab mir das Script jetzt nicht genau durchgelesen (ist auch abschreckend formatiert ;) ), aber theoretisch müsste es gehen. Probiers einfach mal aus. Denk dran, dass du dann immer die pollID übergeben musst.

Mfg
KoЯn
 
hmm, ich versteh das jetzt nicht so ganz, wie erkennt der das der vorn auf die 1 zugreifen muss oder auf due 2?

Wo muss ich das jetzt im Script abändern !?

Bin mit PHP noch nicht so gut vertraut :-/
 
Also ich hab das Script mal abgeändert. Es waren auch noch andere Fehler drin, die ich entfernt habe. Ich weiß allerdings nicht, ob das Script richtig funktioniert. Die Formatierung ist wie gesagt nicht so toll. Man sollte nach einer geöffneten geschweiften Klammer immer eine neue Zeile anfangen und dann etwas einrücken.

Mfg
KoЯn
 
Also den <br>-Abschluss macht man nur bei XHTML, da dort alle offenen Tags geschlossen werden muessen, darunter auch <img>, <br>, <hr>, <meta> etc. Da du wahrscheinlich gar keinen Doctype definiert hast, ist das sowieso unwichtig.
 
@Quidoff
Hmm das funktionietr nicht so recht, bei mir wird dann das bloß angezeigt "Es wurde keine Umfragen-ID definiert!"
Wie soll ich die jetzt defenieren?

@ Benjamin_L
Ja Danke, hab es abgeändert ! ;)

PHP:
<?php
 
			if( (!isset($_GET['pollID'])) ) {

				die("Es wurde keine Umfragen-ID definiert!");

			}
			
			$id = $_GET['pollID'];
			if( !is_numeric($id) ) {

				die("Ung&uuml;ltiger Typ von 'ID'!");
			
			}

			$frageDatei = (string) "php/".$id."_frage.txt";

			$antwortDatei = (string) "php/".$id."_antwort.txt";

			$ipDatei = (string) "php/".$id."_ip.txt";
 
			$varia=file($frageDatei);

			$frage=array_pop($varia);

			echo "<div class=\"main_text\"><b>$frage <font color=\"cc0000\"> *</font></b><br><br>";

			echo "<table width=\"660\" cellpadding=\"0\" cellspacing=\"0\">";

			echo "<tr>";

			echo "<td width=\"240\" valign=\"top\" class=\"umfrage\">";

			echo "<form action=\"$_SERVER[PHP_SELF]\" method=\"post\">"; 

			$i=0;

			while(isset($varia[$i])) {

				$j=$i+1;

				echo "<input type=\"radio\" name=\"ant\" value=\"$j\"> $varia[$i]<br>";

				$i++;

			}

			echo "<br>";

			echo "<input type=\"submit\" value=\"Abstimmen\" class=\"button\"></form>";

			echo "<td width=\"420\" valign=\"top\" class=\"umfrage\">";

			$z=file($antwortDatei);

			if ($ant!='') {

				$lvote=fopen($ipDatei,"r");

				$lv=fgets($lvote,255);

				fclose($lvote);

				$ip=getenv("REMOTE_ADDR");

				if ($lv!=$ip) {

					$z[$ant-1]=$z[$ant-1]+1;

					$datei=fopen($antwortDatei,"w");

					foreach ($z as $save) {

						fputs($datei,chop($save)."\n");
					}

					fclose($datei);

					$lvote=fopen($ipDatei,"w");

					fputs($lvote,"$ip");

					fclose($lvote);

				}

			}

			$laenge=300;

			$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=\"img/grau_1.png\" width=\"3\" height=\"12\" align=\"absmiddle\"><img src=\"img/grau_2.png\" width=\"$breite[$i]\" height=\"12\" align=\"absmiddle\"><img src=\"img/grau_3.png\" width=\"3\" height=\"12\" align=\"absmiddle\">"; 

				echo " <b>$proz[$i]%</b>";
	
				echo "<br>";

				$i++;

			}

			echo "<br><b>Stimmen: $gesamt (100%)</b></td>";

			echo "</td>";

			echo "</tr>";

			echo "</table>";

			echo "</div>";

			?>
 

Anhänge

  • UmfrageScript v2.txt
    2,6 KB · Aufrufe: 385
Zuletzt bearbeitet von einem Moderator:
Oder ich weiß schon wie ich das machen werde, ich werde einfach zwei iframes erstellen und die umfragen dann in neue dokumte erstellen.
Und somit binde ich sie in die hauptseite ein. So kommt sich das Script nicht in die Quere, mal schauen ob das funktioniert :)

mfg digiTALE
 
Also wenn du zwei Umfragen auf der selben Seite anzeigen willst, dann wäre es vllt besser den gesamten Umfragen Quelltext in eine Funktion zu schreiben an die du dann die ID übergibst. So brauchst du dich nicht mit iFrames oder so rum zu ärgern.
Script

Du rufst dann an der Stelle wo die Umfrage erscheinen soll einfach die Funktion "umfragen($id)" auf und übergibst die ID der Umfrage.
PHP:
<?php umfragen(1); ?>

Mfg
KoЯn
 
Zurück
Oben