Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Texte formaté

5 réponses
Avatar
Régine
Bonjour,

Je souhaite r=E9cup=E9rer le texte saisi dans un formulaire (zone texe
html) et restituer ce texte avec les retour =E0 la ligne tel que saisi.

J'ai dans perle le variable $INPUT{'FullText'}

Comment conserver le formatage du texte dans perl ?

Merci pour votre aide

Bien cordialement

G=E9rald

5 réponses

Avatar
Paul Gaborit
À (at) Wed, 4 Feb 2009 22:19:43 -0800 (PST),
Régine écrivait (wrote):
Je souhaite récupérer le texte saisi dans un formulaire (zone texe
html) et restituer ce texte avec les retour à la ligne tel que saisi.

J'ai dans perle le variable $INPUT{'FullText'}

Comment conserver le formatage du texte dans perl ?



A priori, si vous utilisez le module CGI (ou un module équivalent), la
variable doit contenir le texte tel qu'il a été saisi par
l'utilisateur et envoyé par son navigateur...

Qu'est-ce qui vous fait croire que Perl pourrait se permettre de le
modifier sans aucune action explicite de votre code ? Ne serait-pas
plutôt une question d'affichage en HTML d'un texte formaté ?

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Perl en français - <http://perl.mines-albi.fr/>
Avatar
Régine
On 5 fév, 08:09, Paul Gaborit wrote:
À (at) Wed, 4 Feb 2009 22:19:43 -0800 (PST),
Régine écrivait (wrote):

> Je souhaite récupérer le texte saisi dans un formulaire (zone texe
> html) et restituer ce texte avec les retour à la ligne tel que saisi.

> J'ai dans perle le variable $INPUT{'FullText'}

> Comment conserver le formatage du texte dans perl ?

A priori, si vous utilisez le module CGI (ou un module équivalent), la
variable doit contenir le texte tel qu'il a été saisi par
l'utilisateur et envoyé par son navigateur...

Qu'est-ce qui vous fait croire que Perl pourrait se permettre de le
modifier sans aucune action explicite de votre code ? Ne serait-pas
plutôt une question d'affichage en HTML d'un texte formaté ?

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Perl en français - <http://perl.mines-albi.fr/>




Bonjour,

Je me suis peut être mal exprimé

J'ai une zone texte (Var= FullText) en html dans laquelle je souhaite
faire des retours à la ligne etc...

En perl, l'instruction: Un print >une page html

print DATA "<center><table border="0" cellspacing="1" width="50%
"><tr><td><font color="#3399FF" size="2" face="Verdana">$INPUT
{'FullText'}</font></td>

Bien sur je peux y ajouter de <br> mais je souhaite le prise en compte
des retour à la ligne

Merci pour votre aide
Cordiales salutations
Gérald
Avatar
Paul Gaborit
À (at) Sat, 7 Feb 2009 09:19:32 -0800 (PST),
Régine écrivait (wrote):
Je me suis peut être mal exprimé



Peut-être... Mais au vu de ce que vous dites ci-dessous, je pense
avoir très bien compris.

J'ai une zone texte (Var= FullText) en html dans laquelle je souhaite
faire des retours à la ligne etc...

En perl, l'instruction: Un print >une page html

print DATA "<center><table border="0" cellspacing="1" width="50%
"><tr><td><font color="#3399FF" size="2" face="Verdana">$INPUT
{'FullText'}</font></td>



Que vous pourriez écrire beaucoup plus simplement d'un point de vue
syntaxe Perl en utilisant l'opérateur 'qq' :

print DATA qq{<center><table border="0" cellspacing="1" width="50%">
<tr><td><font color="#3399FF" size="2"
face="Verdana">$INPUT{FullText}</font></td></tr></table>};

... et vous auriez le même souci d'affichage avec le code suivant :

print DATA "<p>$INPUT{FullText}</p>";

Vous pourrez aussi remarqué que si votre texte contient plusieurs
espaces successifs (2, 1000 ou plus encore), ils sont affichés comme
un seul espace. Et c'est normal : c'est le fonctionnement voulu du
HTML.

Bien sur je peux y ajouter de <br> mais je souhaite le prise en compte
des retour à la ligne



L'ajout de '<br>' est effectivement une solution :

my $texte_avec_br = $INPUT{FullText};
$texte_avec_br =~ s/n/<br>n/g;
print DATA "<p>$texte_avec_br</p>";

mais ça ne préserve pas les espaces multiples...

Un deuxième solution consiste à utiliser un élément HTML qui préserve
les passages à la ligne du contenu lors de l'affichage :

print DATA "<pre>$texte_avec_br</pre>";

Une autre solution consiste à indiqué, via du CSS, que l'élément
contenant votre texte doit respecter les passages à la ligne:

print DATA qq{<p style="white-space: pre;">$INPUT{FullText}</p>};

En tous cas, c'est bien un problème de HTML et non de Perl...

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Perl en français - <http://perl.mines-albi.fr/>
Avatar
Paul Gaborit
À (at) Sat, 07 Feb 2009 18:57:04 +0100,
Paul Gaborit écrivait (wrote):
[...]
Un deuxième solution consiste à utiliser un élément HTML qui préserve
les passages à la ligne du contenu lors de l'affichage :

print DATA "<pre>$texte_avec_br</pre>";



Je voulais écrire :

Une deuxième solution consiste à utiliser un élément HTML qui
préserve les passages à la ligne du contenu lors de l'affichage :

print DATA "<pre>$INPUT{FullText}</pre>";

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Perl en français - <http://perl.mines-albi.fr/>
Avatar
Régine
On 7 fév, 19:04, Paul Gaborit wrote:
À (at) Sat, 07 Feb 2009 18:57:04 +0100,
Paul Gaborit écrivait (wrote):
[...]

> Un deuxième solution consiste à utiliser un élément HTML qui pr éserve
> les passages à la ligne du contenu lors de l'affichage :

>   print DATA "<pre>$texte_avec_br</pre>";

Je voulais écrire :

  Une deuxième solution consiste à utiliser un élément HTML qui
  préserve les passages à la ligne du contenu lors de l'affichage :

     print DATA "<pre>$INPUT{FullText}</pre>";

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Perl en français - <http://perl.mines-albi.fr/>





C'est parfait et je vous remercie infiniment pour votre aide !
Cordiales salutations
Gérald