Avatar billede leoness Nybegynder
24. februar 2007 - 14:29 Der er 9 kommentarer og
1 løsning

PHP/Flash Afstemning - Hjælp

Hej Eksperter

Jeg sidder og roder med en såkaldt Flash Poll, som bruger PHP til at skrive resultaterne til en txt fil.

Det fungerer rigtig godt, men mit problem er, at når en mulighed får 8 stemmer, så bliver alle stemmerne slettet fra txt filen på serveren.

Jeg forstår simpelthen ikke hvad der er galt.

Kan nogen prøve at lave den samme afstemning ud fra denne tutorial:
http://www.sephiroth.it/tutorials/flashPHP/text_poll/

Jeg har downloaded .fla filen og redigeret indholdet. Det skal lige siges at man skal downloade en chart component fra Adobe.com for at kunne lave den (den er gratis men man skal være oprettet som bruger). Jeg kan evt. sende filen, hvis der bliver oplyst en E-mail.

Jeg har hårdt brug for at det her kommer til at virke, for jeg skal lave mange forskellige afstemninger, og jeg har ikke lyst til at sidde og rode med SQL lige pt.

Kan nogen hjælpe, eller finde en lignende tutorial eller fil - så er jeg mere end taknemmelig.

~ Marianne
Avatar billede mr_chaos Praktikant
24. februar 2007 - 15:34 #1
Har kun lige kastet et hurtigt blik på koden, men ser ud til at der mangler en flock så flere requests ikke prøver at skrive til filen samtidig.
Avatar billede leoness Nybegynder
24. februar 2007 - 15:52 #2
Kunne du evt. give et bud på hvordan koden -skulle- se ud så?

Jeg ved ikke hvad en flock er.
Avatar billede coderdk Praktikant
24. februar 2007 - 17:21 #3
Avatar billede leoness Nybegynder
25. februar 2007 - 12:53 #4
Ja okay, så ved jeg hvad en flock er, men jeg har stadig brug for at hvide hvad der skal til for at scriptet virker, så jeg ikke mister data.
Avatar billede mr_chaos Praktikant
26. februar 2007 - 09:14 #5
Som meget andet skod kode på nettet mangler der en masse fejl checks i koden.
Prøv at tilføje følgende
flock($fp, LOCK_EX);

Efter
  if(number_format($num) < 1) die("registered=false");
  $fp_array = @file($file_data);
  $fp = @fopen($file_data,"r+");
Avatar billede coderdk Praktikant
26. februar 2007 - 09:33 #6
Ikke helt nok. saveData burde se således ud:

function saveData($num)
{
  GLOBAL $file_data, $_COOKIE, $cookie_duration, $cookie_title;
  if(isset($_COOKIE["$cookie_title"]))
  {
      die("registered=already voted");
  }
  if(number_format($num) < 1) die("registered=false");
  $fp_array = @file($file_data);
  if ( $fp = @fopen($file_data,"r+") )
  {
      if ( flock( $fp, LOCK_EX ) )
      {
          $temp_string = '';
          foreach($fp_array as $key => $value)
          {
              $line = explode('=',$value);
              $theName = $line[0];
              $theValue = eregi_replace("\r\n","",$line[1]);
              if(substr($theName,0,5)=='votes')
              {
                $theValue = number_format(eregi_replace("\r\n","",$line[1]));
                $matching_num = number_format(substr($theName,5,2));
                if($matching_num==$num)
                {
                    $theValue++;
                }
              }
              $temp_string .= "$theName=$theValue\n";
          }
          @fwrite($fp,$temp_string);
          flock( $fp, LOCK_UN );
      }
      @fclose($fp);
  }
  setCookie($cookie_title, time(), time() + $cookie_duration);
  print "registered=true";
}
Avatar billede mr_chaos Praktikant
26. februar 2007 - 15:58 #7
Du bliver det jo alt for pænt :p
Avatar billede leoness Nybegynder
27. februar 2007 - 14:00 #8
Ah!
Jeg forsøger mig lige med ovenstående. Så vender jeg tilbage.
Avatar billede leoness Nybegynder
02. marts 2007 - 09:00 #9
Okay... jeg kan ikke lige se om koden virker eller ej, for nu dukker der flere ting op (ikke på grund af den nye kode du gav, coderdk).

txt-filen bliver ret hurtig, ret stor, fordi der bliver genereret en helvedes masse = tegn.

Jeg ville jo gerne, at den blev ved med at se sådan her ud:

title=Question
choice1=NameA
choice2=NameB
choice3=NameC
choice4=NameD
choice5=NameE
choice6=NameF
votes1=
votes2=
votes3=
votes4=
votes5=
votes6=

Og at resultaterne kom pænt op at stå lige ud foran.
Men det gør det bestemt ikke. Det bliver til én stor pladderkage som fylder af pommern til.
Jeg antager at det har noget at gøre med PHP scriptet som sender data til txt filen...

Og så undrer jeg mig over, at man ikke kan se resultatet af sin stemme, lige med det samme. Man er nød til at refresh'e for at se det.
Avatar billede leoness Nybegynder
13. maj 2007 - 13:10 #10
Det kom aldrig til at virke...
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