Zurück   Flashforum > Flash und Server > Server-Seite allgemein

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-05-2007, 17:32   #1 (permalink)
Neuer User
 
Benutzerbild von goro
 
Registriert seit: Jun 2006
Beiträge: 34
php microtime und flash

Hallo zusammen,
Ich habe Flash in php datei wie folgt:
PHP-Code:
<? 
// unique id
$uid md5(uniqid(microtime(), 1)) . getmypid();
// unique id anzeigen
//echo($uid); 
print "&__uid=$uid&

<html>
<head>
<meta http-equiv=Content-Type content=#text/html;  charset=ISO-8859-1'>
<title>MyFlash</title>
</head>
<body bgcolor='#006699' onUnload=\"javascript: window.open('logout_incorrect.php?id=$uid', 'Logout', 'width=200,height=50');\">
<OBJECT classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'
codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0'
 WIDTH='955' HEIGHT='660' id='chat' ALIGN='' style='position:absolute;top:50%;left:50%;width:955px;height:660px;margin-left:-477px;margin-top:-330px;'>
  <PARAM NAME=movie VALUE='myflash.swf'> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#006699><EMBED src='chat.swf' quality=high bgcolor=#006699  WIDTH='955' HEIGHT='660' NAME='myflash' ALIGN=''
 TYPE='application/x-shockwave-flash' PLUGINSPAGE='http://www.macromedia.com/go/getflashplayer'></EMBED>
</OBJECT>

</body>
</html>"
;

?>
Das Problem ist das wenn ich mein uid ausprinte mit echo() kriege ich einen Wert auf dem Bildschhirm und anderen im Quelltext. Z.b. auf dem Bildschrim __uid=6442a811f787cd7dfd4deea4069646c223432& und in dem Quelltext &__uid=a793d84f62ed73bf77f42830495b677025098&. Das geschet nur in Firefox. IE stellt dass richtig dar.
Ich benutze das uid als session id.Wenn jemand den Browser zumacht ohne davor von meinen Flash auszuloggen muss logout_incorrect.php?id=$uid per javascript body unload aufgerufen werden und alle Leichen, die der User gelassen hat löschen. Leider nihmt Flash den id vom Quelltext und javascript nihmt den id vom Browserausgabe. Wenn ich den <embed>-Tag lösche d.h. mein Flash lösche, dann kriege ich gleiche Werte auf dem Bildschirm und im Quelltext. D.h. dass das Problem ist in Flashtag. Das Problem trifft auf immer wenn ich Zeitabhängige funktionen benutze wie z.b. rand() oder uniqid().
Kann jemand helfen?

Geändert von goro (10-05-2007 um 17:44 Uhr)
goro ist offline   Mit Zitat antworten
Alt 10-05-2007, 17:47   #2 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Du machst das echo noch bevor dein HTML anfängt, daher wird dein Code der schliesslich generiert wird auch nicht HTML-Valid sein. Mach dein echo INNERHALB des body-Tags:

PHP-Code:
<? 
// unique id
$uid md5(uniqid(microtime(), 1)) . getmypid();
// unique id anzeigen
//echo($uid); 
?>

<html>
<head>
<meta http-equiv=Content-Type content=#text/html;  charset=ISO-8859-1'>
<title>MyFlash</title>
</head>
<body bgcolor='#006699' onUnload=\"javascript: window.open('logout_incorrect.php?id=$uid', 'Logout', 'width=200,height=50');\">

<? echo '&__uid='.$uid.'&'?>

<OBJECT classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'
codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0'
 WIDTH='955' HEIGHT='660' id='chat' ALIGN='' style='position:absolute;top:50%;left:50%;width:955px;height:660px;margin-left:-477px;margin-top:-330px;'>
  <PARAM NAME=movie VALUE='myflash.swf'> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#006699><EMBED src='chat.swf' quality=high bgcolor=#006699  WIDTH='955' HEIGHT='660' NAME='myflash' ALIGN=''
 TYPE='application/x-shockwave-flash' PLUGINSPAGE='http://www.macromedia.com/go/getflashplayer'></EMBED>
</OBJECT>

</body>
</html>
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 11-05-2007, 07:15   #3 (permalink)
Neuer User
 
Benutzerbild von goro
 
Registriert seit: Jun 2006
Beiträge: 34
Natürlich dass wäre eine nette Lösung. Ist aber nicht . Egal wo ich microtime() aufrufe habe ich immer wieder verschiedene Werte im Quelltext und Ausgabe.
goro ist offline   Mit Zitat antworten
Alt 11-05-2007, 08:22   #4 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
Zeig mal die Seite mit aktuellem Code. Wenn du natürlich zwei mal die Funktion microtime() aufrufst ist klar das du zwei Zeiten kriegst. Wenn du aber zwei mal auf deiselbe Variable zugreifst dann müsste auch der Wert in der Variable gleich sein
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 11-05-2007, 09:21   #5 (permalink)
Neuer User
 
Benutzerbild von goro
 
Registriert seit: Jun 2006
Beiträge: 34
Ich darf leider die Seite nicht zeigen . Wie du siest ich rufe die microtime() nur einmal. Es stehet in Qellcode:

HTML-Code:
<html>
<head>
<meta http-equiv=Content-Type content=#text/html;  charset=ISO-8859-1'>
<title>Chat</title>
</head>
<body bgcolor='#006699' onUnload="javascript: window.open('logout_incorrect.php?id=ee4b9c2b5518cd364ffcc1365aafccec', 'Logout', 'width=200,height=50');">
<OBJECT classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'
 codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0'
 WIDTH='955' HEIGHT='660' id='chat' ALIGN='' style='position:absolute;top:50%;left:50%;width:955px;height:660px;margin-left:-477px;margin-top:-330px;'>
  <PARAM NAME=movie VALUE='chat.swf'> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#006699><EMBED src='chat.swf' quality=high bgcolor=#006699  WIDTH='955' HEIGHT='660' NAME='chat' ALIGN=''
 TYPE='application/x-shockwave-flash' PLUGINSPAGE='http://www.macromedia.com/go/getflashplayer'></EMBED>
</OBJECT>
&__uid=ee4b9c2b5518cd364ffcc1365aafccec&

</body>
</html>
und auf dem Bildschrim:

&__uid=481ca695881a0a165205f4ab00412bf6&

Das Problem ist das Flash nihmt den id vom Quelltext und javascript den von Bildschrim, obwohl in Quelltext gleichen ids stehen.
goro ist offline   Mit Zitat antworten
Alt 13-05-2007, 00:07   #6 (permalink)
Neuer User
 
Benutzerbild von goro
 
Registriert seit: Jun 2006
Beiträge: 34
Ich habe endlich die Lösung. Ich lade die php-Seite die den Flash hält von Flash selber mit LoadVars. So rufe ich praktisch den Script neu und er generiert neuen Wert für microtime. Flash nihmt den neugenerierten Wert und javascrit sieht dass nicht, da es in Hintergrund passiert. Die Lösung ist nicht in Flash den id zu merken , sondern in einer Cookie. Der von javascript gerufene Phpscript dan liest am Ende den Keks.
goro ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 12:43 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele