Thread Textvorbelegung (HTML Input) mit Perl Variablen (4 answers)
Opened by amun-ra198 at 2007-12-04 11:53

pq
 2007-12-04 12:15
#103427 #103427
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
amun-ra198+2007-12-04 10:53:46--
Code: (dl )
1
2
3
my $description = $cgi->param('param6');

print "<tr><td>Beschreibung:&nbsp;&nbsp;</td><td><input name=\"description\" size=60 maxlength=128 value=\'$description\'></td></tr>";

Ich stehe da gerade irgendwie auf dem Schlauch.
Kann mir jemand weiterhelfen?

ja, du selbst.
du sagst, wenn du $description vorher ausgibst, sind keine leerzeichen drin, in dem string mit
dem html aber schon. ich muss ganz ehrlich sagen, dass ich das nicht glaube.
Code (perl): (dl )
1
2
3
my $description = $cgi->param('param6');
print "<$description>\n";
print "<tr><td>Beschreibung:&nbsp;&nbsp;</td><td><input name=\"description\" size=60 maxlength=128 value=\'$description\'></td></tr>";

so, warum sollte nun $description einmal leerzeichen haben und einmal nicht.
die lösung besteht darin, die stelle zu finden, wo leerzeichen hinzugefügt werden.
schau dir den output des obigen codes an. schau dir bitte auch das entstandene html im browser
an. und dann, um augenkrebs zu vermeiden, solltest du perls wunderbaren quoting-operator
benutzen:
Code (perl): (dl )
print qq{<tr><td>Beschreibung:&nbsp;&nbsp;</td><td><input name="description" size=60 maxlength=128 value="$description"></td></tr>};

zu guter letzt sei dir noch gesagt: was, wenn $description " enthält? ganz einfach, du musst
den wert von $description escapen, mit CPAN:HTML::Entities. oder gleich einem templating-system,
dass das für dich erledigt. CPAN:HTML::Template oder CPAN:HTC machen das für dich.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread Textvorbelegung (HTML Input) mit Perl Variablen