OK - the form is just a single field, a textarea field.
I type in multiple lines, seperated by :: (for now)
Here is the code that is troublesome in the target script:
my $text = $query->param("text");
make_image($text);
exit(0);
##########################################################
# Make an image from the lines in the array
#
sub make_image {
my $text = shift;
my @lines = split(/\n/,$text);
my $counter = 80;
foreach my $line (@lines) {
$im->stringTTF($black, "/home/httpd/html/ribbon.ttf", 15, 0, 5
+0, 80,$line);
if ($@) {
$im->string(gdSmallFont, 50, 150, "$@", $black);
die "Cannot print!$!\n";
}
$counter += 10;
}
binmode STDOUT;
print $query->header(-type=>'image/png');
print $im->png;
}
This code has been altered a million times, so if you find some syntax error, it's probably something I haven't fixed from the last edit ;-)
Anyhow, if I hit http://localhost/myscript.pl?text=I+LOVE+MY+WIFE then it works. Going through a web form which then writes <img src="/myscript.pl?$text"> ($text being pulled by $text = $q->param("text") ) then it only prints the first letter, the I.
My goal here is to eventually make a script that people can type in their text, the thing makes a multi-line image from it with that nice ribbon font, and the result gets sent as a kind of greeting card/invitation (for weddings, child birth announcements, etc).
Any help would be appreciated.
What does this little button do . .<Click>;
"USER HAS SIGNED OFF FOR THE DAY" | [reply] [d/l] [select] |
Anyhow, if I hit http://localhost/myscript.pl?text=I+LOVE+MY+WIFE then it works. Going through a web form which then writes <img src="/myscript.pl?$text"> ($text being pulled by $text = $q->param("text") ) then it only prints the first letter, the I.
You are properly URI-escaping the code you print in $text, right? You can't just do this:
print qq{<img src="/myscript.pl?$text">};
because you need to re-percentify or plusify spaces, etc etc., as in:
use URI;
my $uri = URI->new("/myscript.pl");
$uri->query($text);
my $uri_string = $uri->as_string;
print qq{<img src="$uri_string">};
-- Randal L. Schwartz, Perl hacker | [reply] [d/l] [select] |
Well CRAP!!
Finally someone has the answer!!
Thanks Merlyn. Too bad all my votes for today are gone ;-)
What does this little button do . .<Click>;
"USER HAS SIGNED OFF FOR THE DAY"
| [reply] [d/l] |
Randall, this worked fine with one exception:
I had to replace $uri->query with $uri->query_form($key=>$text)
As it stands I also had to replace the imager.cfm with an imageform.cgi,
as there was no way to force Cold Fusion to clean up the
string before calling the image maker.(At least not a method
that I am aware of yet.)
Thanks for all the help, everyone!
What does this little button do . .<Click>;
"USER HAS SIGNED OFF FOR THE DAY"
| [reply] [d/l] |