Bienvenue invité ( Connexion | Inscription )
![]() ![]() |
10 Oct 2005, 22:43
Message
#1
|
|
![]() Macbidouilleur d'argent ! ![]() ![]() ![]() Groupe : Membres Messages : 792 Inscrit : 14 Nov 2003 Lieu : Genève Membre no 11 656 |
Je suis en train de faire un site à moitié en php... et à moitié en flash... et je voudrais quand même m'assurer que le site s'affiche correctement si par malheur, un citoyen du net, n'aurais pas encore flash player... J'aimerais avoir une variable php qui m'indique si oui ou non, l'utilisateur de mon site possède le player de façon à ce que mon site s'affiche différemment et qu'il soit renvoyé à un lien pour télécharger "tout le bazzare"... au cas où....
J'aimerais récolter aussi vos avis... -Utilisez vous souvent des détecteurs flash player? Est-ce encore utile? -Est-ce que celui qui suit (très simple) pourrait suffire dans la majorité des cas? CODE <?php if (strstr($_SERVER['HTTP_ACCEPT'], 'application/x-shockwave-flash')) { $hasFlash=true; } ?> merci. |
|
|
|
11 Oct 2005, 07:06
Message
#2
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 1 779 Inscrit : 7 Jan 2003 Lieu : Montréal Membre no 5 496 |
Oui, j'utilise des détecteurs.
J'utilise texto ceux fournis par macromedia (parce que même s'ils sont longs, ils sont testés), disponibles sur leur site. http://www.macromedia.com/software/flashpl.../detection_kit/ Il n'y a jamais de solution parfaite... les détections côté client se heurtent à l'activation de scripting (Javascript / VBScript sur PC (et au support correct de la balise <object> qui n'est réellement pas très courant), les détections côté serveur nécessitent Flash 6.0.65 pour répondre "oui", et dans mon cas, si le client a Flash 6.0.65, alors, il a toujours tout ce qu'il me faut (je n'utilise pas de fonctions apparues en Flash 7 ou 8, d'ailleurs, je n'ai pas Flash 7 ou 8). La détection basée sur ActionScript est efficace pour s'assurer de la version de Flash installée, mais évidemment pas pour vérifier à la base si Flash est installé. En l'occurence, donc, j'utilise les détections par Javascript. Si l'utilisateur a désactivé JS, je considère que c'est une sorte de power user (ou alors, c'est quelqu'un qui clique n'importe où pour voir ce que ça fait), et qu'il n'aime probablement pas le site en flash de toute façon, donc, il sera content de tomber directement sur la version HTML. Les notes de pied de page sur la version HTML incluent au cas où un lien vers la version flash. Si son navigateur ne supporte pas le Javascript, c'est qu'il ne supporte pas le Flash non plus, alors pas de souci de ce côté. Avec cette façon de procéder, en plus, l'index n'est pas la version flash (le js de détection est chargé en premier et le cas échéant, redirige vers Flash), et le site peut donc être totalement indéxé par les moteurs de recherche. Si on accède au site via un moteur de recherche, on tombe sur la page HTML complète directement (alors que si la redirection était active sur toutes les pages, l'utilisateur serait ramené à la page de garde flash, ce pour quoi il n'a pas cliqué). S'il revient plus tard, met le site en bookmark, ou lit les pieds de page, il pourra alors tomber directement sur le flash. Voilà ma politique. Sans doute pas parfait, mais, eh, rien n'est parfait. Tu peux aussi aller sur le blog d'Ifmy pour y lire sa méthode de détection et de chargement de contenu alternatif (il a aussi fait un post à ce sujet ici). Tu trouveras en tout cas dans le lien proposé au dessus l'avis de Macromedia et leurs propres scripts pour les 3 méthodes de redirection (server-side par HTTP_ACCEPT ou équivalent, client-side par script, ou plugin-side par Actionscript). -------------------- guigui - 15,2" et même 20 de plus pour laisser courir le tigre.
|
|
|
|
11 Oct 2005, 07:21
Message
#3
|
|
![]() Entarteur poissonnier du MCCASRADM ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 2 608 Inscrit : 17 Sep 2002 Lieu : Luxembourg Membre no 3 540 |
-------------------- MacBook Pro 13' 2017 - 10.15 up to date |
|
|
|
11 Oct 2005, 08:47
Message
#4
|
|
![]() Macbidouilleur d'argent ! ![]() ![]() ![]() Groupe : Membres Messages : 792 Inscrit : 14 Nov 2003 Lieu : Genève Membre no 11 656 |
QUOTE(guiguiguillaume @ 11 Oct 2005, 07:06) Oui, j'ai vu dans ce kit, le code php que j'ai noté plus haut. Je ne suis cependant pas très à l'aise avec le javascript... Peut-on transmettre ensuite une variable "de détection" de javascript à PHP? (du genre: si variablejavascript=oui, alors $variablephp = "oui";) Et changer, du coup, légèrement ce code: CODE <script language=VBScript> <!-- // Detect Flash Player ActiveX control version information Function VBGetSwfVer(i) on error resume next Dim swControl, swVersion swVersion = 0 set swControl = CreateObject("ShockwaveFlash.ShockwaveFlash." + Cstr(i)) if (IsObject(swControl)) then swVersion = swControl.GetVariable("$version") end if VBGetSwfVer = swVersion End Function // --> </script> Comme je ne comprends pas bien ce que fais ce code JS... |
|
|
|
11 Oct 2005, 08:59
Message
#5
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 1 779 Inscrit : 7 Jan 2003 Lieu : Montréal Membre no 5 496 |
On peut passer une variable de Javascript à PHP...
La façon top moderne, c'est avec encore plus de javascript (AJAX : tu créées en javascript un xmlhttprequest vers un script php et tu gères le résultat, c'est super pour frimer avec ses amis webmasters document.location="ce_que_tu_veux.html?variable="+nom_de_la_variable; Bref, un bête reload en Javascript. Tu récupères après par PHP la valeur de l'URL... bon c'est pas top, mais ça marche (quel intérêt cependant ?) Mais si ce qui te gêne est le bout de script que tu as cité, alors c'est encore autre chose, ça, c'est du VBScript (visual basic), et c'est le morceau de script qui gère la détection pour IE/Windows. C'est donc le code Javascript fournit ailleurs qui va appeler cette fonction pour faire la détection de plug-in sur IE/Win. Lui, je te conseille de pas y toucher, il fait partie intégrante de la détection, comme le reste des fonctions du kit. -------------------- guigui - 15,2" et même 20 de plus pour laisser courir le tigre.
|
|
|
|
11 Oct 2005, 10:21
Message
#6
|
|
![]() Macbidouilleur d'argent ! ![]() ![]() ![]() Groupe : Membres Messages : 792 Inscrit : 14 Nov 2003 Lieu : Genève Membre no 11 656 |
Gloups... mhhh... désolé... MAis je crois que j'ai rien compris!
Ou bien juste que: Mon code javascript n'est pas complet... Une redirection m'intéresse pas des masses... (Je me demande si je ne vais pas faire du gif, moi, pour mes animations!) |
|
|
|
11 Oct 2005, 10:26
Message
#7
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 1 779 Inscrit : 7 Jan 2003 Lieu : Montréal Membre no 5 496 |
Bon alors, je fais plus simple.
Le bout de code que tu as cité trois messages plus haut fait partie intégrante de la détection, il ne faut pas le modifier. Si tu veux passer une variable javascript à un script php, le plus simple, c'est de passer par un reload. De toute façon, un script de détection de Flash, c'est pour faire une redirection, alors une de plus ou une de moins, c'est invisble. Je ne vois pas en quoi c'est lié, mais c'est la réponse à tes deux questions d'au dessus -------------------- guigui - 15,2" et même 20 de plus pour laisser courir le tigre.
|
|
|
|
11 Oct 2005, 12:56
Message
#8
|
|
![]() Macbidouilleur d'argent ! ![]() ![]() ![]() Groupe : Membres Messages : 792 Inscrit : 14 Nov 2003 Lieu : Genève Membre no 11 656 |
d'accord... merci.
Donc, je fais une redirection avec: CODE document.location="ce_que_tu_veux.html?variable="+nom_de_la_variable; Et si j'ai bien compris, si je ce mets à la fin du code de détection, ça redirige sur la page "ce_que_tu_veux.html" lorsque l'utilisateur n'a pas flash player... Si l'utilisateur a flash player, la page en cours avec l'anim flash s'affiche normalement... ou bien est-ce...??? "L'utilisateur est de toute manière redirigé et la partie "variable" change si le détecteur est présent ou non sur la machine de l'utilisateur... Mais du coup, comment est-ce que javascript change "nom_de_la_variable"?? Bref, je ne saisis pas encore... |
|
|
|
11 Oct 2005, 18:37
Message
#9
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 1 779 Inscrit : 7 Jan 2003 Lieu : Montréal Membre no 5 496 |
Tu peux faire ce que tu veux comme tu veux : rediriger quand il y a le flash ou rediriger quand it n'y a pas le flash. Bref, comme je ne sais pas dans quel but tu veux passer une variable de Javascript vers une page en PHP, je ne peux pas être plus spécifique. Par contre, je peux te montrer un exempel.
Voici une première page, celle sur laquelle on tombe immédiatement, par exemple, index.html CODE <html><head> <script type="text/javascript"> var maVariable = "promenonsNousDansLesBois"; document.location="index2.php?passageArgument="+maVariable; </script> </head> </html> index.html est donc une page vide, dès qu'elle se charge, le javascript va mettre la chaîne de caractère "promenousNousDansLesBois" dans une variable que j'appelle maVariable, et puis immédiatement après changer l'URL (l'adresse) de la page actuelle dans le navigateur (faire une redirection) vers : index2.php?passageArgument=promenonsNousDansLesBois En Javascript, l'opérateur + sur deux chaînes de caractère permet de les mettre bout à bout, c'est ce que je fais ici. index2.php doit maintenant être capable de récupérer la variable qui a été stockée dans l'URL. C'est facile. CODE <html><body> <?php $variablePHP=$_GET["passageArgument"]; echo "Variable PHP vaut :"; echo $variablePHP; ?> </body></html> On a passé un valeur depuis Javascript vers PHP. -------------------- guigui - 15,2" et même 20 de plus pour laisser courir le tigre.
|
|
|
|
![]() ![]() |
| Nous sommes le : 14th January 2026 - 10:54 |