webForumDet fria alternativet

Variabel från php.

1 svar · 233 visningar · startad av missModesty

missModestyMedlem sedan apr. 2005254 inlägg
#1

Jag har ett litet men irriterande problem angående variabler. En php-fil ska hämta en siffra från en annan url. Den datorn är inte installerad än så därför använder jag mig av en text-fil så länge. Vad siffran anger är hur många personer som gått på ett ställe. För att simulera det så ser jag till att siffran i textfilen ökas med tre varje gång php-filen anropas. Sen använder jag mig av ett LoadVars-objekt "loader" i min flash-film för att hämta upp variabeln. Men något blir fel.

När jag felsökt och tittat på loader så ska loader.p ha tex värdet "5", men istället så har loader.lp värdet "5\n". Varför p plötsligt blir omdöpt till lp och var \n kommer ifrån kan jag bara inte komma på. Om jag istället låter php-filen skriva tex. p=$variable till en textfil och låter flash hämta upp textfilen så blir det rätt. Är det någon som har en aning om vilket smart liten kodsnutt som rättar till mitt fel? Tycker jag har provat det mesta men uppenbart så har jag missat något.

Detta står i php-filen.

<?php
	$fp = fopen("counter2.txt", "r");
	$old = "";
	while(!feof($fp)) {
		$old.=trim(fgets($fp, 1024));
	}
	fclose($fp);
	$newCount = $old + '3';
	$fp = fopen("counter2.txt", "w+");
	fwrite($fp, $newCount);
	fclose($fp);
	$vars="";
	$vars.="p=".$newCount;
	echo trim($vars) ;
?>

och detta där variabeln ska laddas upp:

loader = new LoadVars();
var loadPause = setInterval(getNewValue, LOAD_PAUSE);
System.useCodePage = true;

/* Loads a variable and sets nbr to its value. Sends a message to updateTexts
   when nbr exceeds count to place out more boxes.
   count is the nbr of boxes that are previous placed out.
   nbr is how many boxes to place out. */

function getNewValue(){
	//loads the variable
	loader.load("http://127.0.0.1:8080/counter.php?stamp="+getTimer());
	//checks if it is loaded
	loader.onLoad = function (success) {
        	if (success) {
					// sets nbr to the loaded variables value
					nbr = Number(loader.p);
					// checks if nbr has increased
					if(count < NBR) {
						// stops the loop
						clearInterval(loadPause);
						// makes updateTexts loop
						//startInterval(boxPause, updateTexts, PAUSE);
						boxPause = setInterval(updateText, PAUSE);
					}
			}
			else {
                // The data didn't load at all. Display error
					trace("Fel vid uppdatering av räknaren");
        	}
	}
}

Den som hittar felet kommer alltid vara min hjälte!

missModestyMedlem sedan apr. 2005254 inlägg
#2

Jag hittade lösningen till slut. I php-filen så ändrade jag till:

$vars="&";
$vars.="p=".$newCount;

och i flash-filen la jag till:

loader.p = loader.p.split("\n");
135 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)