[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Specifically, QUERY_STRING (WAS: RE: Pi3Perl - how to pass
Note that Pi3Perl is alpha, and it might be easier just to use
CGI, but if you really want to use Pi3Perl, then....
>
> >
> > Toni Harbaugh-Blackford schrieb:
> > >
> > > Folks-
> > >
> > > I just picked the 'development' versions of Pi3Web and Pi3Perl, and
> > > implemented the sample hello.pl program to test the basic setup. But
> > ^^^^
> > Hi, first a question (Sorry): Is there a sample configuration file shipped
> > with Pi3Perl? I just started with it and in vain looked for a working sample
> > configuration. Did I overlook something?
>
> No, I was not clear. I just read the top of hello.pl and tried the suggestion
> to add a 'Handle Pi3WebPerl...' line. I had to modify it with a 'Condition',
> though, otherwise *all* my files ended up saying 'Hello, World'. ;-D
>
> >
> > > now I would like to be able to access a Pi3Perl script's environment
> > > via %ENV, and with the sample setup no environment variables are passed.
> > ^^^^
> > I'm also very new with Pi3Perl. So far as I know the embedded Perl interpreter
> > means that you can access the PIAPI's directly. But I think that you can use
> > the example how to access server-variables (the common CGI-environment is just
> > copy of selected server variables). When you look into the auth.pl example,
> > you'll find how to lookup the field "Authorization" in the request-database.
> > Some more additional info you'll find in the server documentation too
> > (http://localhost/pidocs/)
> >
>
> Ok, but how do I get the equivalent of the CGI 'QUERY_STRING' variable from
> the request-database? I am not familiar with the format of the HTTP request
> header; which header line contains this information? Basically, what string
> do I pass to PIDB_lookup instead of "Authorization"?
^^^^
You would use "QueryString", and the DB type is 'string' (rfc822 is
only use to store headers to and from the browser), i.e.
my( $qs );
Pi3::PIDB_lookup( $qs, $request_db, &Pi3::PIDBTYPE_STRING, "QueryString",
&Pi3::PIDBFLAG_NONE );
# $qs now contains the query string for this request.
>
> > >
> > > Does someone have a Config file example for passing the environment to a
> > > Pi3Perl script? If not, does the 'Pi3WebPerl' object support parameters
> > > like "IncludeParentsEnvironment", "EnvironmentSize", "Variable", etc.,
> > > as in the 'StandardCGI' object description?
> > ^^^^
> >Don't know the configuration of the Pi3WebPerl-object at this time, sorry.
> >But I think this is not your current problem. I think Pi3Perl needs another
> >approach than you got used to with standard CGI. (Correct English?)
^^^^
You can read 'configuration' values for the Pi3WebPerl handler - see
the example auth.pl where $AuthFile and $Realm are read from the configuration
file config.pi3
>
> Ok, I think I understand now. Can someone point me to a good description
> of how to bread down HTTP request-headers in terms of CGI?
^^^^
Not sure I get the question, let me know. I've attached an HTML
dump of variables and types that can be used with PIDB_lookup
at the end of this message. The CGI handler uses PIDB_lookup to
create the environment block. The example is the output from
a test of features.pi3.
Later,
John
Pi3Expressions - DB Dump
Connection DB
Request DB
Response DB
Host DB
--------------------------------------------------------------------------------
Dump of Connection DB dblookup(connection,...)
Type Variable Value
String RemoteAddr 127.0.0.1
String RemoteHost localhost
String LocalAddr 127.0.0.1
Opaque RecvTimeout 60
Opaque SendTimeout 45
Opaque KeepOpen 1
Index
--------------------------------------------------------------------------------
Dump of Request DB dblookup(request,...)
Type Variable Value
String CLF GET /Pi3Expressions/dummy+file/path+info?1,2 HTTP/1.1
String Method GET
String URI /Pi3Expressions/dummy+file/path+info
String QueryString 1,2
String Protocol HTTP/1.1
Rfc822 Accept application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Rfc822 Referer http://localhost/pidocs/Features/
Rfc822 Accept-Language en-us
Rfc822 Accept-Encoding gzip, deflate
Rfc822 User-Agent Mozilla/4.0 (compatible; MSIE 4.01; Windows NT)
Rfc822 Host localhost
Rfc822 Connection Keep-Alive
Opaque Method 1
Opaque Protocol 3
Index
--------------------------------------------------------------------------------
Dump of Response DB dblookup(response,...)
Type Variable Value
String Path C:\Pi3Web\**internal**\dummy+file
String PathInfo /path+info
String PathTranslated C:\Pi3Web\WebRoot\path+info
String ScriptName /Pi3Expressions/dummy+file
String ObjectMap Pi3Expr
Index
--------------------------------------------------------------------------------
Dump of Host DB dblookup(host,...)
Type Variable Value
Rfc822 ObjectName MainVirtualHostInformation
Rfc822 Administrator webmaster@localhost
Rfc822 HostName localhost
Index
--------------------------------------------------------------------------------