Vote-box
muga
- php
Hallo all
Ich habe folgendes Problem, die mich seit Stunden zur Unsinig macht.
Ich habe eine Vote erstellt und die funktioniert supper bis auf ein Problem:
wenn ich abstimme, wird das Ergebniss klar in % gezeigt, aber wenn ich die Homepage aktulisiere (f5 drucken) dann werden die prozente der Vote weiterhochgezählt!.
kann jemand mir vielleicht sagen, woran es liegen kann?
Ich freue mich sehr auf eine ausführliche Antwort
Grüß
muga
Hi,
auf Grund der schlechten Wirtschaftslage musste ich meine Glaskugel leider verkaufen !
Nen bißchen Code wäre fein
Gruß
GermanysNextTopfmodel
Danke für die ausführliche Antwort vorallem von Auge.
ich habe den Code bis hier geschaft, aber trotzdem zählt er hoch beim Drucken von F5 weiter. es wäre werklich sehr nett, wenn jemand mir die stelle, wo es noch was fiehlt klären
<?
global $action;
global $Wahl;
//global $msub_Comp_ID;
global $Vote_System2;
//include("../mysqlconnect.php");
//$Owner_ID=1;
//global $Vote_System;
//$msub_Comp_ID=6;
?>
<?
//$add_to.="Nr: $Vote_System2";
//echo "nr: ".$Vote_System;
if(!isset($msub_Comp_ID) or $msub_Comp_ID==0)
{
$add_to.="Fehler in der Votebox!";
}
else
{
if($Vote_System2==$msub_Comp_ID)
{
//setcookie("Vote_System","sd",time()+12*3600);
$add_to.= "Heute schon gevotet. Erst in 24 Stunden wieder!";
$showvote=1;
}
?>
<?
//ab hier kann das Fehler liegen
if(!isset($action) and !isset($showvote))
{
$sql="SELECT * FROM voting_frage where frage_ID=$msub_Comp_ID";
if(!$ergebnis=mysql_query($sql))
{
$add_to.= mysql_errno()." : ".mysql_error();
}
while($entry=mysql_fetch_object($ergebnis,MYSQL_ASSOC))
{
// die Umfrage klingt deutlicher in einer Tabelle
$add_to.= "<table style='background-color:#0000FF' border ='0' width='100%' height='100%'><tr><td align=left>". "<b style ='color:#FFFFFF'>".$entry->Frage."</b>"."</td></tr>";
}
$sql="SELECT * FROM voting_antworten where frage_ID=$msub_Comp_ID";
if(!$ergebnis=mysql_query($sql))
{
$add_to.= mysql_errno()." : ".mysql_error();
exit();
}
$add_to.="<b style ='color:#FF0000'> Unsere aktulle Umfrage für Sie!! </b>";
$add_to.= "<form method=get action=''>";
while($entry=mysql_fetch_object($ergebnis,MYSQL_ASSOC))
{
//$Antwort = $entry->Antwort;
$add_to.= "<table style='background-color:#0000FF' border ='0' width='100%'><tr><td align=left><input type=radio name=Wahl value='$entry->Ant_ID'></td><td style ='color:#FFFFFF' align=left >$entry->Antwort</td></tr>";
//setcookie("Ant",$entry->Antwort,time()+5);
}
$add_to.= "<tr><td><input type=hidden name=action value=add> </td><td><input type=submit value=OK></td></tr>";
$add_to.= "</table><input type=hidden name=level value=$level><input type=hidden name=Top_ID value=$Top_ID><input type=hidden name=ID value=$ID></form>";
}
else if($action=="add")
{
// die Wahl darf nciht mehr als 3 Sekunden gewählt
// if (isset($Wahl) or $Wahl!="") { setcookie("wahl",$Wahl,time()+5);}
if(!isset($Wahl) or $Wahl=="")
{
$add_to.="Sie haben nichts ausgewählt.<a href='javascript:history.back();'>Zurück</a>";
}
else
{
$sql="SELECT Ergebnis FROM voting_antworten where Ant_ID=$Wahl";
if(!$ergebnis=mysql_query($sql))
{
$add_to.= mysql_errno()." : ".mysql_error();
}
$wert=1;
if($entry=mysql_fetch_object($ergebnis,MYSQL_ASSOC))
{
$wert=$wert+$entry->Ergebnis;
}
//ab hier besser aufpassen
$sql="Update voting_antworten Set Ergebnis=$wert where Ant_ID=$Wahl";
if(!$ergebnis=mysql_query($sql))
{
$add_to.= mysql_errno()." : ".mysql_error();
}
//setcookie("Vote_System",$msub_Comp_ID,time()+5);
$Vote_System2=$msub_Comp_ID;
//$add_to.= $Vote_System;
$add_to.= "<table style='background-color:#0000FF' border ='0' width='100%' height='100%'><tr><td align=left>". "<b style ='color:#FFFFFF'>" ."Sie haben Ihre Stimme abgegeben!</b>"."</td></tr>";
$showvote=1;
}
}
if(isset($showvote) and $showvote==1)
{
$sql="SELECT * FROM voting_antworten where frage_ID=$msub_Comp_ID";
if(!$ergebnis=mysql_query($sql))
{
$add_to.= mysql_errno()." : ".mysql_error();
}
$total=0;
while($entry=mysql_fetch_object($ergebnis,MYSQL_ASSOC))
{
$total=$total+$entry->Ergebnis;
}
$sql="SELECT * FROM voting_antworten where frage_ID=$msub_Comp_ID";
if(!$ergebnis=mysql_query($sql))
{
$add_to.= mysql_errno()." : ".mysql_error();
exit();
}
$anz_ant=0;
//$total=mysql_num_rows($ergebnis);
$add_to.= "<br>";
if($total==0) $total=1;
while($entry=mysql_fetch_object($ergebnis,MYSQL_ASSOC))
{
$anz_ant++;
$pro_erg=100*$entry->Ergebnis/$total;
$pro_erg=round($pro_erg);
$pro_erg_gr=(int) ($pro_erg/2);
$add_to.= "<table width=100%><tr><td width=50 align='left'><img src='http://www.saarsportvereine.de/content_01/systemdesign/vote_farb_".(($anz_ant % 5)+1).".jpg' width='$pro_erg_gr' height='15'></td><td width=40 align='left'>$entry->Antwort </td><td width=10>".$pro_erg."% ($entry->Ergebnis)</td></tr></table>";
}
$add_to.= " <input type='submit' name='zurueck' value='zurück' OnClick='javascript:history.back();'>";
}
}
schöne Grüße
muga
na keiner da? ich denke, dass es schlicht ist, am Sonntag zu fragen, ich lasse es bis Morgen, wahrscheinlich wacht jemand auf:-)
Hallo,
na keiner da? ich denke, dass es schlicht ist, am Sonntag zu fragen, ich lasse es bis Morgen, wahrscheinlich wacht jemand auf:-)
warum? Du hast die Antwort doch schon auf dem Silbertablett bekommen. Jetzt liegt es an dir, sie aufzugreifen und den Lösungsvorschlag umzusetzen.
So long,
Martin
kann jemand mir vielleicht sagen, woran es liegen kann?
Weil Dein Vote mit F5 nochmal abgeschickt wird !?
Hallo
wenn ich abstimme, wird das Ergebniss klar in % gezeigt, aber wenn ich die Homepage aktulisiere (f5 drucken) dann werden die prozente der Vote weiterhochgezählt!.
kann jemand mir vielleicht sagen, woran es liegen kann?
Kann ich. Mit dem drücken von F5 lädst du die Seite neu udn schickst dab4ei nebenher den Inhalt des Formulars erneut ab. Also wird dieser Vote den anderen hinzugefügt. Prüfe bei Eingang eines Votings, ob dies ein Wiederholungsfall ist. Dazu müsstest du allerdings einerseits bei der Auslieferung der Seite dem Formular per hidden-Feld eine einmalig erzeugte[1], eindeutige Zeichenkette hinzufügen und andererseits diese bei Erhalt eines Votings für jedes erfolgreichen Voting einzeln abspeichern um gegen sie prüfen zu können, ob ein Formular eventuell erneut abgeschickt wurde.
[1] "einmalig erzeugt" heißt, dass eine solche Zeichenkette bei jedem Aufruf des Formulars neu erzeugt wird, damit sie bei jedem Aufruf anders zusammengesetzt ist.
Tschö, Auge
Danke für die ausführliche Antwort vorallem von Auge.
ich habe den Code bis hier geschaft, aber trotzdem zählt er hoch beim Drucken von F5 weiter. es wäre werklich sehr nett, wenn jemand mir die stelle, wo es noch was fiehlt klären
<?
global $action;
global $Wahl;
//global $msub_Comp_ID;
global $Vote_System2;
//include("../mysqlconnect.php");
//$Owner_ID=1;
//global $Vote_System;
//$msub_Comp_ID=6;
?>
<?
//$add_to.="Nr: $Vote_System2";
//echo "nr: ".$Vote_System;
if(!isset($msub_Comp_ID) or $msub_Comp_ID==0)
{
$add_to.="Fehler in der Votebox!";
}
else
{
if($Vote_System2==$msub_Comp_ID)
{
//setcookie("Vote_System","sd",time()+12*3600);
$add_to.= "Heute schon gevotet. Erst in 24 Stunden wieder!";
$showvote=1;
}
?>
<?
//ab hier kann das Fehler liegen
if(!isset($action) and !isset($showvote))
{
$sql="SELECT * FROM voting_frage where frage_ID=$msub_Comp_ID";
if(!$ergebnis=mysql\_query($sql))
{
$add_to.= mysql_errno()." : ".mysql_error();
}
while($entry=mysql\_fetch\_object($ergebnis,MYSQL\_ASSOC))
{
// die Umfrage klingt deutlicher in einer Tabelle
$add_to.= "<table style='background-color:#0000FF' border ='0' width='100%' height='100%'><tr><td align=left>". "<b style ='color:#FFFFFF'>".$entry->Frage."</b>"."</td></tr>";
}
$sql="SELECT \* FROM voting\_antworten where frage\_ID=$msub\_Comp\_ID";
if(!$ergebnis=mysql\_query($sql))
{
$add_to.= mysql_errno()." : ".mysql_error();
exit();
}
$add_to.="<b style ='color:#FF0000'> Unsere aktulle Umfrage für Sie!! </b>";
$add_to.= "<form method=get action=''>";
while($entry=mysql\_fetch\_object($ergebnis,MYSQL\_ASSOC))
{
//$Antwort = $entry->Antwort;
$add_to.= "<table style='background-color:#0000FF' border ='0' width='100%'><tr><td align=left><input type=radio name=Wahl value='$entry->Ant_ID'></td><td style ='color:#FFFFFF' align=left >$entry->Antwort</td></tr>";
//setcookie("Ant",$entry->Antwort,time()+5);
}
$add\_to.= "<tr><td><input type=hidden name=action value=add> </td><td><input type=submit value=OK></td></tr>";
$add\_to.= "</table><input type=hidden name=level value=$level><input type=hidden name=Top\_ID value=$Top\_ID><input type=hidden name=ID value=$ID></form>";
}
else if($action=="add")
{
// die Wahl darf nciht mehr als 3 Sekunden gewählt
// if (isset($Wahl) or $Wahl!="") { setcookie("wahl",$Wahl,time()+5);}
if(!isset($Wahl) or $Wahl=="")
{
$add_to.="Sie haben nichts ausgewählt.<a href='javascript:history.back();'>Zurück</a>";
}
else
{
$sql="SELECT Ergebnis FROM voting_antworten where Ant_ID=$Wahl";
if(!$ergebnis=mysql\_query($sql))
{
$add_to.= mysql_errno()." : ".mysql_error();
}
$wert=1;
if($entry=mysql\_fetch\_object($ergebnis,MYSQL\_ASSOC))
{
$wert=$wert+$entry->Ergebnis;
}
//ab hier besser aufpassen
$sql="Update voting_antworten Set Ergebnis=$wert where Ant_ID=$Wahl";
if(!$ergebnis=mysql\_query($sql))
{
$add_to.= mysql_errno()." : ".mysql_error();
}
//setcookie("Vote\_System",$msub\_Comp\_ID,time()+5);
$Vote\_System2=$msub\_Comp\_ID;
//$add\_to.= $Vote\_System;
$add_to.= "<table style='background-color:#0000FF' border ='0' width='100%' height='100%'><tr><td align=left>". "<b style ='color:#FFFFFF'>" ."Sie haben Ihre Stimme abgegeben!</b>"."</td></tr>";
$showvote=1;
}
}
if(isset($showvote) and $showvote==1)
{
$sql="SELECT \* FROM voting\_antworten where frage\_ID=$msub\_Comp\_ID";
if(!$ergebnis=mysql\_query($sql))
{
$add_to.= mysql_errno()." : ".mysql_error();
}
$total=0;
while($entry=mysql\_fetch\_object($ergebnis,MYSQL\_ASSOC))
{
$total=$total+$entry->Ergebnis;
}
$sql="SELECT \* FROM voting\_antworten where frage\_ID=$msub\_Comp\_ID";
if(!$ergebnis=mysql\_query($sql))
{
$add_to.= mysql_errno()." : ".mysql_error();
exit();
}
$anz\_ant=0;
//$total=mysql\_num\_rows($ergebnis);
$add\_to.= "<br>";
if($total==0) $total=1;
while($entry=mysql\_fetch\_object($ergebnis,MYSQL\_ASSOC))
{
$anz_ant++;
$pro_erg=100*$entry->Ergebnis/$total;
$pro_erg=round($pro_erg);
$pro\_erg\_gr=(int) ($pro\_erg/2);
$add\_to.= "<table width=100%><tr><td width=50 align='left'><img src='http://www.saarsportvereine.de/content\_01/systemdesign/vote\_farb\_".(($anz\_ant % 5)+1).".jpg' width='$pro\_erg\_gr' height='15'></td><td width=40 align='left'>$entry->Antwort </td><td width=10>".$pro\_erg."% ($entry->Ergebnis)</td></tr></table>";
}
$add_to.= " <input type='submit' name='zurueck' value='zurück' OnClick='javascript:history.back();'>";
}
}
schöne Grüße
muga