Avatar billede phrozia Juniormester
28. januar 2001 - 19:28 Der er 11 kommentarer og
1 løsning

Afstemning...

Hejsa.. Jeg har en afstemning på min side, som jeg gerne vil have ændret lidt. Det derejer sig om 2 ting.

1: Hvis brugeren HAR stemt en gang, skal den bare vise resultatet af afstemningen, og ikke stem knappen.

2: Jeg tænkte på om det var muligt at få resultatet ud i %\'er i stedet for stemmer?

Her er selv koden:

<?
if (!$action && !$lets == \"go\"){
?>

Hvad synes du om Inzone.dk\'s nye design?<br><br>
God - <? include(\"votes/001/1.txt\");  ?> Stemmer<BR>
<table width=\"<? include(\"votes/001/1.txt\"); ?>\" bgcolor=\"red\"><tr><td></td></tr></table>

Skod - <? include(\"votes/001/2.txt\"); ?> Stemmer<BR>
<table width=\"<? include(\"votes/001/2.txt\"); ?>\" bgcolor=\"red\"><tr><td></td></tr></table>

Who Cares ¿ - <? include(\"votes/001/3.txt\"); ?> Stemmer<BR>
<table width=\"<? include(\"votes/001/3.txt\"); ?>\" bgcolor=\"red\"><tr><td></td></tr></table>
<br><center>
<a href=\"<? $PHP_SELF ?>?action=vote\">Stem!</a>

<?
}
?>
<?
if ($action == \"vote\")
{
  if(!$ip) // Hvis var $ip ikke findes...
  {
      ?>

      Hvad syntes du om denne afstemning ???
      <form action=\"<? $PHP_SELF ?>?lets=go\" method=\"post\">
      <select name=\"vote\">
      <OPTION value=\"votes/001/1.txt\">God</option>
      <OPTION value=\"votes/001/2.txt\">Skod</option>
      <OPTION value=\"votes/001/3.txt\">Who Cares</option>
      </select>
      <input type=\"submit\" value=\"  Stem  \">
      </form>

      <?
  }
  else
  {
    echo \"Du har stemt en gang\";
  }
}


if ($lets == \"go\"){

$counter1=fopen(\"$vote\",\"r\");
$antal1=fgets($counter1,30);
$antal1++;
fclose($counter1);
$counter1=fopen(\"$vote\",\"w+\");
fwrite($counter1,$antal1);
fclose($counter1);
echo \"Din stemme blev gemt!\\n\";
echo \"<a href=$PHP_SELF>Se afstemning</a>\";

}
?>

/Phrozia
Avatar billede r_brejnholt Nybegynder
28. januar 2001 - 20:48 #1
Det skulle da være forholdsvist enkelt det der med procent:
$a=include(\"votes/001/1.txt\"); 
$b=include(\"votes/001/2.txt\"); 
$c=include(\"votes/001/3.txt\"); 
$ialt=$a+$b+$c;
$ax=round($a/$ialt*100);
$bx=round($b/$ialt*100);
$cx=round($c/$ialt*100);
Ovesntående skal så bare erstatte de nuværende include-fil-steder. (PS: Hvis du f.eks. vil runde en decimal, skal du bare gange dit x-tal med ti før roun() funktionen, og dividere med 10 efter)
Avatar billede r_brejnholt Nybegynder
28. januar 2001 - 20:56 #2
Jeg er ikke sikker på at jeg ved hvad du mener med ikke at vise stemknappen, m,en hvis du nu indsætter et
<?
if (!$ip) { //før din
echo  \"<a href=\\\"\".$PHP_SELF.\"?action=vote\">Stem!</a>\";
?>
så kommer der sa ihvertfald ingen stemknap - men så skal du jo have en eller anden databse til at registrere om brugerens ip har stemt, hvilket det iøvrigt lader til er tilfældet.
En anden løsning er at gemme det i en cookie:
SetCookie(\"stemt\",\"1\",24*3600); //tror jeg nok :)
//og så sige at
if (!$stemt)
echo  \"<a href=\\\"\".$PHP_SELF.\"?action=vote\">Stem!</a>\";
eller hvad du nu vil...
Avatar billede r_brejnholt Nybegynder
28. januar 2001 - 20:58 #3
PS: Jeg har oplevet problemer med at bruge tekstfiler som datakilder: Hvis flere brugere uheldigvis kommer til at trykke med en brøkdels sekund forskel, kan man risikere at tekstfilen bliver nulstillet -  jeg er ikke helt sikker på hvorfor, men det sker ihvertfald ikke ved databaser, så måske det var en bedre løsning - om muligt selvfølgelig...
Avatar billede nerdyguy Nybegynder
28. januar 2001 - 21:10 #4
Lige en kommentar til round().  Jeg har oplevet at hvis man pludser talene sammen så kan de give 96 eller 97 .. Så jeg bruger number_format() (http://www.php.net/manual/en/function.number-format.php) som afrunde med xx antal decimaler alt efter ens behov. Jeg bruger 2 til mine poll\'s....
Avatar billede phrozia Juniormester
28. januar 2001 - 23:31 #5
Hvad skal sættes hvor? Jeg er rimelig ny i PHP. Jeg har lige prøvet, men jeg kan ikke få det til at funke.. Kan du ikke sætte dine svar ind i koden?

Det ville være perfekt!

/Phrozia
Avatar billede exposure Nybegynder
30. januar 2001 - 12:05 #6
<?
if($submit)
{
    setcookie(\"vote\",\"1\",time()+2419200);
}



if (!$action && !$lets == \"go\")
{
  ?>

  Hvad synes du om Inzone.dk\'s nye design?<br><br>
  God - <? include(\"votes/001/1.txt\");  ?> Stemmer<BR>
  <table width=\"<? include(\"votes/001/1.txt\"); ?>\" bgcolor=\"red\"><tr><td></td></tr></table>

  Skod - <? include(\"votes/001/2.txt\"); ?> Stemmer<BR>
  <table width=\"<? include(\"votes/001/2.txt\"); ?>\" bgcolor=\"red\"><tr><td></td></tr></table>

  Who Cares ¿ - <? include(\"votes/001/3.txt\"); ?> Stemmer<BR>
  <table width=\"<? include(\"votes/001/3.txt\"); ?>\" bgcolor=\"red\"><tr><td></td></tr></table>
  <br><center>
  <?

  if(!$vote)
    { echo \'<a href=\"\'.$PHP_SELF.\'?action=vote\">Stem!</a>\'; }
  else
    { }

}


if ($action == \"vote\")
{
  if(!$vote) // Hvis var $ip ikke findes...
  {
      ?>

      Hvad syntes du om denne afstemning ???
      <form action=\"<? $PHP_SELF ?>?lets=go\" method=\"post\">
      <select name=\"vote\">
      <OPTION value=\"votes/001/1.txt\">God</option>
      <OPTION value=\"votes/001/2.txt\">Skod</option>
      <OPTION value=\"votes/001/3.txt\">Who Cares</option>
      </select>
      <input type=\"submit\" value=\"  Stem  \" name=\"submit\">
      </form>

      <?
  }
  elseif($vote)
  {
    echo \"Du har stemt en gang\";
  }
}


if ($lets == \"go\"){

$counter1=fopen(\"$vote\",\"r\");
$antal1=fgets($counter1,30);
$antal1++;
fclose($counter1);
$counter1=fopen(\"$vote\",\"w+\");
fwrite($counter1,$antal1);
fclose($counter1);
echo \"Din stemme blev gemt!\\n\";
echo \"<a href=$PHP_SELF>Se afstemning</a>\";

}
?>
Avatar billede phrozia Juniormester
30. januar 2001 - 12:08 #7
Tak Exposure... Rart at se en der gider hjælpe!!

Tror du at du kunne fixe det med procenterne også? Det ville være kanont!
Avatar billede exposure Nybegynder
30. januar 2001 - 12:17 #8
<?
if($submit)
{
    setcookie(\"vote\",\"1\",time()+2419200);
}



if (!$action && !$lets == \"go\")
{
  $a = include(\"votes/001/1.txt\"); 
  $b = include(\"votes/001/2.txt\"); 
  $c = include(\"votes/001/3.txt\"); 
  $ialt = $a + $b + $c;
  $god = round($a/$ialt*100);
  $skod = round($b/$ialt*100);
  $cares = round($c/$ialt*100);

  ?>

  Hvad synes du om Inzone.dk\'s nye design?<br><br>
  God - <?=$god ?>% Stemmer<BR>
  <table width=\"<?=$god ?>\" bgcolor=\"red\"><tr><td></td></tr></table>

  Skod - <?=$skod ?>% Stemmer<BR>
  <table width=\"<?=$skod ?>\" bgcolor=\"red\"><tr><td></td></tr></table>

  Who Cares ¿ - <?=$cares ?>% Stemmer<BR>
  <table width=\"<?=$cares ?>\" bgcolor=\"red\"><tr><td></td></tr></table>
  <br><center>
  <?

  if(!$vote)
    { echo \'<a href=\"\'.$PHP_SELF.\'?action=vote\">Stem!</a>\'; }
  else
    { }

}


if ($action == \"vote\")
{
  if(!$vote) // Hvis var $ip ikke findes...
  {
      ?>

      Hvad syntes du om denne afstemning ???
      <form action=\"<? $PHP_SELF ?>?lets=go\" method=\"post\">
      <select name=\"vote\">
      <OPTION value=\"votes/001/1.txt\">God</option>
      <OPTION value=\"votes/001/2.txt\">Skod</option>
      <OPTION value=\"votes/001/3.txt\">Who Cares</option>
      </select>
      <input type=\"submit\" value=\"  Stem  \" name=\"submit\">
      </form>

      <?
  }
  elseif($vote)
  {
    echo \"Du har stemt en gang\";
  }
}


if ($lets == \"go\"){

$counter1=fopen(\"$vote\",\"r\");
$antal1=fgets($counter1,30);
$antal1++;
fclose($counter1);
$counter1=fopen(\"$vote\",\"w+\");
fwrite($counter1,$antal1);
fclose($counter1);
echo \"Din stemme blev gemt!\\n\";
echo \'<a href=\"\'.$PHP_SELF.\'\">Se afstemning</a>\';

}
?>
Avatar billede phrozia Juniormester
31. januar 2001 - 19:34 #9
Ok.. Det funker ikke... Der er konstat 33% i alle sammen, plus den fucker up, når man stemmer...!

Damn.. Andre ?
Avatar billede r_brejnholt Nybegynder
02. februar 2001 - 10:06 #10
Du har et uheldigt navn for din cookie. Den konflikter med den anden vote-var. Prøv det her:
<?
if($submit)
{
    setcookie(\"voted\",\"1\",time()+2419200);
}



if (!$action && !$lets == \"go\")
{
  $a = include(\"votes/001/1.txt\"); 
  $b = include(\"votes/001/2.txt\"); 
  $c = include(\"votes/001/3.txt\"); 
  $ialt = $a + $b + $c;
  $god = round($a/$ialt*100);
  $skod = round($b/$ialt*100);
  $cares = round($c/$ialt*100);

  ?>

  Hvad synes du om Inzone.dk\'s nye design?<br><br>
  God - <?=$god ?>% Stemmer<BR>
  <table width=\"<?=$god ?>\" bgcolor=\"red\"><tr><td></td></tr></table>

  Skod - <?=$skod ?>% Stemmer<BR>
  <table width=\"<?=$skod ?>\" bgcolor=\"red\"><tr><td></td></tr></table>

  Who Cares ¿ - <?=$cares ?>% Stemmer<BR>
  <table width=\"<?=$cares ?>\" bgcolor=\"red\"><tr><td></td></tr></table>
  <br><center>
  <?

  if(!$voted)
    { echo \'<a href=\"\'.$PHP_SELF.\'?action=vote\">Stem!</a>\'; }
  else
    { }

}


if ($action == \"vote\")
{
  if(!$vote) // Hvis var $ip ikke findes...
  {
      ?>

      Hvad syntes du om denne afstemning ???
      <form action=\"<? $PHP_SELF ?>?lets=go\" method=\"post\">
      <select name=\"vote\">
      <OPTION value=\"votes/001/1.txt\">God</option>
      <OPTION value=\"votes/001/2.txt\">Skod</option>
      <OPTION value=\"votes/001/3.txt\">Who Cares</option>
      </select>
      <input type=\"submit\" value=\"  Stem  \" name=\"submit\">
      </form>

      <?
  }
  elseif($voted)
  {
    echo \"Du har stemt en gang\";
  }
}


if ($lets == \"go\"){

$counter1=fopen(\"$vote\",\"r\");
$antal1=fgets($counter1,30);
$antal1++;
fclose($counter1);
$counter1=fopen(\"$vote\",\"w+\");
fwrite($counter1,$antal1);
fclose($counter1);
echo \"Din stemme blev gemt!\\n\";
echo \'<a href=\"\'.$PHP_SELF.\'\">Se afstemning</a>\';

}
?>
Avatar billede phrozia Juniormester
28. februar 2001 - 09:09 #12
Jeg har fudnet en anden vote som kører med MySql.. det er lidt nemmere...

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester