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

Langage Perl Discussion :

Probleme d'un passage par reference.


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2004
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 26
    Points : 28
    Points
    28
    Par défaut Probleme d'un passage par reference.
    Bonjour,

    En fait j'ai un souci avec un passage de reference.
    En gros j'ai un script qui me permet de créer un tableau à trois dimension en fonction de ce qui a été saisi dans une page web.
    Au moment de la validation je fais passer toutes les infos de la page dans l'url afin de pouvoir créer un graphique
    Ce graphique étatn généré via un aure script perl.
    Pour cela je fais passer la reference du tableau dans l'url que je recupere ensuite dans l'autre script.


    Le probleme c'est que je recupere bien la meme reference passer dans l'url mais j'ai comme l'impression que le tableau est vide et là je ne comprends plus du tout.

    J'aurais donc besoin de votre aide pour avoir une explication.

    Merci d'avance..

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 583
    Points : 2 031
    Points
    2 031
    Par défaut
    Hello,

    nous autres qui passons ici pour aider les gens en difficulté avons malheureusement égaré notre boule de cristal, il nous est impossible de donner une réponse concrète sans voir le code incriminé.



    "where is my ball ?"
    "my ball is under the TV"
    "bonjour, vous avez retrouvé ma boule ?"
    "heu non monsieur, ici vous êtes dans un cours d'anglais"


  3. #3
    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
    HTTP est un protocole dit "stateless" (sans-état), autrement dit aucune information autre que celle véhiculé par une requête n'est transmise d'une page à la suivante. De plus ce que tu transmets dans ton URL, ce n'est pas une référence, mais une chaîne de caractère représentant une référence, quand tu la reçois non-seulement l'objet reférencé n'existe plus, mais de toute façon on ne peut pas retransformer une string en référence (c'est une transformation à sens unique), sinon on pourrait faire de l'arithmétique de pointeur en Perl et ce ne serait pas vraiment une bonne chose...

    A partir de là tu peux envisager plusieurs solutions, l'une consiste à faire carrément passer le tableau (et pas simplement une référence sur lui) dans ta requête, je te conseille alors de passer à une méthode POST, GET étant souvent limité pour ce qui est de la taille de la requête. Il te faudra alors utiliser l'une des solution de sérialization pour Perl, YAML ou JSON sont à la mode ces derniers temps, Storable reste une valeur sûre (et est disponible partout, puisqu'intégré dans le CORE). Même ainsi ce n'est envisageable que si le tableau n'est pas trop gros.
    L'autre solution implique de stocker l'information sur le disque (ou du moins dans une zone de mémoire persistante) et de ne passer dans la requête que de quoi retrouver cette zone de stockage personnalisée. C'est le système dit des sessions, il existe un certain nombre de modules pour gérer cela en Perl, dont CGI::Session par exemple.

    Dans tous les cas, il faut faire attention au problème de sécurité, si tu transmets des informations vitales, utilise de préférence https.

    --
    Jedaï

  4. #4
    Nouveau membre du Club
    Inscrit en
    Septembre 2004
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 26
    Points : 28
    Points
    28
    Par défaut
    En gros c'est pas possible de passer une reference via l'url.

    Tu ferais comment pour passer directement ton tableau dans l'url car je vois pas trop le principe ??

    Merci

  5. #5
    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
    Directement dans l'URL je ne te le conseille pas, parce que la sérialization d'un tableau, même petit peut prendre pas mal de place, mais dans une requête POST et avec un tableau de taille raisonnable, pourquoi pas.
    Tu utilises un champ "hidden" dans lequel tu places ton tableau sérializé, la sérialization est le processus qui consiste à mettre sous forme de chaîne de caractères une structure de données, en Perl certains modules te permette de faire cela facilement, par exemple Storable et sa fonction freeze().

    NB : Ceci est valable en Perl comme dans tout autre langage de programmation utilisé pour faire des pages web dynamique. En Perl comme dans les autres langages, il existe un certain nombre de Frameworks qui permettent de cacher les détails peu ragoutants de ce type d'opérations, si tu veux faire une grosse application web en Perl, je te conseille de t'intéresser à Catalyst, Maypole, Jifty ou autres... (il y en a beaucoup)

    --
    Jedaï

Discussions similaires

  1. Probleme comprehension du passage par reference
    Par rookie1 dans le forum Débuter
    Réponses: 4
    Dernier message: 01/02/2009, 19h55
  2. Passage par reference
    Par Seth77 dans le forum Langage
    Réponses: 38
    Dernier message: 03/09/2008, 17h38
  3. [debutant(e)]passage par reference
    Par kass28 dans le forum Débuter
    Réponses: 4
    Dernier message: 27/07/2007, 17h56
  4. Probleme sur le passage par reference
    Par schnito dans le forum Langage
    Réponses: 10
    Dernier message: 02/02/2006, 16h50
  5. [VB6]Passage par référence d'une prop. d'objet à une fct
    Par -gYs- dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 02/09/2002, 08h55

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