?
Solved

is it possible to use a CGI script to create other CGI scripts?

Posted on 2000-03-21
5
Medium Priority
?
192 Views
Last Modified: 2011-04-14
I want to create a CGI script from within a CGI script.  How do I get around the following:

open(NEW_CGI_SCRIPT, ">$address");

print NEW_CGI_SCRIPT "cgi code";

close(NEW_CGI_SCRIPT);

What can I do to prevent the current CGI script from interpreting the cgi code I want to write to the new script?

Any pointers would be appreciated!
0
Comment
Question by:flahertd
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
5 Comments
 
LVL 16

Expert Comment

by:maneshr
ID: 2642053
"What can I do to prevent the current CGI script from interpreting the cgi code I want to write to the new script? "

you dont have to do anything. As long as your CGI code is within " and you have escaped any special chars you are safe.

0
 
LVL 5

Expert Comment

by:PC_User321
ID: 2642367
$cgi_code = 'Your CGI code goes here;
$ signs get ignored because of the single quotes
Double quotes ignored "too".
End of CGI script';


print NEW_CGI_SCRIPT $cgi_code;



0
 
LVL 16

Expert Comment

by:maneshr
ID: 2645121
flahertd,

were you able to find a solution to your problem? if so, pl. let this forum know of the solution.

thanks
0
 

Author Comment

by:flahertd
ID: 2645525
First, thanks for the suggestions!

What I did was a mixture of both -

I put some of the code within single
quotes, so that no special characters would be interpreted:

$cgi_code = '#!/usr/local/bin/perl
$ENV{"PATH"} .=
":/usr/local/bin:/usr/local/lib/perl";
require "/path/to/cgi-bin/cgi.pl";';

print NEW_CGI_SCRIPT $cgi_code;

Then more code that I needed interpreted, I put in double quotes, backslashing the stuff I didn't want interpreted - it looks pretty ugly, but it does the job:

print NEW_CGI_SCRIPT "\$filename = \"$filepath_I_need_interpreted\";";
           
So then in NEW_CGI_SCRIPT I would end up with:
#!/usr/local/bin/perl
$ENV{"PATH"} .= ":/usr/local/bin:/usr/local/lib/perl";
require "/path/to/cgi-bin/cgi.pl";
$filename = "/path/to/file";

0
 
LVL 16

Accepted Solution

by:
maneshr earned 300 total points
ID: 2645672
glad to know that your problem was solved. :)
0

Featured Post

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I've just discovered very important differences between Windows an Unix formats in Perl,at least 5.xx.. MOST IMPORTANT: Use Unix file format while saving Your script. otherwise it will have ^M s or smth likely weird in the EOL, Then DO NOT use m…
A year or so back I was asked to have a play with MongoDB; within half an hour I had downloaded (http://www.mongodb.org/downloads),  installed and started the daemon, and had a console window open. After an hour or two of playing at the command …
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
Six Sigma Control Plans
Suggested Courses

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question