Schrift
[thread]291[/thread]

No Parsed Header / NPH: Direkte Ausgabe eines CGIs

Leser: 2


<< >> 6 Einträge, 1 Seite
Gast Gast
 2004-06-12 02:35
#2856 #2856
Hallo!

Ich versuche verzweifelt ein nph-skript zu schreiben.
D.h. ich möchte, das das Script während seiner Ausführung,
Daten(Text, Html, JavaScript) in das Browserfenster ausgibt.
Ich habe mir schon verschiedene Beispiele angeschaut, die lediglich ein $|=1(habe auch schon $=1 gesehen) am Anfang ihres Scriptes eingefügt haben, und die so in Verbindung mit JavaScript zB Statusbars realisiert haben.
In meinem Script ändert das Hinzufügen von $|=1 nichts, und $=1 bringt mein Script zum Abbruch.
Benutze Windows Xp und Apache 1.3 zum testen.

Reicht $|=1 generell aus oder ist CGI:Push zwingend? Das soll ja nur mit dem Netscape Navigator funktionieren.

Gruss
Crian
 2004-06-12 03:20
#2857 #2857
User since
2003-08-04
5871 Artikel
ModeratorIn
[Homepage]
user image
Ich hab gestern gerade was zu nph-Skripts gelesen ...

... wichtig ist so weit ich das verstanden habe, dass Du nicht nur den normalen Header sendest, sondern etwas in dieser Art:

Code: (dl )
1
2
3
print "$ENV{SERVER_PROTOCOL} 200 OK\n",
"Server: $ENV{SERVER_SOFTWARE}\n",
"Content-type: text/plain\n\n";


$| = 1; brauchst Du trotzdem.

Ich hoffe, das hilft Dir weiter...
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
esskar
 2004-06-12 04:30
#2858 #2858
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
nph heißt, dass apache nicht für dich den header setzt, sondern du selbst das machst...
dabei lohnt es sich ggf. auch, wenn du die daten zuerst sammelst und dann sendest, damit du die Content-Length bestimmen kannst - besser wäre natürlich, es als Transfer-Encoding: chunked zu senden...

du kannst auch direkt CGI oder CGI::Simple nehmen http://search.cpan.org/~jfreem....SCRIPTS\n\n

<!--EDIT|esskar|1087000274-->
[E|B]
 2004-06-12 11:10
#2859 #2859
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Quote
Ich habe mir schon verschiedene Beispiele angeschaut, die lediglich ein $|=1(habe auch schon $=1 gesehen) am Anfang ihres Scriptes eingefügt haben


$ = 1 gibt es nicht.
$| = 1 ist schon korrekt.

Du kannst das ganze auch mit Server Push machen. (Chatlösung) CGI::Push wird dir da weiter helfen.
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
Gast Gast
 2004-06-12 12:27
#2860 #2860
Der Dateiname muss mit nph beginnen ...
also z.B.
nph-myscript.pl
jphk
 2004-06-12 19:01
#2861 #2861
User since
2004-04-24
2 Artikel
BenutzerIn
[default_avatar]
Hallo!

Danke für eure zahlreichen Antworten.
Ich habe das Problem gefunden!
Es lag an meiner Apache Version(1.3),
jetzt habe ich 2.x und es funktioniert prima!
CGI:Push hatte ich übrings ebenfalls in Erwägung gezogen jedoch funktioniert es nur mit Netscape.
<< >> 6 Einträge, 1 Seite



View all threads created 2004-06-12 02:35.