Schrift
[thread]6428[/thread]

Print



<< |< 1 2 >| >> 15 Einträge, 2 Seiten
jan10001
 2004-07-24 12:48
#84892 #84892
User since
2003-08-14
962 Artikel
BenutzerIn
[default_avatar]
Besteht eigentlich die Möglichkeit in einer Printanweisung den Contentyp zu ändern?
BungeeBug
 2004-07-24 13:26
#84893 #84893
User since
2004-03-16
54 Artikel
BenutzerIn
[default_avatar]
Hi,

sicher ...
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
print << EOF;
Content-Type: html/test\n\n
<html>
<head>
</head>
<body>
<h1>Test Seite</h1>
</body>
</html>
EOF


=== CODE GEÄNDERT .... Da fehlte ein "EOF" am Ende! ===


Sollte so klappen.\n\n

<!--EDIT|BungeeBug|1090679371-->
MfG
BungeeBug
Ishka
 2004-07-24 13:45
#84894 #84894
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
So klappt gar nix, das gibt nämlich nen Syntaxfehler ;)

ok, ich wüßte auch nicht, wie man das mit nem HERE-Dokument macht, weil ich die nie verwende.

Code: (dl )
1
2
3
4
5
6
7
print "Content-Type: html/test\n\n<html>
<head>
</head>
<body>
<h1>Test Seite</h1>
</body>
</html>"


macht das, was BungeeBug machen wollte. Ich schreib desswegen die \n immer explizit, weil ich da mal nach nem Zeilenumbruch im Header n Leerzeichen hatte und ich _diesen_ Fehler nie wieder debuggen möchte..

Allerdings: Conten-Type _ändern_ dürfte schwer gehen, schließlich ist er fest, sobald der Header fertig ausgegeben wurde.

Und versuch das nächste Mal das passende Forum zu finden, das schaut mir mehr nach ner CGI-Frage aus ;)
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
jan10001
 2004-07-24 15:06
#84895 #84895
User since
2003-08-14
962 Artikel
BenutzerIn
[default_avatar]
@Ishka
Quote
Und versuch das nächste Mal das passende Forum zu finden, das schaut mir mehr nach ner CGI-Frage aus

Geht klar. :) Ich glaube ich habe ne Lösung für mein Problem.
BungeeBug
 2004-07-24 16:43
#84896 #84896
User since
2004-03-16
54 Artikel
BenutzerIn
[default_avatar]
Hab meinen Code berichtigt! So sollte er das tuen was er soll. Ausserdem sind Here-Dokumente garnicht schlecht ... scheint mir zumindest so :)
MfG
BungeeBug
betterworld
 2004-07-24 16:47
#84897 #84897
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
[quote=BungeeBug,24.07.2004, 14:43]Hab meinen Code berichtigt! So sollte er das tuen was er soll. Ausserdem sind Here-Dokumente garnicht schlecht ... scheint mir zumindest so :)[/quote]
Hinter dem Content-Type muss das Semikolon weg und dafuer noch ein weiterer Zeilenumbruch hinein.
BungeeBug
 2004-07-24 18:30
#84898 #84898
User since
2004-03-16
54 Artikel
BenutzerIn
[default_avatar]
Sorry, leigt aber am Forum, dass anscheinent Versucht den Code umzusetzen.
MfG
BungeeBug
betterworld
 2004-07-24 18:37
#84899 #84899
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Oh ja, das gute alte Perl-Highlighting. Sorry, daran hatte ich nicht gedacht.
Strat
 2004-07-25 00:51
#84900 #84900
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
HERE-Dokumente finde ich persoenlich nicht so toll, weil es da ein paar schwierig zu sehende Fallen gibt:
der ende-TAG (z.B: EOF) muss direkt davor und dahinter einen Zeilenumbruch enthalten (der zweite wird manchmal vergessen, wenn es das letzte Statement der Datei ist, und der Editor nicht automatisch einen Zeilenumbruch hinzufuegt (sowas will ich auch von einem Editor nicht), und Leerzeichen danach sind auch kritisch...
Ich habe mal meinen Emacs so umkonfiguriert, dass er Leerzeichen am Zeilenende mit rotem Hintergrund anzeigt... finde ich ganz fein...

Alternativen:
Code: (dl )
1
2
3
4
print qq~Content-type: text/html\n\n~;
print qq~<html>
 <head> ...
~;

Besser: gleich CGI (oder ein aehnliches Modul) verwenden:
Code: (dl )
1
2
3
4
use CGI ();
my $cgi = CGI->new();
print $cgi->header(-type => 'text/html'), $cgi->start_html("testseite");
...

oder besser noch ein Templating System verwenden (mehr als ein paar Zeilen HTML inmitten von Perl-Code finde ich nicht so toll, und fast immer ist die Trennung von Code und GUI (=HTML, CSS) sinnvoll und erleichtert zumindest auf lange Sicht den Aenderungs- und Wartungsaufwand erheblich)\n\n

<!--EDIT|Strat|1090702466-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Strat
 2004-07-25 00:53
#84901 #84901
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
btw: die Antwort auf deine erste Frage:
ja, z.B. mit
Code: (dl )
1
2
3
4
5
6
7
8
9
#! /usr/bin/perl
use warnings;
use strict;
use CGI ();
use CGI::Carp qw(fatalsToBrowser warningsToBrowser); # in Produktion auskommentieren

my $cgi = CGI->new();
print $cgi->header(-type => 'image/gif');
...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< |< 1 2 >| >> 15 Einträge, 2 Seiten



View all threads created 2004-07-24 12:48.