[ic] Open and 'run' a page from within another page? -- even more info

Mike Heins interchange-users@icdevgroup.org
Thu Nov 7 20:20:01 2002


Quoting Stefan Hornburg (Racke) (racke@linuxia.de):
> On Thu, 7 Nov 2002 12:05:17 -0500
> Mike Heins <mike@perusion.com> wrote:
> > Quoting marc.brevoort (marc.brevoort@armazemdedados.com):
[snip]
> > > If I use [calc] tags instead of [perl] tags, my code breaks as well (Safe: 
> > > Undefined subroutine &Vend::Interpolate::some_sub_i_defined), and the header 
> > > template will still be broken too. It's said that "Using AllowGlobal is never 
> > > necessary", any clues how to solve this the 'right' way?
> > 
> > I assume you are not doing:
> > 
> > 	$Tag->include('somefile');
> > 
> > That would definitely be a no-no.
> 
> Interesting. And why would this work:
> 
>        $Tag->email_mime ({from => 'info@materialboerse.de',
>                      to => $email,
>                      subject => errmsg('Herzlich Willkommen bei materialboerse.de'),
>                      btype => 'text/html',
>                      type => ['application/pdf','application/excel'],
>                      path => [$pdf,'html/xls/mb_tabelle.xls']},
>                    $Tag->include('process/new_company'));
> 
> This is called from a catalog usertag and it works with 4.8.x.

Different situation. It is not in-page embedded Perl and is not
really subject to Safe checking in the same way -- it is pre-compiled
and not interpreted.

There are a number of reasons for this restriction -- trust me that
I have spent many hours on these issues and have done the best I
could with it. 

Of course if someone *really* wants to get into the guts of this and try
to improve it, they can go right ahead. I would ask that they don't ask
me any questions about it, though, until they have put at least 10% of
the weeks of time I have spent on getting IC embedded Perl to the point
that it is at. 8-)

-- 
Mike Heins
Perusion -- Expert Interchange Consulting    http://www.perusion.com/
phone +1.513.523.7621      <mike@perusion.com>

Fast, reliable, cheap.  Pick two and we'll talk.  -- unknown