> Dan Muey wrote:
>
> [snip]
>
> > I could replace all single quotes with double quotes and escape
> > everythgin inbetween them but that seems like a lot.
> >
> > Any ideas how to deal with the single quotes? (Since shell escape
> > characters may or may not work since apache is executing it)
>
> after trying (a few years ago) to do something similar to
> what you propose
> which lead to a total mess and difficult to maintain codes, i have
> basically gave up this escape-shell-character approach. it's almost
> impossible to know when to escape and when not to escape. i now use a
> different approach. instead of involving Perl from the
> command line with
> -e, i simply print the code to a file and then run the code
> within the
Good idea!!!
I'll give that a go. The only problem is I should have thought of that!!
I'll get there one of these days :)
Thanks for the idea David.
Dan
> file. here is a strip down version of what i used to do:
>
> #!/usr/bin/perl -w
> use strict;
>
> use CGI;
> use File::Temp qw/tempfile tempdir/;
>
> my $cgi = CGI->new;
>
> if($cgi->param('code')){
>
> my($fh,$fn) = tempfile(DIR => tempdir(CLEANUP => 1));
>
> print $fh "#!/usr/bin/perl -w\n";
> print $fh "use strict;\n\n";
>
> print $fh $cgi->param('code');
>
> close($fh);
>
> if(chmod(0755,$fn)){
> html($cgi,$cgi->param('code'),`$fn`);
> }else{
> html($cgi,"Unable to run: \n\n" .
> $cgi->param('code'));
> }
> }else{
> html($cgi,undef);
> }
>
> #-- DONE-- #
>
> sub html{
>
> my $cgi = shift;
> my $code = shift;
>
> my $value = $code || '';
>
> if(@_){
> $value .= "\n\n__END__\n\n";
> $value .= $_ for(@_);
> }
>
> print $cgi->header,<<HTML;
> <html><body>
> <form method=post action=your_script.pl>
> <textarea name=code cols=60 rows=10>$value</textarea><br>
> <input type=submit value=Submit> </form> </body></html> HTML
>
> }
>
> __END__
>
> a textarea is printed along a submit button, code is entered
> through the
> textarea, when the submit button is clicked, a tmp file is
> create which
> holds the code from the textarea. the file is then run from
> the command
> line and output is returned back to the textarea. finally,
> the tmp file is
> deleted when the script finish.
>
> david
> --
> sub'_{print"@_ ";* \ = * __ ,\ & \}
> sub'__{print"@_ ";* \ = * ___ ,\ & \}
> sub'___{print"@_ ";* \ = * ____ ,\ & \}
> sub'____{print"@_,\n"}&{_+Just}(another)->(Perl)->(Hacker)
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>