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 :

Mettre une image en session


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Par défaut Mettre une image en session
    Bonjour,

    Je souhaite savoir s'il est possible de passer un image d'une page à l'autre. Je met dans le titre du post "session", mais je suis preneur d'autre méthode.

    En fait, il s'agit d'une image générée dynamiquement avec la librairie gd.
    J'aimerai la réutiliser sur une autre page mais sans la recalculer.

    pour faire simple, j'ai trois pages:
    • page1.php
    • page2.php
    • calculimage.php


    dans la page 1, j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src='calculimage.php' />
    dans calculimage, j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['image']= imagepng ($imageperso);
    mais j'arrive pas à utiliser ce $_SESSION['image'] dans la page 2...

    est-ce possible de mettre une image en session ?
    comment fait-on pour la réutiliser (l'afficher et refaire des traitements dessus) ?

    Si quelqu'un a des idées...
    Merci d'avance

  2. #2
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Salut,
    tu doit pouvoir sérialiser/désérialiser l'image que t'as créée (pas sûr car certaines ressources externes sont peut être détruites à la fin du script) mais le plus simple serait de l'enregistrer sur le serveur avec un id unique par exemple car si t'as des grosses images ça risque de prendre pas mal de ram.

  3. #3
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Par défaut
    Pas plus de résultat...
    En fait, c'est pour éviter de l'enregistrer que je me prend la tête. Sinon c'est trop facile.
    Je me fais pas trop de souci pour la ram, c'est forcément des petites images.

    Mais là où j'ai peut-être pas tout compris, c'est comment utiliser ces imagepng($monimage)

    parcqu'il y a bien quelque chose dans $_SESSION['image'] à la page2. mais je sais pas comment l'exploiter. Le serializer, c'est pour être sûr qu'il ne perde pas sa forme hein? mais comme c'est en session, ça reste sur le serveur. Alors je pensais qu'on pouvait utiliser ce $SESSION pour mettre de coté des trucs plus costauds que des chaines ou des tableaux de chaines (comme des images par exemple).

    Tu crois que l'image peut être détruite entre la page1 et la page2 ? et que ce qu'il a dans mon $_SESSION['image'] c'est un résidut ou un truc null ?

  4. #4
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Citation Envoyé par Lepirate62 Voir le message
    Tu crois que l'image peut être détruite entre la page1 et la page2 ? et que ce qu'il a dans mon $_SESSION['image'] c'est un résidut ou un truc null ?
    Oui elle doit être détruite à la fin du script. C'est bizzare je vois pas dans la doc de gd de fonction pour copier dans une variable les données binaires d'une image créée. En tous cas voici une soluce potentielle en bufférisant la sortie faute de mieux :

    index.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    session_start();
    ?>
    <img src="image.php">
    <a href="page2.php">lien</a>
    image.php
    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
    <?php
    session_start();
    header("Content-type: image/png");
    if(!isset($_SESSION['img']))	{
    	ob_start();
    	$im = @imagecreate(110, 20)
    		or die("Impossible d'initialiser la bibliothèque GD");
    	$background_color = imagecolorallocate($im, 0, 0, 0);
    	$text_color = imagecolorallocate($im, 233, 14, 91);
    	imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);
    	imagepng($im);
    	$_SESSION['img'] = ob_get_contents();
    	ob_end_flush();
    }
    else	{
    	echo $_SESSION['img'];
    }
     
    ?>
    page2.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    session_start();
    echo '<img src="image.php">';
    ?>

    Tu peux ensuite utiliser imagecreatefromstring ( string $data ) si tu veux la reconstruire pour la modifier.

Discussions similaires

  1. [CR7] mettre une image ou texte de fond
    Par yoyothebest dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 11/08/2006, 15h40
  2. Réponses: 12
    Dernier message: 22/02/2005, 18h45
  3. [VB6] mettre une image sur un boutton
    Par dim dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 15/02/2004, 02h28
  4. Comment mettre une image en fond de JFrame
    Par marc26 dans le forum Débuter
    Réponses: 3
    Dernier message: 19/01/2004, 18h57
  5. Peut on mettre une image dans une BD MySQL ?
    Par maddog2032 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 25/07/2003, 17h18

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