Avatar billede energie Nybegynder
24. marts 2006 - 10:35 Der er 15 kommentarer

Get fra database - virker i Mozilla men ikke explorer

Hej, her har jeg en getscore.php som henter min score ud i mit flash spil highscore... den virker perfekt i mozilla... men explorer viser ingenting... hvorfor eksperter, hvorfor?

Getscore.php
<?php
  // Add spaces to string
  function formatString($var, $length) {
      $ret = $var;
      if(strlen($ret) > $length) {
          $ret = substr($ret, 0, $length);
      }
      $n = strlen($ret);
      for($i = 0; $i < strlen($ret); $i++) {
          if(ord(substr($ret, $i, 1)) > 192) {
              $n--; // UNICODE, count only 1x
              $i++;
          }
      }
      $n = $length - $n;
      if($n > 0) {
          $ret = $var.str_repeat("%20", $n);
      }
      return $ret;
  }
 
  // Sort function used by usort
  function sortfunc($val1, $val2) {
      return ($val1["p"] < $val2["p"]);
  }

  // Count of highscore entries
  $count = 10;
  if(isset($ _GET['count'])) {
      $count = $_GET['count'];
  }
 
  // Header
  $s1 = formatString("Points", 8);
  $s2 = formatString("Navn", 27);
  $s3 = formatString("E-mail", 30);
  $s4 = formatString("Dato", 13);
  $s5 = formatString("Tid/S", 8);
  $s6 = formatString("Level", 7);
  $s7 = formatString("Forsoeg", 8);
  $score = $s1.$s2.$s3.$s4.$s5.$s6.$s7.chr(10);

// Sæt de variable der skal bruges for at lave forbindelse til databasen
$databaseuser = "atj";
$databasepassword = "anders";
$databasename = "memory";
$databaseserver = "localhost";

//Opret forbindelse til databaseserver
$dblink = mysql_connect($databaseserver,$databaseuser,$databasepassword)
    or die(mysql_error());
mysql_select_db($databasename)
    or die(mysql_error());

$sql = "SELECT * FROM highscore ORDER BY point DESC;";
$result =mysql_query ($sql) or die ("Fejl i select");
$i=0;
while ($row = mysql_fetch_array($result)){
    $arrarr{$i} = array("p" => $row['point'], "n" => $row['navn'], "e" => $row['email'], "d" => $row['dato'], "l" => $row['level'], "t" => $row['tid'], "a" => $row['forsog']);
      $i++;
}
// Sort the array
  usort($arrarr, "sortfunc");

  // Print the array
  $i = 1;
  while(list($id, $val) = each($arrarr)) {
      if($i > $count) {
          break;
      }
      $s1 = formatString($arrarr{$id}{"p"}, 8);
      $s2 = formatString($arrarr{$id}{"n"}, 27);
    $s3 = formatString($arrarr{$id}{"e"}, 30);
      $s4 = formatString($arrarr{$id}{"d"}, 13);
      $s5 = formatString($arrarr{$id}{"t"}, 8);
      $s6 = formatString($arrarr{$id}{"l"}, 7);
      $s7 = formatString($arrarr{$id}{"a"}, 8);
      $score = $score.$s1.$s2.$s3.$s4.$s5.$s6.$s7.chr(10);
      $i++;
  }
  echo "&txtScore="."$score"; // Flash variable, attached to the highscore textfield
?>
Avatar billede erikjacobsen Ekspert
24. marts 2006 - 12:17 #1
Du sætter vel ikke en chr(10) i en URL-streng?
Avatar billede energie Nybegynder
24. marts 2006 - 13:35 #2
Uha... jeg er lidt i tvivl om hvad jeg så skal bruge? De ter vel bare et break?
Avatar billede erikjacobsen Ekspert
24. marts 2006 - 13:42 #3
Du kan ikke skrive det i en URL. Enten skal du bruge %-hexværdien - eller vælge et andet "normalt" skilletegn.
Avatar billede energie Nybegynder
24. marts 2006 - 15:00 #4
Hvad foreslår du jeg bruger i stedet... altså i slutningen af stregnen?
Avatar billede erikjacobsen Ekspert
24. marts 2006 - 17:43 #5
Jeg har ikke nogen særlig præference. Du skal vælge et tegn du ellers ikke bruger, og som du kan finde ud af at gøre noget ved inde i Flash. Punktum, måske...?
Avatar billede energie Nybegynder
27. marts 2006 - 09:20 #6
Jeg forstår ikke helt hvad du mener. Jeg har forsøgt med andre skilletegn, men det gør kun, at get_score.php-filen heller ikke dur i mozilla.
Men umiddelbart kan du kun finde en fejl med chr(10) i denne streng?
$score = $score.$s1.$s2.$s3.$s4.$s5.$s6.$s7.chr(10);
Avatar billede energie Nybegynder
27. marts 2006 - 09:33 #7
Jeg har sågar forsøgt med at have feltet blankt. Således:
$score = $score.$s1.$s2.$s3.$s4.$s5.$s6.$s7;

Dette virker ligeldes glimrende i mozilla. Men ikke i Internet Explorer.
Avatar billede erikjacobsen Ekspert
27. marts 2006 - 12:28 #8
Hvis du skifter skilletegn, skal flash-programmet vel også kende til det nye skilletegn.  Hvad er det flash-programmet forventer?
Avatar billede energie Nybegynder
27. marts 2006 - 12:40 #9
Min flash henter dem således...
loadVariables("get_score1.php?count=10&" + _root.phpCounter++, "", "GET");
Avatar billede erikjacobsen Ekspert
27. marts 2006 - 13:26 #10
Og så det er et linieskift den forventer. Har du prøvet hvad jeg skrev for 3 dage siden: "Enten skal du bruge %-hexværdien [...]", altså "%0A"  i stedet for ?  Sådan ca.

  $score = $score.$s1.$s2.$s3.$s4.$s5.$s6.$s7."%0A";
Avatar billede energie Nybegynder
29. marts 2006 - 09:14 #11
$score = $score.$s1.$s2.$s3.$s4.$s5.$s6.$s7."%0A";
Virker osse i Mozilla, men stadig ikke i Explorer... Jeg har simpelthen ingen ide om hvad fejlen kan være. Eftersom jeg husker, så modtaget Explorer og Mozillaværdier fra Flash ens... desuden skal den her kun udskrive dem fra databasen...
Avatar billede energie Nybegynder
29. marts 2006 - 09:17 #12
Og explorer kan altså sagtens hente dataene du hvis du kun bruger get_Score.filen, men den kan lige præcis ikke hente dem ind i flash applicationen.
Avatar billede erikjacobsen Ekspert
29. marts 2006 - 09:41 #13
Så er det da godt, der ikke er så mange der bruger IE.

Hvor lang er den streng, der kommer ud af det? Hvis vi er oppe omkring 2-4 kbyte ku' det være en forklaring.
Avatar billede energie Nybegynder
31. marts 2006 - 09:51 #14
Hmmm tja altså den henter et par linjer ud... ikke det store.
Men kan jeg ændre dette nogensteder? Altså at den skal kunne hente et højere antal kb ud?
Jeg er efterhånden i vildrede... det virker usandsynligt at den ikke virker... eller er det et basalt problem mellem Flash og Explorer.
Avatar billede energie Nybegynder
31. marts 2006 - 09:54 #15
Denne linje kalder get_score.php fra Flash:

    loadVariables("get_score.php?count=5&" + _root.phpCounter++, "", "GET");

Der er ikke noget med at den ikke fungere i explorer?
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