/ Forside / Teknologi / Udvikling / HTML / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
HTML
#NavnPoint
molokyle 11184
Klaudi 5506
bentjuul 3377
severino 2040
smorch 1950
strarup 1525
natmaden 1396
scootergr.. 1320
e.c 1150
10  miritdk 1110
Indlejring af et CGI script
Fra : David List


Dato : 24-05-03 10:13

Hvordan indlejrer man output fra et CGI script i et HTML dokument? Jeg
har prøvet at gøre det på samme måde som hvis indholdet af et parset
HTML dokument skal indlejres, men det virker ikke. Nogen forslag?

Her er hvad jeg gør nu:

--------begynd klip fra HTML dokument-----
Today's quote:<br>
<cite>
<!--#include virtual="/cgi-bin/fortune_embedded.cgi"-->
</cite>
<br>
--------slut klip fra HTML dokument-------

-------begynd CGI script-----------------
#!/usr/bin/perl
use strict;
use warnings;
print "<pre>\n";
print `/usr/bin/fortune`;
print "</pre>\n";
-------slut CGI script------------------

--
Med venlig hilsen / Best regards
David List

 
 
Jens Gyldenkærne Cla~ (24-05-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 24-05-03 10:29

David List skrev:

> Hvordan indlejrer man output fra et CGI script i et HTML
> dokument? Jeg har prøvet at gøre det på samme måde som hvis
> indholdet af et parset HTML dokument skal indlejres, men det
> virker ikke.

*Hvordan* virker det ikke?

Prøv at læse artiklen her: <http://infimum.dk/HTML/hjaelpmig.html>

Hvis din include-linje skal køres skal filtypen være en der
understøtter SSI - fx .shtml
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

David List (24-05-2003)
Kommentar
Fra : David List


Dato : 24-05-03 11:58

On Sat, 24 May 2003 11:28:32 +0200,
Jens Gyldenkærne Clausen <jens@gyros.invalid>
wrote in <Xns938574BCE898Fjcdmfdk@gyrosmod.cybercity.dk>:
> David List skrev:
>
>> Hvordan indlejrer man output fra et CGI script i et HTML
>> dokument? Jeg har prøvet at gøre det på samme måde som hvis
>> indholdet af et parset HTML dokument skal indlejres, men det
>> virker ikke.
>
> *Hvordan* virker det ikke?

Fra server loggen:
[Sat May 24 12:55:07 2003] [error] [client 195.249.94.151] malformed
header from script. Bad header=<pre>: /usr/local/apache\
/cgi-bin/fortune_embedded.cgi
[Sat May 24 12:55:07 2003] [error] [client 195.249.94.151] unable to
include "/cgi-bin/fortune_embedded.cgi" in parsed file \
/usr/local/apache/htdocs/test.html

> Hvis din include-linje skal køres skal filtypen være en der
> understøtter SSI - fx .shtml

Det er også foreløbig blevet løsningen. Jeg genopfrisker indholdet af
en .shtml fil med output fra CGI scriptet hvert minut (som det er nu -
jeg tester blot), og det virker når jeg så #include'er den i HTML
dokumentet:

http://www.davidlist.dk/test.html

--
Med venlig hilsen / Best regards
David List

Henrik Stidsen (24-05-2003)
Kommentar
Fra : Henrik Stidsen


Dato : 24-05-03 14:49

David List <david@davidlist.dk> wrote in
news:i8jnab-fp4.ln@davidlist.dk

> [Sat May 24 12:55:07 2003] [error] [client 195.249.94.151]
> malformed header from script. Bad header=<pre>:
> /usr/local/apache\ /cgi-bin/fortune_embedded.cgi
> [Sat May 24 12:55:07 2003] [error] [client 195.249.94.151]
> unable to include "/cgi-bin/fortune_embedded.cgi" in parsed file
> \ /usr/local/apache/htdocs/test.html

Det er jo en fejl i selve CGI scriptet, det er ikke SSI tingen den er
gal med. Scriptet sender en forkert header, ser ud som om den sender
HTML med det samme istedet for en header.

--
..: Henrik Stidsen - HS235.dk - http://hs235.dk ::...
"Drømmen om et samlet Europa har ingen mulighed for at
blive virkelighed. Man kan ikke lave omelet af hårdkogte æg."
[Charles De Gaulle]

David List (24-05-2003)
Kommentar
Fra : David List


Dato : 24-05-03 15:47

On Sat, 24 May 2003 13:49:07 +0000 (UTC),
Henrik Stidsen <idontwantnospam@hs235.dk>
wrote in <Xns9385A0F85BCC5HS235DK@130.225.247.90>:

> Det er jo en fejl i selve CGI scriptet, det er ikke SSI tingen den er
> gal med. Scriptet sender en forkert header, ser ud som om den sender
> HTML med det samme istedet for en header.

Det er jo det, scriptet *skal*, hvis jeg ønsker at output fra det skal
indlejres i et HTML dokument.

Som nævnt i en tidligere posting bliver løsningen nok at lade scriptet
generere output til en parset HTML fil og indlejre denne med SSI.

--
Med venlig hilsen / Best regards
David List

Peter Brodersen (24-05-2003)
Kommentar
Fra : Peter Brodersen


Dato : 24-05-03 16:57

On Sat, 24 May 2003 16:47:11 +0200, David List <david@davidlist.dk>
wrote:

>Det er jo det, scriptet *skal*, hvis jeg ønsker at output fra det skal
>indlejres i et HTML dokument.

Nej, med CGI skal du stadigvæk smide en header, fx text/html - også
selvom det ender med bare at være indlejret.

--
- Peter Brodersen

David List (24-05-2003)
Kommentar
Fra : David List


Dato : 24-05-03 19:44

On Sat, 24 May 2003 17:56:43 +0200,
Peter Brodersen <usenet@ter.dk>
wrote in <bao4p4$ghu$1@dknews.tiscali.dk>:
> On Sat, 24 May 2003 16:47:11 +0200, David List <david@davidlist.dk>
> wrote:
>
>>Det er jo det, scriptet *skal*, hvis jeg ønsker at output fra det skal
>>indlejres i et HTML dokument.
>
> Nej, med CGI skal du stadigvæk smide en header, fx text/html - også
> selvom det ender med bare at være indlejret.

Så misforstår du vist hvad jeg vil:

Jeg vil indlejre output fra et CGI script *midt* i et HTML
dokument. Derfor skal der *ikke* være HTTP headers som det første i
dette output.
Det jeg var ude efter var at få samme resultat som SSI #include'ing af
en parset HTML fil i et HTML dokument. Jeg har da aldrig set HTTP
headers i en parset HTML fil hvis indholdet af den skulle optræde
*midt* i et HTML dokument.

Jeg forstår dig sådan at du ville lade et CGI script's output indlede
med HTTP headers for at kunne indlejre dette output midt i et HTML
dokument. Kan du give et fungerende eksempel på dette?

--
Med venlig hilsen / Best regards
David List

Peter Brodersen (24-05-2003)
Kommentar
Fra : Peter Brodersen


Dato : 24-05-03 22:04

On Sat, 24 May 2003 20:44:06 +0200, David List <david@davidlist.dk>
wrote:

>Jeg vil indlejre output fra et CGI script *midt* i et HTML
>dokument. Derfor skal der *ikke* være HTTP headers som det første i
>dette output.

Nej, jeg misforstår det ikke. Du skal stadigvæk i CGI-scriptet angive
en Content-Type. Sådan virker CGI.

De HTTP-headers kommer ikke med i outputtet, når du afvikler scriptet
undervejs.

>Det jeg var ude efter var at få samme resultat som SSI #include'ing af
>en parset HTML fil i et HTML dokument. Jeg har da aldrig set HTTP
>headers i en parset HTML fil hvis indholdet af den skulle optræde
>*midt* i et HTML dokument.

Bare rolig, de kommer heller ikke til at dukke op i outputtet. Men det
er stadigvæk et krav at cgi-scripts for deres eget vedkommende skal
returnere headers.

Prøv nu bare :) Hvis du dog ikke har adgang til at rette i cgi-filen,
kan du i dette tilfælde nok bruge #exec cmd i stedet for, fx:

<!--#exec cmd="/cgi-bin/fortune_embedded.cgi"-->

Et (gammelt) alternativ til #include virtual er så:
<!--#exec cgi="/cgi-bin/fortune_embedded.cgi"-->

--
- Peter Brodersen

David List (25-05-2003)
Kommentar
Fra : David List


Dato : 25-05-03 11:07

On Sat, 24 May 2003 23:04:18 +0200,
Peter Brodersen <usenet@ter.dk>
wrote in <baompr$mp9$1@dknews.tiscali.dk>:

....<snip>...
> Prøv nu bare :) Hvis du dog ikke har adgang til at rette i cgi-filen,
> kan du i dette tilfælde nok bruge #exec cmd i stedet for, fx:
>
><!--#exec cmd="/cgi-bin/fortune_embedded.cgi"-->
>
> Et (gammelt) alternativ til #include virtual er så:
><!--#exec cgi="/cgi-bin/fortune_embedded.cgi"-->

Jeg har nu prøvet med par kombinationer:
Der er to muligheder for #exec option: 'cmd' og 'cgi'. Der er to
muligheder i scriptet: at have HTTP Content-Type header eller
ikke. Det giver fire muligheder.

Med #exec option 'cmd':
Med HTTP Content-Type header: FUNGERER IKKE (1)
Uden HTTP Content-Type header: FUNGERER IKKE (2)
Med #exec option 'cgi':
Med HTTP Content-Type header: FUNGERER KORREKT
Uden HTTP Content-Type header: FUNGERER IKKE (3)

Du har altså ret i at SSI skal have HTTP Content-Type header med i
input når input er noget der skal behandles som CGI.
Har du kendskab til en komplet oversigt over SSI kommandoer og deres
options?
Den SSI HOWTO der følger med Apache manualen er en anelse tyndbenet.


(1) Fra server loggen:
/bin/sh: /cgi-bin/fortune_embedded2.cgi: No such file or directory
(2) Fra server loggen:
/bin/sh: /cgi-bin/fortune_embedded2.cgi: No such file or directory
(3) Fra server loggen:
[Sun May 25 11:57:54 2003] [error] [client 195.249.94.151]
malformed header from script. Bad header=The bigger the theory th\
e bett: /usr/local/apache/cgi-bin/fortune_embedded.cgi

--
Med venlig hilsen / Best regards
David List

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408943
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste