webForumDet fria alternativet

scriptet funkar bara i flashplayer o inte i IE

Flash

6 svar · 334 visningar · startad av Klauz

Medlem sedan jan. 2005133 inlägg
Frågan#1

Har ett konstigt problem..

Har ett mailscript som ligger på Server A och en flashfil som anropar scriptet på server B.

När jag anropar scriptet med full url via flashfilen på server B så fungerar det inte.

Kör jag däremot flashfilen lokalt och anropar scriptet (på server A) så fungerar det!

Det som gör det ännu konstigare är att om jag byter ut LoadVariables till getURL så funkar det både lokalt och på server B...

Det är alltså något som blockerar skickandet av variablerna när jag kör i Internet Explorer via servern. Har försökt i snart 6 timmar med hjälp av MickeA (tack!) men fortfarande har ingen lösning dykt upp...

Nån som har nån koll på vad detta kan va?

Medlem sedan maj 2003750 inlägg
#2

Är inte hundra procent säker men det kan vara så att du behöver lägga en policyfil på server A.

http://livedocs.macromedia.com/flash/mx2004/main_7_2/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Flash_MX_2004&file=00001097.html

Nu står det att det behövs för att ladda filer. Men jag antar att om den inte hittar policyfilen på server A eller att den inte medger access så struntar Flash i alltihopa.

Har också för mig att detta är nytt för player 7 och tvingande. DVS att även content publiserat för player 6 eller tidigare måste lyda under denna säkerhetsregel.

Standalone-playern däremot verkar inte lyda under några säkerhetsbegränsningar vad jag sett.

/Mirandir

Medlem sedan feb. 20034 441 inlägg
#3

Det konstiga i det här fallet är att när jag provar Klauz filer hemma hos mig, flashfilen på min windowsmaskin och phpscriptet på min unixserver, så funkar det klockrent, båda från nätet och inuti flashplayer.

Men som sagt, när jag lägger upp filen på mitt webhotell, eller efter att jag skickade tillbaks den till honom, så funkar ingenting längre.

Jag har för mig att man inte kan skicka POST-Data mellan två servrar, men varför funkar inte GET?

Använder man getURL med GET, så funkar det ju klockrent. Provade även med att skicka med:

getURL("http://adressen.se/scriptet.php?email=" + email, "_blank");

Det funkar, men somsagt funkar det bara med loadVariables när jag kör hemma.

Har även testat att göra en helt ny flashfil och ett nytt phpscript, ruggigt nedbantat, men som gör samma sak. Inga problem att köra den hemma hos mig heller...?

Så, väldigt mystiskt det här. ;)

Medlem sedan jan. 2005133 inlägg
#4

Har snackat med telia om det här (servrarna ligger hos telia) och de skulle ha ringt idag... men de kanske inte själva vet? ;)

Policyfilen för crossdomain hjälpte inte tyvärr.

Medlem sedan jan. 2005133 inlägg
#5

Telia ringde idag och försökte hjälpa mig, men kunde inte förstå varför det inte funkade.. jag måste verkligen få igång scriptet nu..

Kan man inte göra en nödlösning så att man använder getURL och ser till att fönstret öppnas i bakgrunden och sedan stänger sig självt efter att scriptet har körts igenom?

Jag testade med javascript self.close() men då kommer en alert upp och frågar om man verkligen vill stänga fönstret. finns det nån annan metod att stänga fönstret?

o hur gör man för att det nya fönstret ska lägga sig bakom flashsidan?

Medlem sedan feb. 20034 441 inlägg
#6

Klauz skrev:

... men de kanske inte själva vet? ;)

Chansen att telia's support kan något om det här är minimal, jag tror inte dom kan hjälpa dig alls.

Klauz skrev:

Kan man inte göra en nödlösning så att man använder getURL och ser till att fönstret öppnas i bakgrunden och sedan stänger sig självt efter att scriptet har körts igenom?

window.close ger alltid en fråga om stängning, såvida det inte är ett popupfönster det rör sig om.
Prova att öppna ett popupfönster.
ägg det här i htmlfilen i vilken flashfilen öppnas:

<script language="javascript" type="text/javascript">
<!--
function opnWin(URL,width,height){
	if (parseInt(navigator.appVersion) >= 3){
		if (navigator.appName == "Netscape" && parseInt(navigator.appVersion)<5){
			var tools = new Packages.java.awt.Toolkit.getDefaultToolkit();
			screen=tools.getScreenSize();
		}
		x = screen.width;
		y = screen.height;
	}
	window.open(URL,"newWin","scrollbars=no,top=" + parseInt(y/2-height/2-16) + ",left=" + parseInt(x/2-width/2-5) + ",width=" + width + ",height=" + height);
}
//-->
</script>

Sen gör du om din funktion lite, den inuti kontaktaoss.swf, den som _ska_ ladda varaiblerna:

getURL("javascript: opnWin('scriptet.php', 550, 400);");

550 i koden ovan är bredden på rutan och 400 är höjden. Låt window.close(this); ligga kvar i phpscriptet, där det ligger just nu, för visst låg det på body onload?

Det här bör funka. Man skriver in sin mailadress, en ruta öppnas, phpscriptet skickar iväg mailet och PANG, rutan stängs.

Hoppas jag iaf... ;)

Medlem sedan jan. 2005133 inlägg
#7

Tack tack! Det funkade kanon!

Nu skippar jag loadVariables, är tom på idéer...

261 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)