Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

Umfrage .php

Hallo,
ich hab mir gestern eine Umfrage mit php auf meine Homepage gebaut. Jetzt würde ich gern noch eine zweite Umfrage dazu machen. Die soll am bessten auf die gleiche seite.
Der Code sieht folgendermasen aus:

<!DOCTYPE [url=http://www.computerhilfen.de/fachbegriffe-h-HTML.html][b]HTML[/b][/url] PUBLIC "-//W3C//DTD [url=http://www.computerhilfen.de/fachbegriffe-h-HTML.html][b]HTML[/b][/url] 4.0 Transitional//EN">
<html>
<head>
<title>Voting (Maps)</title>

<style type="text/css">
<!--

body, td, p {


color:green;
}

form {
margin-top:0px;
margin-bottom:0px;
margin-left:0px;
margin-right:0px;
margin:0px;
}

#spacebar {
background:#cccccc;
}

//-->
</style>

</head>
<body>



<table border=1 cellspacing=1 cellpadding=0 width=160>
<tr><td>
<table border=0 cellspacing=0 cellpadding=2 width="100%"><tr>
<td><center><b>Voting (Maps)</b></center></td>
</tr></table>
</td></tr>
<tr><td>
<table border=0 cellspacing=0 cellpadding=0 width="100%"><tr>
<td>&nbsp;</td>
<td>


<?php
// *** START EINSTELLUNGEN ***

// *** Transparente, 1x1 Pice große GIF-Datei für Abstände ***
$space_gif="space1.gif";

// *** Speicherort der poll-Daten ***
$data_file="Maps.dat";

// *** Datei zur Speicherung der letzten IP-Adresse ***
// *** Falls nicht angegeben, wird die IP-Adresse nicht geprüft! ***
$lastip_file="Maps_lastip.dat""Maps_lastip.dat";

// *** Maximale Breite der Balkengrafik ***
$bar_width=147;

// *** Bilder für die Balkengrafiken ***
$bar=array();
$bar[0]="poll0.gif";
$bar[1]="poll1.gif";
$bar[2]="poll2.gif";
$bar[3]="poll3.gif";
$bar[4]="poll4.gif";
$bar[5]="poll5.gif";
$bar[6]="poll6.gif";
$bar[7]="poll7.gif";
$bar[8]="poll0.gif";
$bar[9]="poll1.gif";
$bar[10]="poll2.gif";
$bar[11]="poll3.gif";
$bar[12]="poll4.gif";
$bar[13]="poll5.gif";
$bar[14]="poll6.gif";
$bar[15]="poll7.gif";
$bar[16]="poll0.gif";

// *** Text ***
$vote_text="Which Map is our best?";

// *** Titel der Punkte ***
$data=array();
$data[0]="Antartica";
$data[1]="Artifact";
$data[2]="Beiruit";
$data[3]="Block Party";
$data[4]="BootHill";
$data[5]="Container";
$data[6]="Crows Nest";
$data[7]="Cycle Garden + Snow House";
$data[8]="Floaters";
$data[9]="Floaters II";
$data[10]="FloodZone";
$data[11]="Java";
$data[12]="Kaapstaad";
$data[13]="Knife-Fight Map";
$data[14]="Slayer&#39;s map";
$data[15]="SnowBase (New Vehicle)";
$data[16]="TalibanFort";

// *** Initialisierung der Werte
//     (Anzahl muss mit jenen aus dem $data-Array übereinstimmen! ***
$values=array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);

// *** Wenn TRUE, wird nach erfolgreicher Stimmabgabe automatisch das
//     Ergebnis angezeigt, sonst wird wieder die Stimmabgabe angezeigt ***
$show_auto_result=true;

// *** ENDE EINSTELLUNGEN ***

echo "<img src=\"".$space_gif."\" width=1 height=1 border=0><br>\n";
echo 
$vote_text."<br>\n";
echo 
"<img src=\"".$space_gif."\" width=1 height=6 border=0><br>\n";
echo 
"<form action=\"".$_SERVER[&#39;PHP_SELF&#39;]."?action=vote\" method=\"POST\">\n";

if($_GET[&#39;action&#39;]=="vote"){
  // *** Werte einlesen ***
  $fp=@fopen($data_file,"r");
  if($fp){
    $line=fgets($fp,1000);
    fclose($fp);
    $values=explode("|",$line);
  }
  $allvals=0;
  foreach($values as $v){
    $allvals+=$v;
  }

  // *** Letzte IP-Adresse einlesen und mit aktueller vergleichen ***
  if($lastip_file){
    $fp=@fopen($lastip_file,"r");
    if($fp){
      $lip=trim(fgets($fp,1000));
      fclose($fp);
    }
    if($lip==trim($_SERVER[&#39;REMOTE_ADDR&#39;]."|".$_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;])) $iperr=true;
  }
  if($iperr){
    echo "<b>Failure:</b><br>\n";
    echo "You have already voted!<br>\n";
    echo "<img src=\"".$space_gif."\" width=1 height=6 border=0><br>\n";
  }else if(!$_POST[&#39;vote&#39;]){
    echo "<b>Failure:</b><br>\n";
    echo "Please choose one map!<br>\n";
    echo "<img src=\"".$space_gif."\" width=1 height=6 border=0><br>\n";
  }else{
    $values[$_POST[&#39;vote&#39;]-1]++;
    $line=implode("|",$values);
    $fp=@fopen($data_file,"w+");
    if($fp){
      flock($fp,2);
      fputs($fp,$line);
      flock($fp,3);
      fclose($fp);
    }
    // *** Letzte IP-Adresse speichern, um eine doppelte Stimmabgabe zu verhindern ***
    if($lastip_file){
      $fp=@fopen($lastip_file,"w+");
      if($fp){
        flock($fp,2);
        fputs($fp,trim($_SERVER[&#39;REMOTE_ADDR&#39;]."|".$_SERVER[&#39;HTTP_X_FORWARDED_FOR&#39;]));
        flock($fp,3);
        fclose($fp);
      }
    }
    echo "<b>Thanks</b> for your voting!<br>\n";
    echo "<img src=\"".$space_gif."\" width=1 height=6 border=0><br>\n";
    if($show_auto_result$_GET[&#39;action&#39;]="result";
  }
}

if(
$_GET[&#39;action&#39;]=="result"){
  // *** Werte einlesen ***
  $fp=@fopen($data_file,"r");
  if($fp){
    $line=fgets($fp,1000);
    fclose($fp);
    $values=explode("|",$line);
  }
  $allvals=0;
  foreach($values as $v){
    $allvals+=$v;
  }

  foreach($values as $v){
    if(($v) && ($allvals))
      if((100/$allvals)*$v>$maxval$maxval=(100/$allvals)*$v;
  }
  echo "<table border=0 cellspacing=0 cellpadding=0 width=".$bar_width."><tr>";
  echo "<td id=spacebar><img src=\"".$space_gif."\" width=1 height=1 border=0></td>";
  echo "</tr></table>\n";
  echo "<img src=\"".$space_gif."\" width=1 height=3 border=0><br>\n";
  for($i=0;$i<count($data);$i++){
    echo "<nobr><b>".$data[$i]."</b></nobr><br>\n";
    if($values[$i]==1$n=""; else $n="n";
    if($allvals$w=(100/$allvals)*$values[$i];
    if($maxval$mv=$bar_width/$maxval;
    echo "<i>".$values[$i]." votes".$s." (".number_format($w,2)." %)</i><br>\n";
    echo "<img src=\"".$space_gif."\" width=1 height=1 border=0><br>\n";
    echo "<img src=\"".$bar[$i]."\" width=".round($w*$mv)." height=8 border=0><br>\n";
    echo "<img src=\"".$space_gif."\" width=1 height=3 border=0><br>\n";
    echo "<table border=0 cellspacing=0 cellpadding=0 width=".$bar_width."><tr>";
    echo "<td id=spacebar><img src=\"".$space_gif."\" width=1 height=1 border=0></td>";
    echo "</tr></table>\n";
    echo "<img src=\"".$space_gif."\" width=1 height=3 border=0><br>\n";
  }
  echo "<center><a href=\"".$_SERVER[&#39;PHP_SELF&#39;]."\">Back to voting</a></center>\n";
}else{
  for($i=0;$i<count($data);$i++){
    echo "<input type=\"radio\" name=\"vote\" value=\"".($i+1)."\"><nobr>".$data[$i]."</nobr><br>\n";
  }
  echo "<img src=\"".$space_gif."\" width=1 height=6 border=0><br>\n";
  echo "<center><input type=\"submit\" name=\"submit\" value=\"Vote\"></center>\n";
  echo "<form>\n";
  echo "<img src=\"".$space_gif."\" width=1 height=3 border=0><br>\n";
  echo "<center><a href=\"".$_SERVER[&#39;PHP_SELF&#39;]."?action=result\">Show results</a></center>\n";
}

echo 
"<img src=\"".$space_gif."\" width=1 height=2 border=0><br>\n";
?>




</tr></table>
</td></tr></table>

</body>
</html>
Das ganze binde ich auf eine Seite ein, indem ich den code benutze:
<?PHP
include ( 'Maps.php' );
?>
Soweit funktiomiert das auch noch.
Dann mache ich meine zweite Umfrage. Ich kopiere alle Dateien und schreibe alles von Maps in Player um. Funktiont so weit auch noch. Aber sobald ich beide Umfragen auf eine Seite pack,:
<?PHP
include ( 'Maps.php' );
?>
<?PHP
include ( 'Player.php' );
?>
kommen 2 Probleme auf:
1.: Die beiden Umfragen sind untereinander, ich hätte sie allerdings gern nebeneinander.
2.: Wenn ich bei der zweiten Umfrage vote bzw. mir die resultate anschaue, kommen die ergebnisse von der ersten Umfrage, obwohl ich extra alle Dateien kopiert und Umbennat habe.
Wie kann ich die Probleme beheben??

Antworten zu Umfrage .php:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hallo,
zu 1): logisch erscheinen die untereinander, schließlich fasst du jede Umfrage in eine Tabelle ein. Wenn du die nebeneinander haben willst musst du die so anpassen, das die in je einer Tabellenreihe stehen. Das einfachste wird wohl sein, einfach beim Include noch ne Tabelle zu bauen.

zu 2) Tja, irgendwas haste da wohl vergessen... ich tippe mal, das du einfach die falsche Datei ausliest (Maps.dat)? Dann musste das natürlich aber auch mit den IP-Adressen berücksichtigen.

Mario 8)

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Nein ich lese die Daten aus der Player.dat.

Problem 1 hätte ich behoben danke.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ah ok jetzt stehen die richtigen Daten da.
Aber da kommt gleich ein anderes Problem:
Wenn ich auf Show results klicke kommen gleich beide ergebnisse. Die sollten sich allerdings einzelnd öffnen lassen.
Und wenn ich bei der zweiten Umfrage vote, wird das ergebniss zur ersten gezählt, obwohl ich in der .php das ziel richtig eingestellt hab.

« Letzte Änderung: 16.03.08, 13:35:55 von Toni_15 »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Du hast hoffentlich auch den beiden Formularen andere Namen gegeben und auch die POST-Variablen abgeändert? Denn das ist natürlich auch nachvollziehbar, du schickst die Seite zurück zum Server, der liest die Variablen aus, und da in deinem Fall das erste Skript beim Include vor dem Zweiten kommt, nimmt er natürlich den Code... wenn die Variable natürlich auch "vote" heißt.

Mario 8)

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ich habe alle vote in vote1 geändert, aber in der adresszeile wird immernoch action=vote ausgeführt.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Cache?

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Was ist mit Cache?

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

 ??? Hast du mal den Browser-Cache geleert? 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ja hab ich, bringt aber nichts.


« Homepage mit eigener Musik erstellenGrundgerüst plus Seiteninhalt.!! Dringend!! »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Quellcode
Ein Quellcode, auch als Quelltext bekannt, bezeichnet den unkompilierten Programm-Code einer Software. Quell- oder Programm-Code ist der auch für Menschen lesbare Co...

Unicode
Unicode ist ein international anerkannter Standard, der als universeller Zeichencode ("Universal Code") dient und durch das Unicode-Konsortium entwickelt und verwaltet wi...

QR-Code
QR-Codes, die Abkürzung für "Quick Response Codes", sind eine Form von zweidimensionalen Barcodes. Damit lassen sich Informationen schnell und effizient speiche...