art-d-sign
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 08.05.2003, 08:59   #1
TP-Specialist
 
Registriert seit: Aug 2002
Ort: Nähe Wien
prefix ist auf einem guten Weg

javascript / php kombination - flash plugin


hi allerseits,

steh vor einem kleinen problem:

ich prüfe mit js, ob das flash-plugin installiert ist und leite mit einer zusätzlichen php-variablen (fett dargestellt) weiter - an sich nichts annormales:


Zitat:

<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_checkPlugin(plgIn, theURL, altURL, autoGo) { //v4.0
var ok=false; document.MM_returnValue = false;
with (navigator) if (appName.indexOf('Microsoft')==-1 || (plugins && plugins.length)) {
ok=(plugins && plugins[plgIn]);
} else if (appVersion.indexOf('3.1')==-1) { //not Netscape or Win3.1
if (plgIn.indexOf("Flash")!=-1 && window.MM_flash!=null) ok=window.MM_flash;
else if (plgIn.indexOf("Director")!=-1 && window.MM_dir!=null) ok=window.MM_dir;
else ok=autoGo; }
if (!ok) theURL=altURL; if (theURL) window.location=theURL;
}
//-->
</script>
</head>

<body onLoad="var SymTmpWinOpen = window.open; window.open = SymWinOpen; MM_checkPlugin('Shockwave Flash','index.php?flash=1','index.php?flash=0',true);return document.MM_returnValue; window.open = SymTmpWinOpen;">
</body>
</html>

es ist jetzt ja möglich, dass ich seit ein paar (mittlerweile vielen) stunden eine denkblockade habe, aber:

ich möchte dieses script (nur das script, ohne den onLoad-befehl, weil ich ja nicht weiterleiten will) einbinden und die variable in php nur ausgeben (setzen), also:

- ist plugin da: $flashplugin = 1;
- nicht da: $flashplugin = 0;

ohne weiterleitung!

kann mir da jemand helfen??

p.s.: hab schon die ersten ansätze, komm aber leider nicht weiter:

logisch wär für mich, in den bedingungen nach dem prüfen den kurzen php-code einzufügen, wie z.b.

Zitat:

if (appName.indexOf('Microsoft')==-1 || (plugins && plugins.length)) {
ok=(plugins && plugins[plgIn]);
<?php
$flashplugin = 1;
?>
}
noch will es aber leider nicht :-(
prefix ist offline   Mit Zitat antworten


Alt 08.05.2003, 09:04   #2
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
Das funktioniert so nicht, wie du dir das vorstellst!
Ein PHP-Script läuft serverseitig. Ein JavaScript jedoch clientseitig. Mit einer clientseitigen Sprache kannst du nicht den Ablauf eines serverseitigen Script beeinflussen. Du musst dir das so vorstellen: Sobald die Seite im Browser angezeigt wird, ist das PHP-Script schon längst beendet... Du kannst also garkeinen Einfluss mehr nehmen, da es ehh schon vorbei ist . Du brauchst eine Zwischenseite!

Gruss
Jan
Stuck Mojo ist offline   Mit Zitat antworten
Alt 08.05.2003, 09:07   #3
TP-Specialist
 
Registriert seit: Aug 2002
Ort: Nähe Wien
prefix ist auf einem guten Weg
hmm, wir denken different *ggg* - stimmt :-)

ich will, dass das js folgendes (clientseitig) macht:

- check ob plugin da
- wenn ja: setze in php eine variable

das mit der zwischenseite war auch mein erster ansatz, allerdings hat das einen nachteil:

es muss ja nicht sein, dass der user immer auf der startseite einsteigt, er kann über bookmarks usw. ja auch auf irgendeine seite kommen.

daher mein gedanke:

includen des scripts in jede datei (per require) - immer checken und cookie setzen bzw. auslesen (also wenn cookie gesetzt, nimm den wert)

an sich darf (?!?!) es kein problem sein, js und php zu kombinieren - aber ich werd jetzt mal einfach lange testen - sitz eh in der arbeit und hab zeit *hihi*

danke mal für die info, sollt ich es schaffen, poste ich es hier natürlich :-)
prefix ist offline   Mit Zitat antworten
Alt 08.05.2003, 09:14   #4
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
Zitat:
an sich darf (?!?!) es kein problem sein, js und php zu kombinieren [...]
Doch! Weil es einfach nichts miteinander zu tun hat. Meistens wird JS erst ausgeführt, sobald das PHP-Script beendet ist. Also hast du garkeine Möglichkeit auf die aktuelle Seite Einfluss zu nehmen. DU kannst höchstens hintenrum (versteckter Frame, oder versteckter POST) deine PHP-Session ändern. Trozdem hast du keinen Einfluss auf die aktuelle Seite.
Stuck Mojo ist offline   Mit Zitat antworten
Alt 08.05.2003, 09:19   #5
TP-Specialist
 
Registriert seit: Aug 2002
Ort: Nähe Wien
prefix ist auf einem guten Weg
ich geb nicht auf *hihi* - viell. krieg ich es ja hin - ein letzter versuch:

http://www.victoria.at/test/plugincheck.php

leider hab ich keinen browser ohne das flash-plugin, viell. hat ja irgendwer einen! dann sollte auf dieser seite dann nein stehen - bitte um kurzen test und feedback - danke :-)
prefix ist offline   Mit Zitat antworten
Alt 08.05.2003, 10:26   #6
TP-Specialist
 
Registriert seit: Aug 2002
Ort: Nähe Wien
prefix ist auf einem guten Weg
ich hab's!

hier mal zum testen: http://www.victoria.at/test/pluginstart.php

bin wie folgt vorgegangen:

--------------------------------------------------------------------------------
pluginstart.php (großteil kann dann included werden)

<?php
global $valid;
$valid = time()+3600*24*30; // gültigkeit: 1 monat
$plugin = $_GET['plugin'];
$flashplugin = $HTTP_COOKIE_VARS["flashplugin"];
if (!empty($flashplugin)) {
// verhindert eventuell zulangen cookie-wert
$flashplugin = substr($flashplugin,0,1);
// wert aus cookie übernehmen, cookie verlängern
setcookie ("flashplugin","$flashplugin","$valid");
$plugin = $flashplugin;
$message = "cookie wurde gefunden und verlängert, wert: $plugin";
}
elseif (!empty($plugin)) {
// cookie neu setzen
setcookie ("flashplugin","$plugin","$valid");
$plugin = substr($plugin,0,1);
$message = "cookie wurde neu gesetzt, wert: $plugin";
}
else {
// weiter zum plugincheck
header("location http://www.victoria.at/test/plugin1.php";
exit();
}

// klartext für testzwecke zuweisen
switch ($plugin) {
case 0:
$pluginmessage= "Nein";
break;
case 1:
$pluginmessage = "Ja";
break;
default:
$pluginmessage = "Nicht feststellbar";
break;
}
?>
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<p>plugin vorhanden: <?php echo $pluginmessage ?>
</p>
<p>durchgeführte aktion: <?php echo $message ?></p>
<p><a href="cookiedelete.php">cookie testweise löschen</a></p>
</body>
</html>

--------------------------------------------------------------------------------


--------------------------------------------------------------------------------
plugin1.php (später dann plugincheck.php)

<?php
global $ursprung;
$ursprung = $HTTP_REFERER;
if (empty($ursprung)) {
//firewall blockt
$ursprung = "pluginstart.php";
}
?>
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_checkPlugin(plgIn, theURL, altURL, autoGo) { //v4.0
var ok=false; document.MM_returnValue = false;
with (navigator) if (appName.indexOf('Microsoft')==-1 || (plugins && plugins.length)) {
ok=(plugins && plugins[plgIn]);
} else if (appVersion.indexOf('3.1')==-1) { //not Netscape or Win3.1
if (plgIn.indexOf("Flash")!=-1 && window.MM_flash!=null) ok=window.MM_flash;
else if (plgIn.indexOf("Director")!=-1 && window.MM_dir!=null) ok=window.MM_dir;
else ok=autoGo; }
if (!ok) theURL=altURL; if (theURL) window.location=theURL;
}
//-->
</script>
</head>

<body onLoad="MM_checkPlugin('Shockwave Flash','<?php echo $ursprung ?>?plugin=1','<?php echo $ursprung ?>?plugin=0',false);return document.MM_returnValue">

<script name="Used by MM_checkPlugin" language="javascript">
<!--
with (navigator) if (appName.indexOf('Microsoft')!=-1 && appVersion.indexOf('Mac')==-1) document.write(''+
'<scr'+'ipt language="VBScript">\nOn error resume next\n'+
'MM_dir = IsObject(CreateObject("SWCtl.SWCtl.1"))\n'+
'MM_flash = NOT IsNull(CreateObject("ShockwaveFlash.ShockwaveFlash"))\n</scr'+'ipt>');
//-->
</script>
</body>
</html>

--------------------------------------------------------------------------------

und so funktioniert die sache :-)

folgende schwachstellen:

- wenn cookies nicht angenommen werden, wird jedesmal der check durchgeführt! abhilfe: sessions

- wenn die firewall des users (wie bei mir hier in der firma) den REFERER blockt, wird man nicht zur ursprungsdatei, sondern auf eine definierte seite zurückgeleitet
abhilfe: fällt mir keine ein, aber halb so wild

- wenn der user javascript deaktiviert hat, passiert nix

abhilfe: noscript-link bei plugin1.php
prefix ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
javascript / php kombination - flash plugin javascript / php kombination - flash plugin
« fehler im script? | DB-Connect »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

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

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


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:38 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67