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

Bibliothèques et frameworks PHP Discussion :

[GD] Retour à la ligne dans une zone de texte


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 171
    Points : 71
    Points
    71
    Par défaut [GD] Retour à la ligne dans une zone de texte
    Bonsoir,

    www.compterendutp.webou.net/biochimie.html

    Voici ma page.

    Comme vous le voyez, il y a une zone de texte. Pour s'en servir il faut cocher une ou 2 des cases a cocher au dessus. Supposons (si vous voulez faire le test) que vous cochez les 2 premieres cases a cocher (pour générer le schéma par la suite) et que vous ecrivez un truc dans la zone de texte, une fois que vous aurez validé une page resultat.php va apparaitre avec votre schéma généré et le texte que vous avez tapé dans la zone de texte, qui sera inscrite dans ce schéma.

    Cependant j'ai 2 gros problemes : le plus gros et le plus embettant pour moi, c'est que dans la zone de texte, quand l'utilisateur tape son texte et appui sur la touche "entrer" afin d'aller a la ligne, la ca marche, mais quand il va valider, sur la schéma ca n'aura pas marché et a la place d'aller a la ligne ca va faire des signes bisarres....

    Impossible de regler ce probleme j'ai fais 4 forums, un vrai casse tete, 5 jours que je planche dessus.

    Le deuxieme probleme, toujours embettant mais un peu moins (car je peux dire aux utilisateurs de ne pas l'utiliser meme si ca fait un peu nul :p), c'est lorsque je met des accents (é, à, ...) dans ma zone de texte et que je valide, les accents ne sortent pas, ca me fais des signes bisarres a la place...

    Vous pouvez jeter un coup d'oeil ? . Je vous donne le code source de ma page resultat.php aussi, car les php je ne sais pas si vous pouvez les voir :

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <?php
     
    header('Content-type: image/jpeg');
    /* ligne à modifier selon votre installation */
     
     
    $materiel1 = (isset($_POST['materiel1']) && strlen($_POST['materiel1'])>0);
    $materiel2 = (isset($_POST['materiel2']) && strlen($_POST['materiel2'])>0);
    $materiel3 = (isset($_POST['materiel3']) && strlen($_POST['materiel3'])>0);
    $materiel4 = (isset($_POST['materiel4']) && strlen($_POST['materiel4'])>0);
     
    if ($materiel1 && !$materiel2 && !$materiel3 && !$materiel4)
    {
    $file = 'img-test/becher.jpg';
    } elseif ($materiel1 && $materiel2 && !$materiel3 && !$materiel4)
    {
    $file = 'img-test/burettebecher.jpg';
    } elseif (!$materiel1 && $materiel2 && $materiel3 && !$materiel4)
    {
    $file = 'img-test/ballon+burette.jpg';
    } elseif (!$materiel1 && !$materiel2 && $materiel3 && !$materiel4)
    {
    $file = 'img-test/ballon.jpg';
    } elseif (!$materiel1 && !$materiel2 && !$materiel3 && $materiel4)
    {
    $file = 'img-test/erlen.jpg';
    } elseif (!$materiel1 && $materiel2 && !$materiel3 && $materiel4)
    {
    $file = 'img-test/buretteerlen.jpg';
    }
     
     
    $image = imagecreatefromjpeg($file); //ouverture de l'image jpeg
     
    $couleur = imagecolorallocate ($image, 0, 0,0);//black text 
     
    imagestring($image, 3, 80, 45,stripslashes ($_POST['textfield2']), $couleur); 
    imagestring($image, 3, 80, 100,stripslashes ($_POST['textfield3']), $couleur); 
     
    $Msg = utf8_decode($_POST["textfield2"]);
    $Msg = utf8_decode($_POST["textfield3"]);  
     
    $string = stripslashes($string); 
     
    imagejpeg($image);
    imagedestroy($image);
    ?>
    Voila. Utilisez plutot IE car sous firefox ca merde encore plus, je reglerais ca plus tard si c'est faisable

    Merciiii

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Utilise plutot imagefttext() pour écrire ton texte.

  3. #3
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 201
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 201
    Points : 8 426
    Points
    8 426
    Billets dans le blog
    17
    Par défaut
    1. imagestring( ) ne gère pas, à ma connaissance, les retours à la ligne. Il faut donc que tu découpes le texte saisi sur les retours à la ligne et dispose correctement chq ligne en fonction de la hauteur de la police. Cette dernière est récupérable avec imagefontheight( ).

    2. Normal, imagestring( ) n'utilise pas du ISO-8859-1 mais du ISO-8859-2 (de mémoire). Solutions : implémenter ta propre police bitmap et l'utiliser avec imageloadfont( ) ou utiliser une police TrueType avec imagettftext( )

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 171
    Points : 71
    Points
    71
    Par défaut
    Le plus simple la dedans ? (je suis débutant). Entre ce soir et demain je vais essayer avec imagegettftext et le true type.

    Et sinon, pour le retour a la ligne , vous avez quelque chose a me proposer ? A moins que cela regle tout mes problemes mais ca serait trop beau )

    En tout cas merci beaucoup pour votre aide, j'espere qu'on va reussir

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 171
    Points : 71
    Points
    71
    Par défaut
    encore moi ! J'ai fais le test avec imagettftext et je n'y arrive pas. Je pense que ca vient de la police que je n'utilise pas bien .

    Voici la fin de mon script dans resultat.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
    $image = imagecreatefromjpeg($file); //ouverture de l'image jpeg
     
    $couleur = imagecolorallocate ($image, 0, 0,0);//black text 
     
    // Définition de la variable d'environnement pour GD
    putenv('GDFONTPATH=' . realpath('.'));
     
    // Nom de la police à utiliser (notez l'absence de l'extension .ttf)
    $font = 'confn';
     
    imagettftext($image, 20, 0, 11, 21, $couleur, $font, stripslashes ($_POST['textfield2']);
    imagettftext($image, 20, 0, 11, 21, $couleur, $font, stripslashes ($_POST['textfield3']); 
     
     
     
    imagejpeg($image);
    imagedestroy($image);
    ?>
    j'ai mis le fichier confn.ttf dans le meme repertoire que mon index.html et autres fichiers du site, et je l'ai installé dans mon vista avec un click droit. Je ne sais pas si il faut faire autre chose avec... Et j'ai fait les test sur wampserver


    Donc savez vous d'où vient l'erreur ? Mais si vous avez un truc super simple pour regler mon probleme d'aller a la ligne je suis preneur car c''est vraiment l'ultime truc qui me bloque vraiment.

    Merci beaucoup

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Quelle erreur rencontres-tu ?
    Est ce que ca te fait la meme chose avec une police comme arial ?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 171
    Points : 71
    Points
    71
    Par défaut
    En mettant le script ci dessus, si je n'ecris que dans la zone de texte du haut (textarea2), la page resultat.php s'ouvre avec uniquement ca sur la page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: syntax error, unexpected ';' in /home/enrico83/public_html/resultat.php on line 43

    La ligne 43 correspond à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imagettftext($image, 20, 0, 11, 21, $couleur, $font, stripslashes ($_POST['textfield2']);

    Pour info j'ai testé cela avec IE et FF, non sur wampserver mais directement sur internet (mon site est hebergé par webou).

    nb : je viens de remarquer un truc, je ne sais pas si c'est à utiliser ou nom, mais quand j'edit ma page directement sur webou, j'ai un onglet deroulant appelé "codage" et il est d'origine sur ansi_x3.110-1983. Mais je n'ai jamais rien selectionné ici donc peut etre qu'aucun n'est choisi et que c'est inutile avec une page php, mais a tout hasard je vais essayé de mettre du iso et de l'utf8 voir si ca change quelque chose mais je doute que ca resolve mon probleme d'aler a la ligne

    J'ai aussi essayé de mettre arial et arial bd (faut il que je mette un fichier arial.ttf dans le dossier de mon site web sur mon serveur ? ) et ca ne marche pas, mais je crois que c'est normal tant que ce probleme de ; persistera sur la ligne 43 car c'est toujours ce message d'erreur qui s'affiche.

  8. #8
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu n'as pas fermé la parenthese de imagettftext

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 171
    Points : 71
    Points
    71
    Par défaut
    Oups , merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // Définition de la variable d'environnement pour GD
    putenv('GDFONTPATH=' . realpath('.'));
     
    // Nom de la police à utiliser (notez l'absence de l'extension .ttf)
    $font = 'arial';
     
    imagettftext($image, 20, 0, 11, 21, $couleur, $font, stripslashes ($_POST['textfield2']));
    imagettftext($image, 20, 0, 11, 21, $couleur, $font, stripslashes ($_POST['textfield3']));
    Par contre la quand je valide, sous IE j'ai une enorme page d'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <br />
    <b>Warning</b>:  imagettftext() [<a href='function.imagettftext'>function.imagettftext</a>]: Invalid font filename in <b>/home/enrico83/public_html/resultat.php</b> on line <b>43</b><br />
    <br />
    <b>Warning</b>:  imagettftext() [<a href='function.imagettftext'>function.imagettftext</a>]: Invalid font filename in <b>/home/enrico83/public_html/resultat.php</b> on line <b>44</b><br />
    ÿØÿàJFIFÿþ>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality
    ÿÛC		
    
     $.' ",#(7),01444'9=82<.342ÿÛC			
     
    2!!22222222222222222222222222222222222222222222222222ÿÀ(b"ÿÄ	
    ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚	
    %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ	
    ÿĵw!1AQaq"2B‘¡±Á	#3RðbrÑ
    Et ce n'est que 1/4 du message. Donc la on a encore un probleme sur la meme ligne, mais lié au $font . J'ai aussi essayé de mettre $font = 'arial.ttf' mais ca ne change rien.

  10. #10
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Met le chemin complet vers ton fichier de police.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 171
    Points : 71
    Points
    71
    Par défaut
    hum, je ne savais pas qu'il fallait telecharger le fichier arial.ttf sur mon serveur. je pensais qu'il l'aurait deja vu qu'il est tres courant.

    j'ai donc mis arial.ttf sur le serveur, j'a testé et ca n'a pas marché. Dans résultat.php j'ai modifié en $font= 'arial.ttf' et la .... ca marche SUPER !!!

    Tous les accents marchent, et surtout, quand j'appuie sur "enter" pour aller a la ligne ca va a la ligne sans broncher dans ma page de resultat !!!

    Je suis trop content, merci a tout ceux qui ont participé à cette conversation pour m'aider.

    Grand merci !!

    [résolu]

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

Discussions similaires

  1. [XL-2007] Retour à la ligne dans une zone de texte
    Par macgyver44 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/10/2010, 01h00
  2. [MySQL] Retour à la ligne dans une zone de texte
    Par adili dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 31/03/2009, 09h28
  3. Retour à la ligne dans une zone de texte
    Par vnlttt dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/06/2008, 13h11
  4. Retour à la ligne dans une zone de texte
    Par schtipoun dans le forum IHM
    Réponses: 0
    Dernier message: 24/04/2008, 10h37
  5. Retour à la ligne dans une zone de text
    Par hnb2003 dans le forum Access
    Réponses: 2
    Dernier message: 13/04/2006, 11h56

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