Schrift
[thread]714[/thread]

Aufruf im Browser



<< |< 1 2 >| >> 13 Einträge, 2 Seiten
Gast Gast
 2006-04-24 13:27
#7410 #7410
Hiho

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/perl -w

use CGI;
use CGI::Carp qw(fatalsToBrowser);
$cgi = new CGI;

$links = '/SAN/content/cgi-bin/links';
open (INFO, $links);
@lines = <INFO>;
close (INFO);
foreach $zeile (@lines)
{
print $cgi->header('text/plain'), "$zeile\n\n";


Also das Modul liest was von nem File ein und soll das dann halt im Browser ausgeben. Frage und zwar wie krieg ich es eigentlich hin das ein CGI script im Browser aufgerufen wird also nicht einfach ausgeführt wird innerhalb der Machine sondern halt als Seite ausgegeben wird oder wie ich es aufrufe o.O

Vielleicht noch was dazu ich hab alles auf einer VMware laufen

thx for help wenn welche kommt :P
nepos
 2006-04-24 13:35
#7411 #7411
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ich glaube das Thema wurde hier schon mehrmals diskutiert. Wenn du die Ausgabe direkt im Browser haben willst, wirst du um nen Webserver nicht rumkommen. Muss ja nicht gleich der Apache sein, gibt da auch kleinere Varianten.
Ansonsten kannst du die Ausgabe vom Skript per Konsole natuerlich auch in eine Datei umleiten und diese dann oeffnen.
Oder haben wir uns da nun falsch verstanden?
haijp
 2006-04-24 13:41
#7412 #7412
User since
2006-04-11
14 Artikel
BenutzerIn
[default_avatar]
Webserver ist vorhanden (apache)
nepos
 2006-04-24 14:56
#7413 #7413
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Naja, dann musst du dein Skript eigentlich nur in das cgi-bin Verzeichnis packen und ausfuehrbar machen.
Alternativ kannst du natuerlich auch das Verzeichnis, in dem dein Skript liegt entsprechend im Apachen einbinden und die Ausfuehrung von CGI-Skripten dort erlauben.
Ach ja, und du solltest den Header vor der for-Schleife ausgeben, einmal reicht ;)
Hab das Skript mal ein wenig angepasst:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/perl -w

use CGI;
use CGI::Carp qw(fatalsToBrowser);
$cgi = new CGI;

$links = '/SAN/content/cgi-bin/links';  
open (INFO, '<', $links)
  or die "Fehler beim Öffnen von $links: $!\n";                    

print $cgi->header('text/plain');
while (my $zeile = <INFO>) {
  print $zeile;
}
close (INFO);                          

Zum einen reicht es, wenn du die Datei zum Lesen aufmachst. Dabei wird nun auch ein eventueller Fehler abgefangen (das or die...).
Der Header wird nun vor der Schleife einmal ausgegeben.
Dann wird in der while-Schleife die Datei wirklich nur zeilenweise gelesen, ist glaube ich besser, als die Datei erstmal komplett in den Speicher zu holen und dann auszugeben. Das "\n\n" bei der Ausgabe hab ich auch mal weggelassen, ich denke, die Datei hat schon Zeilenumbrueche, die du nicht noch vermehren willst oder?
renee
 2006-04-24 16:18
#7414 #7414
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Bitte Wiki:use strict benutzen! Und - wie nepos schon gesagt hat - auch Fehler abfangen!

Und wie man sich eine Testumgebung baut, steht auch in einem Wiki:Artikel. Und wenn es dann noch nicht funktioniert und Du eine 500er Fehlermeldung (Internal Server Error) bekommst, hilft Dir vielleicht dieser Wiki:Artikel.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
haijp
 2006-04-24 17:07
#7415 #7415
User since
2006-04-11
14 Artikel
BenutzerIn
[default_avatar]
hmmm ok und wie macht man jetzt das es wirklich links werden?

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/perl -w

use CGI;
use CGI::Carp qw(fatalsToBrowser);
$cgi = new CGI;

$links = '/SAN/content/cgi-bin/links';
open (INFO, '<', $links)
or die "Fehler beim Ãfnen von $links: $! ";

print $cgi->header('text/plain');
while (my $zeile = <INFO>) {
$cgi->a({-href => '$zeile'},'Link auf selfhtml.org')),
}
close (INFO);


So gehts nämlich leider nicht :(
renee
 2006-04-24 17:21
#7416 #7416
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
$cgi->a({-href => $zeile},'Link auf selfhtml.org')), # ohne die single-quotes um $zeile


Und mach noch ein chomp $zeile bevor Du den Link erstellst...

Und:
Quote
Bitte Wiki:use strict benutzen! Und - wie nepos schon gesagt hat - auch Fehler abfangen!

Und wie man sich eine Testumgebung baut, steht auch in einem Wiki:Artikel. Und wenn es dann noch nicht funktioniert und Du eine 500er Fehlermeldung (Internal Server Error) bekommst, hilft Dir vielleicht dieser Wiki:Artikel.
\n\n

<!--EDIT|renee|1145884946-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
GwenDragon
 2006-04-24 17:42
#7417 #7417
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
[quote=haijp,24.04.2006, 15:07]hmmm ok und wie macht man jetzt das es wirklich links werden?

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/perl -w

use CGI;
use CGI::Carp qw(fatalsToBrowser);
$cgi = new CGI;

$links = '/SAN/content/cgi-bin/links';
open (INFO, '<', $links)
or die "Fehler beim Ãfnen von $links: $! ";

print $cgi->header('text/plain');
while (my $zeile = <INFO>) {
$cgi->a({-href => '$zeile'},'Link auf selfhtml.org')),
}
close (INFO);


So gehts nämlich leider nicht :([/quote]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/perl 

use strict;
use warnings;

use CGI qw( :all );
use CGI::Carp qw(fatalsToBrowser);
my $cgi = new CGI;

my $links = '/SAN/content/cgi-bin/links';
open (INFO, '<', $links)
 or die "Fehler beim Oefnen von $links: $! ";

print $cgi->header('text/html'); # ! nicht /text/plain
print $cgi->start_html();
while (my $zeile = <INFO>) {
 print $cgi->a({-href => $zeile},'Link auf selfhtml.org');
}
close (INFO);
print $cgi->end_html();
1;
' bei $zeile gelöscht\n\n

<!--EDIT|GwenDragon|1145887641-->
renee
 2006-04-24 17:52
#7418 #7418
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@GwenDragon: Auch Du hast Den Fehler drin, das Du '$zeile' (Man beachte die Single-Quotes) schreibst!

(Und ich hatte den falschen Header übersehen ;) )\n\n

<!--EDIT|renee|1145886774-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
GwenDragon
 2006-04-24 18:07
#7419 #7419
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2006-04-24 13:27.