IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web Perl Discussion :

perl et javascript


Sujet :

Web Perl

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 46
    Points : 28
    Points
    28
    Par défaut perl et javascript
    est-il possible de récupérer une variable utilisée dans un javascript d'une page HTML sur un serveur web, dans mon programme en perl sur le client ???

    par exemple la variable "a" du javascript info.js ..

    Je vous remercie d'avance

  2. #2
    Jeh
    Jeh est déconnecté
    Membre actif Avatar de Jeh
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    203
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 203
    Points : 250
    Points
    250
    Par défaut
    Le seul moyen est de passer par la case HTML en utilisant un champ "hidden" que tu récupères ensuite dans ton Perl.
    Verre vide je te plains, verre plein, je te vide.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 46
    Points : 28
    Points
    28
    Par défaut
    Le problême c'est que je ne peu pas du tout modifier la partie HTML. Je doime débrouiller avec le client pour récupérer cette variable. Merci quand même pour ton aide ....

  4. #4
    Jeh
    Jeh est déconnecté
    Membre actif Avatar de Jeh
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    203
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 203
    Points : 250
    Points
    250
    Par défaut
    Bah dans ce cas, tu es dans le ****.
    Il faut bien voir que le Perl s'exécute sur ton serveur et ton javascript sur ton client...Pour moi, c'est donc impossible.
    Verre vide je te plains, verre plein, je te vide.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 46
    Points : 28
    Points
    28
    Par défaut
    En fait je m'explique, sur mon poste client je suis relié avec un cable rj45 jusqu'a un access point wifi. Sur cet accesspoint , il y a un serveur web contenant toutes les informations utiles (qualité du signal, @ip, @mac,etc...) . Cependant ces infos sont traitées avec le javascript. Sur le client, j'essaie donc de réaliser un programme en Perl me permettant d'obtenir ces paramétres. Car j arrive à les obtenir mais elles sont codées en base64 et lorsque je les décode elles sont inexploitables. J aurai donc aimé profiter du script java qui traite ces données beaucoup plus facilement à travers un petit prog en Perl.

  6. #6
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Tu es sûr que tu n'as pas également une interface TelNet sur ton routeur ? C'est assez courant, et il y est beaucoup plus facile d'obtenir des informations intelligibles.

    --
    Jedaï

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 46
    Points : 28
    Points
    28
    Par défaut
    Et non malhereusement pas de telnet, ca commence a me m'*$*@! ca.
    J ai bien récupérer les données codées en base64 pourtant impossible de les interpréter alors que le javascript du serveur le fait en 1 ligne. Mais bon je veux trouver !!!!!

  8. #8
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Tu es sûr que tu décodes les mêmes données ?
    --
    Jedaï

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 46
    Points : 28
    Points
    28
    Par défaut
    Absolument certainement sur..

    Je les récupére dans le meme fichier que le javascript le récupére

  10. #10
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    en fait tu veux réécrire en perl une fonction javascript, c'est ca ? alors envoie ta fonction javascript à ce moment-là, ca en inspirera peut-être certains

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 46
    Points : 28
    Points
    28
    Par défaut
    IL ya pas plus simple pour la fonction javascript. le script inclu un fichier contenant la "fameuse"(fumeuse) variable data :
    .....
    var i=0;
    var a = convertFromBase64(data);
    i += 40;
    putLine ("Current communications quality (%)", Math.round ((a[i] * 100) / 92));
    ......

  12. #12
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    Il me semble que Jedaï t'a déjà fait la traduction en perl pour cette fonction dans un autre post.
    Donc pour résumer, tu as tes données, la fonction pour les traduire, ou est le problème ?

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 46
    Points : 28
    Points
    28
    Par défaut
    Le problême est que les données traduites ne correspondent pas à celles traduites par le javascript, elles sont donc totalement inexploitables. c'est pourquoi j aurai voulu récupérer le résultét du javascript. Mais bon tant pis, je vais me débrouiller autrement. Merci quand même pour votre aide...

  14. #14
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    et pour accéder à la page t'affichant ces données tu tapes une url avec des paramètres par hasard ? parce qu'à la rigueur, tu peux toujours interroger le serveur web avec LWP

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 46
    Points : 28
    Points
    28
    Par défaut
    c'est bon j ai reussi a retrouver les sources du script utilisé sur le serveur. Je ne décodai pas la même chose car ils utilisent la fonction "convertfrombase64" qui à eté crée par leur soin. je n'ai plus qu'a l'adapter au Perl et ca va le faire. Mais je crois que j ai encore de longues heures de boulot devant moi...

    et fi a vientot (je pense )

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 46
    Points : 28
    Points
    28
    Par défaut
    Sinon, au passage. Est-ce que il serait possible d'insérer un code javascript dans un code Perl ??? Je me pose cette question car ce serait bien plus simple pour moi !!!!

    un code javascript ou java peu m'impooooortee !!

    Merciii bien !!!

  17. #17
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Le module Javascript fait ça. Le module Inline::Java également, tous deux sont disponible sous Windows.
    (Tu ne veux pas plutôt nous mettre le code en Javascript que tu n'arrives pas à traduire ? L'un d'entre nous pourrait sans doute le faire sans problème)

    --
    Jedaï

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 46
    Points : 28
    Points
    28
    Par défaut
    Il y a cette fonction en javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    convertFromBase64 (buf) { 
       while (buf.length & 3) buf += 'A'; // make 'buf' a multiple of 4 
       var dst = new Array; 
       for (var i = 0; i < buf.length; i += 4) { 
             var cc = (charToSixBits (buf.charAt(i)) << 18) | 
                         (charToSixBits (buf.charAt(i+1)) << 12) | 
                         (charToSixBits (buf.charAt(i+2)) << 6) | 
                          (charToSixBits (buf.charAt(i+3))); 
              dst = dst.concat ((cc >> 16) & 0xff); 
              dst = dst.concat ((cc >> 8) & 0xff); 
              dst = dst.concat ((cc) & 0xff); 
        }
     
     return dst; }
    qui fait appel à cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function charToSixBits (c) { 
      if (c=='.') return 0; 
    if (c >= 'A' && c <= 'Z') 
           return c.charCodeAt(0) +1 - "A".charCodeAt(0);
    if (c >= 'a' && c <= 'z') 
           return c.charCodeAt(0) + 27 - "a".charCodeAt(0); 
    if (c >= '0' && c <= '9') 
           return c.charCodeAt(0) + 53 - "0".charCodeAt(0); 
    return 63; }
    et l appel se fait par : var a=convertFromBase64("blablabla");

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 46
    Points : 28
    Points
    28
    Par défaut
    J'ai donc traduit par ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    sub charToSixBits
    {
    $b=ord(substr($_[0],0,1));
    switch :
    {
    if($b >= 65 && $b<=90)
    {return ord(substr($_[0],0,1)) + 1 - ord(substr(A,0,1));
    last switch;}
    if($b >= 97 && $b<=122)
    {return ord(substr($_[0],0,1)) + 27 - ord(substr(a,0,1));
    last switch;}
    if($b >= 48 && $b<=57)
    {return ord(substr($_[0],0,1)) + 53 - ord(substr(0,0,1));
    last switch;}
    if($b==46)
    {return 0;
    last switch;}
    }
    return 63;
    }
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    sub convertFromBase64
    {
     
    for ($i=0;$i< length($_[0]);$i+=4) {
    $cc = (charToSixBits (ord(substr($_[0],$i,1))) << 18) |
    (charToSixBits (ord(substr($_[0],$i+1,1))) << 12) |
    (charToSixBits (ord(substr($_[0],$i+2,1))) << 6) |
    (charToSixBits (ord(substr($_[0],$i+3,1))));
    $dst = $dst.(($cc >> 16) & 0xff);
     
    $dst = $dst.(($cc >> 8) & 0xff);
     
    $dst = $dst.(($cc) & 0xff);
     
     
    }
    return $dst;
    }
    
    Mais j'obtien des résultats totalement incohérents et ca m'énerve !!!

  20. #20
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Tu te compliques un peu la vie... Voici une version plus simple de CharToSixBits :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    sub charToSixBits {
      my $c = shift;
      if( $c eq '.' ){
       return 0;
      } elsif( $c =~ /[A-Z]/ ){
        return ord($c) + 1 - ord('A');
      } elsif( $c =~ /[a-z]/ ){
        return ord($c) + 27 - ord('a');
      } elsif( $c =~ /[0-9]/ ){
        return ord($c) + 53 - ord('0');
      }
      return 63;
    }
    Et voici la fonction de conversion (tu avais un peu oublié la première partie, et les 'chr()' à certains endroits) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    sub convertFromBase64 {
      my $buf = shift;
      $buf .= 'A' while length($buf) & 3;
      my $dst;
      while( $buf =~ /(.)(.)(.)(.)/g ){
        my $cc = (charToSixBits($1) << 18) |
                 (charToSixBits($2) << 12) |
                 (charToSixBits($3) << 6) |
                 (charToSixBits($4));
        $dst .= chr(($cc >> 16) & 0xff);
        $dst .= chr(($cc >> 8) & 0xff);
        $dst .= chr($cc & 0xff);
      }
      return $dst;
    }
    Normalement ça devrait faire exactement la même chose, si ce n'est pas le cas, c'est que ton script comporte une erreur autre part.

    --
    Jedaï

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. perl html javascript
    Par lavm01 dans le forum Web
    Réponses: 2
    Dernier message: 27/07/2007, 10h38
  2. [Perl][XSL][Javascript] problème de chemin
    Par gojira dans le forum Web
    Réponses: 1
    Dernier message: 19/06/2006, 16h32
  3. Réponses: 2
    Dernier message: 16/11/2005, 10h49
  4. Réponses: 4
    Dernier message: 02/06/2004, 16h35
  5. [web] insertion javascript dans du perl
    Par laluna dans le forum Web
    Réponses: 3
    Dernier message: 28/07/2003, 09h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo