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 :

affichage d'un texte en image via méthode POST


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Par défaut affichage d'un texte en image via méthode POST
    Bonjour
    je cherche à afficher parmis d'autres données, les mails d'une table mysql sous forme d'image. cette page on y arrive par un lien en get bien sur avec les variables , aucun problème mais seulement pour la variable des mails j'aimerais la passer en post

    j'arrive à le faire par la methode Get avec un lien mais le problème est que du coup le mail est visible dans l'Url ce que je cherche à éviter.

    la page textimage.php avec le script qui construit l'image à partir d'un texte
    (merci au site http://rastavibes.free.fr/FONTS/)

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <?php
    $maxtexte = 30;
    $maxsize = 20;
    if (isset($_GET["texte"]) && (strlen($_GET["texte"]) <= $maxtexte)) $text = htmlentities($_GET["texte"]);
    elseif (isset($_GET["t"]) && (strlen($_GET["t"]) <= $maxtexte)) $text = htmlentities($_GET["t"]); else $text = $_GET["texte"] ;
    @include('./ttf.php');
    if (isset($_GET["s"]) && ($_GET["s"] <= $maxsize)) $fontsize = htmlentities($_GET["s"]); else $fontsize = "12";
    $angle = "0";
    $tableau = imagettfbbox($fontsize,$angle,$font,$text);
    $width = $tableau[2]-$tableau[0];
    $height = $fontsize*1.5;
    $x = $width*0.0625;
    $y = $height*0.8;
    $image=imageCreate($width*1.125,$height);
    if (isset($_GET["w"])) { 
    $bgcolor = imagecolorallocate($image,0,0,0);
    $fontcolor = imagecolorallocate($image,255,255,255);
    }
    elseif (isset($_GET["b"])) { 
    $bgcolor = imagecolorallocate($image,255,255,255);
    $fontcolor = imagecolorallocate($image,0,0,0);
    }
    else { 
    $bgcolor = imagecolorallocate($image,255,255,255);
    $fontcolor = imagecolorallocate($image,0,0,0);
    }
    imagecolortransparent($image,$bgcolor);
    imagettftext($image,$fontsize,$angle,$x,$y,$fontcolor,$font,$text);
    imagejpeg($image, 'simpletext.jpg');
    imagePNG($image);
    imagedestroy($image);
    ?>
    la page test.php
    qui va afficher le texte transformé en image avec un lien vers l'image

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php $texte =($_GET['texte']); ?>
    <img alt=""  src="textimage.php?texte=<?php echo $texte  ;?>" />
    et une page toto.php avec un lien qui va sur test.php et qui envoie les infos par url en get ( $texte étant issue d'une requête sql )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test.php?texte=<?php echo $texte  ;?>
    j'ai essayé de faire un lien qui envoie un formulaire en post avec un hidden
    et en changeant les get en post dans les scripts mais walou..

    et j'ai essayé d'adapter ce script qui marche bien avec un form en post

    http://www.developpez.net/forums/d12...dynamiquement/

    mais sans succès

    merci de votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu remplaces ton lien
    <a href="test.php?texte=<?php echo $texte ;?>">
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form action="test.php" method="post">
    <input type="hidden" value="<?php echo $texte  ;?>" name="texte"/>
    <input type="submit" />
    </form>
    et tous tes $_GET en $_POST

    Par contre tu ne nous as pas du tout parlé de tes $_GET["s"] etc.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Par défaut
    merci sabotage pour ta réponse

    en fait ce que j'aimerais faire c'est d'utiliser un lien du type

    toto.php?Varnom=jojo&varadresse=25 rue des olives&varmail=titi@tutu.fr

    mais faire passer la variable $varmail en post par un formulaire en hidden juste au click sur le lien

    soit le formulaire enverrait la variable $varmail au click sur le lien qui lui enverrait les autres variable en get

    soit si pas possible tout envoyé en post

    j' espères ne pas être trop embrouillé..

    pour $_GET["s"] etc.

    $texte ou $t = texte à afficher
    $s = size / taille police
    $police = police utilisée
    $w = couleur blanche

    mais ont peut enlever tous ces gets car l'auteur du script l'a fait pour créer l'image la première fois qu'on l'appelle et vérifiier qu'elle existe avant de la créer. "ça évite de faire bosser le serveur à chaque fois pour créer une nouvelle image".

    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
    <?php
    $maxtexte = 30;
    $maxsize = 20;
    $text = $_GET["texte"] ;
    @include('./ttf.php');
    $fontsize = "12";
    $angle = "0";
    $tableau = imagettfbbox($fontsize,$angle,$font,$text);
    $width = $tableau[2]-$tableau[0];
    $height = $fontsize*1.5;
    $x = $width*0.0625;
    $y = $height*0.8;
    $image=imageCreate($width*1.125,$height);
    $bgcolor = imagecolorallocate($image,255,255,255);
    $fontcolor = imagecolorallocate($image,0,0,0);
    imagecolortransparent($image,$bgcolor);
    imagettftext($image,$fontsize,$angle,$x,$y,$fontcolor,$font,$text);
    imagejpeg($image, 'simpletext.jpg');
    imagePNG($image);
    imagedestroy($image);
    ?>

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pourquoi tu ne veux pas tout mettre dans le formulaire ?

    Une alternative puisque tes données viennent d'une base de donnée, est de transmettre uniquement l'id et de lire les informations nécessaires dans le script de génération d'image.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Par défaut
    merci sabotage et bon Dimanche

    pas de formulaire parce que on accède à la page souhaité par un lien.

    mon image est fabriqué par le script de textimage.php mais elle ne peut s'afficher sur cette page , j'ai une erreur de type "L'image ne peut-être affichée car elle contient des erreurs" sans doute une histoire de header

    dans la page ou je souhaite afficher cette image je fait un lien img src vers cette page , le fichier textimage.php est considéré comme une image

    j'arrive à faire afficher cette image mais le seul soucis est que l'on voit le texte de l'image dans l'url

    pour ta suggestion, si je transmet juste l'id et que je fait le traitement dans le fichier qui fabrique l'image ça plante avec encore une histoire de "L'image ne peut-être affichée car elle contient des erreurs"

    il faut que je fasse le traitement dans la page qui appelle l'image pour que ça marche.
    ça marche mais avec le seul hic d'avoir dans l'url l'affichage de la donnée que je veux transformer en image

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tes explications sont confuses ; je simplifie ton cas :

    Tu as trois pages.

    Page 1 : lit les informations dans la base de données et produit une liste des images disponibles.

    Page 2 : affiche l'image à partir des informations reçus de la page 1

    Page 3 : produit l'image à partir des informations reçus de la page 2 par src="...."

    Pour passer de la page 1 à la page 2, actuellement tu as un lien avec toutes les données concernant l'image.
    Tu peux remplacer ce lien par un formulaire comme je t'ai indiqué dans le premier message.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 26/06/2008, 04h15
  2. affichage texte et image statiques
    Par rachou59650 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 17/04/2008, 16h41
  3. Réponses: 11
    Dernier message: 14/08/2007, 18h20
  4. Réception et diffusion xml via méthode Post
    Par hegros dans le forum Modules
    Réponses: 2
    Dernier message: 31/07/2006, 21h42
  5. [AJAX] Retrouver xml envoyé du client au serveur (via méthode POST)
    Par leszek dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/05/2006, 16h07

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