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 PHP Discussion :

Session partagée pour tous les utilisateurs


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 138
    Points : 68
    Points
    68
    Par défaut Session partagée pour tous les utilisateurs
    Bonsoir,

    Je voudrais me créer une session partagée pour tous les utilisateurs ; ceci en plus de leur propre session.
    Cette session partagée servirait à avoir en mémoire serveur une grosse information (une image qui pourrait être assez conséquente en taille en l'occurence) ; ça me permettrait donc de l'avoir sous la main sans devoir systématiquement la charger en mémoire pour chaque utilisateur.

    Est-ce possible ?

    Je n'ai pas testé session_name, mais je n'ai pas lu que ça parlait vraiment de partage de session.

    Merci

  2. #2
    FoxLeRenard
    Invité(e)
    Par défaut
    Salut,

    S'il sagit d'une grande quantitée de données, pourquoi pas une table MYSQL

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 138
    Points : 68
    Points
    68
    Par défaut
    Non, en fait, ça serait une ressource image créée par imageCreateFromPng.
    A partir de cette image, dans une de mes interfaces, j'utilise certaines parties pour afficher à l'utilisateur.

    Mon soucis est que cette image pourrait être grosse en taille (peut être plusieurs Mo).

    Donc l'idée est de la charger un fois de temps en temps seulement pour éviter de devoir la charger à chaque rafraîchissement de l'utilisateur.

  4. #4
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Points : 2 399
    Points
    2 399
    Par défaut
    Dans ce cas pourquoi ne page généré un fichier image que tu stockera dans un dossier ?
    Et c'est cette image que tes utilisateur verront.

    Âpres il suffira de la régénérer à intervalles régulières.
    Zend Certified PHP Engineer

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 138
    Points : 68
    Points
    68
    Par défaut
    La question n'est pas comment faire, car je le sais, mais bien une question technique :

    Est-il possible de créer une session dont les variables seront accessibles par n'importe quel utilisateur du site ?

  6. #6
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par maniaco_jazz Voir le message
    Non, en fait, ça serait une ressource image créée par imageCreateFromPng.
    A partir de cette image, dans une de mes interfaces, j'utilise certaines parties pour afficher à l'utilisateur.
    Mon soucis est que cette image pourrait être grosse en taille (peut être plusieurs Mo).
    Donc l'idée est de la charger un fois de temps en temps seulement pour éviter de devoir la charger à chaque rafraîchissement de l'utilisateur.
    Ah non l'Ami, le PHP et les sessions sont loin de toi, sur le serveur,
    si tu as une image quelque part et que le visiteur fait F5 session ou pas, il va retelecharger l'image désolé !!

    Mais si , il sagit d'une image de 1Mo c'est abérent, a moins qu'il sagisse d'un petit site trés peut visité

    Multiplies 1Mo par 5000 visiteurs jours ... tu verras que même avec de la fibre optique tu t'écroule ton serveur !

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Si j'ai bien compris ce qu'il veut ca serait d'utiliser un systeme de cache serveur.
    En gros il charge son image une fois pour un utilisateur et il l'a met dans ce cache, pour les utilisateurs suivant, au lieu de recharger l'image a partir du disque dur et replomber la ram, il l'a prend en cache.

    Je sais que ca existe en asp.net mais vu mon niveau grand débutant php, je ne sais pas si ce mécanisme existe.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 138
    Points : 68
    Points
    68
    Par défaut
    Oui, c'est cela, avoir un équivalent cache serveur comme en .NET.

  9. #9
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par bluegloup Voir le message
    Si j'ai bien compris ce qu'il veut ca serait d'utiliser un systeme de cache serveur.
    En gros il charge son image une fois pour un utilisateur et il l'a met dans ce cache, pour les utilisateurs suivant, au lieu de recharger l'image a partir du disque dur et replomber la ram, il l'a prend en cache.

    Je sais que ca existe en asp.net mais vu mon niveau grand débutant php, je ne sais pas si ce mécanisme existe.
    NOn Non
    Le cache tel que tu le décris est sur le serveur, alors il sert a quoi

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bah bien sur qu'il est sur le serveur vu que je l'ai appelé "cache serveur"

  11. #11
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par bluegloup Voir le message
    Bah bien sur qu'il est sur le serveur vu que je l'ai appelé "cache serveur"
    Alors on est OK, a chaque visiteur qui voudra son fichier de 1MO le serveur va le faire passer dans son cable ... vers le micro du visiteur cache ou pas tu comprends que la ressource serveur (charge) est la même

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 138
    Points : 68
    Points
    68
    Par défaut
    J'ai peut être pas compris quelque chose dans le fonctionnement des sessions alors (ce que je doute...).

    Dans mon interface cliente, j'ai un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    <img src="script.php" .../>
    ...
    dans mon script php "script.php" j'ai un truc du genre :
    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
     
    <?
    session_start ();
    header("Content-type: image/png");
     
    $largeur = 750;
    $hauteur = 500;
    $img = imagecreate($largeur, $hauteur);
     
    $img_origine = imagecreatefrompng("image_origine.png");
     
    $result = imagecopy ($img, $img_origine, 0, 0, 250, 0, $largeur, $hauteur);
     
    imagepng($img);
    imagedestroy($img);
     
    ?>
    J'ai une image (grosse) que je veux découper et je ne renvoie que la partie découpée à l'utilisateur.

    Donc dans ce cas, je renvoie bien la nouvelle image créée (le flux) et pas image_origine.png.

    Par contre, oui, en utilisant une session normale, à chaque rafraîchissement, le serveur va faire son :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $img_origine = imagecreatefrompng("image_origine.png");
    Qui lui va prendre du temps...

    Moi, ce que je veux, c'est le faire qu'une fois (toute les N jours automatiquement par exemple) et donc concerver ce $img_origine en session (ou cache serveur) qui sera réutilisable par n'importe quel utilisateur.

    Je n'arrive juste pas à trouver ce qui me permettrait de sauvegarder mon $img_origine quelques part sur mon serveur...

  13. #13
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    j'ai pas bien compris si un groupe d'utilisateur reçoit la même portion
    d'image ou si chaque utilisateur reçoit une portion différente de l'image.

    quoi qu'il en soit, tu pourrais de toute façon gérer un cache coté client de
    façon à ce qu'un utilisateur qui utilise ton application ne charge l'image que
    quand celle-ci à effectivement changé. Pour cela tu dois fixer et traiter les
    en-tête HTTP qui permette la gestion du cache, voir ici

    Si en effet plusieurs utilisateur reçoivent une même image, alors un cache
    coté serveur a de l'intérêt. Pour cela le plus simple c'est de sauver l'image
    dans un dossier 'cache' et de lui donner un nom qui la qualifie, par exemple:

    image_origine-0-0-250-0.png

    et dans ta page script.php, avant de découper l'image, tu vérifie
    avec file_exists si une image correspond déjà aux réglages de découpe.
    tu vérifie aussi que son filemtime est plus bas que le filemtime de
    image_origine.

    si l'image en cache doit être recrée, alors tu lance la découpe. sinon tu
    sers le fichier existant avec readfile.

    Tu peux très bien mixer les deux techniques. (c'est l'idéal même).
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

Discussions similaires

  1. Une imprimante partagée pour tous les utilisateurs
    Par iubito dans le forum Windows Serveur
    Réponses: 6
    Dernier message: 24/09/2009, 10h18
  2. Réponses: 6
    Dernier message: 06/06/2006, 13h22
  3. autorun programs pour tous les utilisateurs du systeme
    Par mariogarcia dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 14/11/2005, 23h33

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