Schrift
[thread]631[/thread]

Hilfe bei Website mit Perl/CGI/XML benötigt! (Seite 5)

Leser: 1


<< |< 1 2 3 4 5 6 >| >> 58 Einträge, 6 Seiten
wusel81
 2006-01-03 19:24
#6390 #6390
User since
2005-12-20
27 Artikel
BenutzerIn
[default_avatar]
@steffenw: Okay nun scheint das wenigstens schonmal zu funzen, aber es kommt jetzt der Fehler:
syntax error at D:/xampp/htdocs/irland.cgi line 6, near "_ _ "
Execution of D:/xampp/htdocs/irland.cgi aborted due to compilation errors.

Okay, klar das mit dem umschließendem tag leuchtet ein. Dann müsste ich den Wert "text" doch aber an $textname zurückgeben können? Nur wie ?\n\n

<!--EDIT|wusel81|1136309671-->
esskar
 2006-01-03 19:40
#6391 #6391
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Code: (dl )
1
2
3
4
5
6
7
$id = "geschichte";
$id2 = "geschichte";
my $textname = "";
if ($id eq $id2)
{
$textname = "text";
}
steffenw
 2006-01-03 19:40
#6392 #6392
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
Schrieb ich doch, _ _ WARN _ _, die Leerzeichen, also gesperrt geschrieben ist das nur für das Forum, sonst verschluckt es das alles.
Das ist nur zum Entwickeln, produktiv kommentiere das aus. Im Buch steht das unter Signalhandler.\n\n

<!--EDIT|steffenw|1136310348-->
$SIG{USER} = sub {love 'Perl' or die};
wusel81
 2006-01-03 19:44
#6393 #6393
User since
2005-12-20
27 Artikel
BenutzerIn
[default_avatar]
@esskar: jup des funzt wenn man $id und $id2 auch mit my deklariert.

@steffenw: Alles klar kappiert... die Leerzeichen müssen weg heißt das :p


Bleibt jetzt nur noch das eine Problem mit den variablen inhalten wenn man auf nen link klickt...\n\n

<!--EDIT|wusel81|1136311013-->
wusel81
 2006-01-24 18:07
#6394 #6394
User since
2005-12-20
27 Artikel
BenutzerIn
[default_avatar]
Hallo nochmal,

also ich habs supr am Laufen aufm xammp, aber aufm webserver (mein eigener und der von der fachhochschule) will es nicht!
Module sind installiert.

meine cgi datei liegt im cg-bin verzeichnis, der rest ein verzeichnis dadrüber.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/usr/bin/perl
use strict;
use warnings;
use HTML::Template;
use CGI::Carp qw(fatalsToBrowser);# Zeigt die Fehler an
$SIG{} = sub {die 'WARN: '.shift}; # Sorgt dafür, daß Warnungen auch als Fehler im Browser angezeigt werden.

print "Content-type: text/html\n\n";

# Hier wird das Template geoeffnet
my $template = HTML::Template->new(filename => '../irland.tmpl');

# Die id wird aus der URL gelesen
my $id = $ENV{'QUERY_STRING'};
chomp ($id);

# Die Textdatei wird geoeffnet und an die Variable $text bzw. danach an TEXT uebergeben
open(TEXTDATEI, "../$id.txt") or die "Can't open $id.txt: $!";
my $text = join '', <TEXTDATEI>; # Der join Befehl liest alle Zeilen der Datei ein
close(TEXTDATEI);
$template->param(TEXT => $text); # evtl. use Encode::Entities; und encode_entities $text, denn $text kann HTML enthalten.

# Die Flash Datei wird nur auf der Menschen Seite geladen
my $flash = "";
if ($id eq "menschen")
{
$flash = "flash";
open(FLASHCODE, "../$flash.txt") or die "Can't open $flash.txt: $!";
my $flash = join '', <FLASHCODE>;
close(FLASHCODE);
$template->param(FLASH => $flash);
}

# Die Map fuer die Landkarte wird nur auf der Land Seite geladen
$template->param(USEMAP => ' usemap="mapkarte" ');

# Gleichbleibender Bildpfad fuer die Navigation
my $navi = '/images/navi.gif';
$template->param(NAVI => $navi);

# Wechselnder Bildpfad fuer den Header
my $zufallszahl = int(rand(4) + 1); # +1 damit ganze Zahlen ermittelt werden
my $header = '/images/header' . $zufallszahl . '.jpg';
$template->param(HEADER => $header);

# Variable Bildpfade Titel und Bilder
my $bild = '/images/'.$id.'.gif';
my $titel = '/images/titel_'.$id.'.gif';
$template->param(BILD => $bild);
$template->param(TITEL => $titel);

# Variable ALT Texte fuer die Bilder
my $alt = '../'.$id.'_alt.txt';
open(ALTTEXT, '../'.$id.'_alt.txt') or die "Can't open $id.'_alt.txt': $!";
my $alt = join '', <ALTTEXT>;
close(ALTTEXT);
$template->param(ALT => $alt);

# Gleichbleibende Linkpfade
my $link1 = '/irland.cgi?home';
my $link2 = '/irland.cgi?land';
my $link3 = '/irland.cgi?geschichte';
my $link4 = '/irland.cgi?menschen';
my $link5 = '/irland.cgi?politik';
$template->param(LINK1 => $link1);
$template->param(LINK2 => $link2);
$template->param(LINK3 => $link3);
$template->param(LINK4 => $link4);
$template->param(LINK5 => $link5);

print $template->output();


Ich hab wirklich schon alle probiert und gesucht aber es will einfach nicht klappen!

Woran kanns leigen ?
Bekomme immer den Fehler "Premature end of script headers: irland.cgi"
renee
 2006-01-25 01:06
#6395 #6395
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Kannst Du mal versuchen, das CGI-Skript auf der Konsole auszufuehren??

Uebrigens ist hier eine potentielle Sicherheitsluecke:
Code: (dl )
1
2
3
4
5
6
# Die id wird aus der URL gelesen 
my $id = $ENV{'QUERY_STRING'};
chomp ($id);

# Die Textdatei wird geoeffnet und an die Variable $text bzw. danach an TEXT uebergeben
open(TEXTDATEI, "../$id.txt") or die "Can't open $id.txt: $!";


Lies dazu am Besten mal htWiki:Artikel ueber CGI und Sicherheit durch

Und statt:$SIG{} = sub {die 'WARN: '.shift}; # Sorgt dafür, daß Warnungen auch als Fehler im Browser angezeigt werden.
wuerde ich das hier verwenden:
Code: (dl )
1
2
3
4
use CGI::Carp qw(fatalsToBrowser warningsToBrowser); # wuerde ich noch vor das use HTML::Template schreiben...

print "Content-type: text/html\n\n";
warningsToBrowser(1);
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/
renee
 2006-01-25 01:20
#6396 #6396
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Und benutze noch die 3-Parameter-Form von open:
Code: (dl )
open(ALTTEXT, "<",'../'.$id.'_alt.txt') or die "Can't open $id.'_alt.txt': $!"; 
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/
wusel81
 2006-01-25 09:38
#6397 #6397
User since
2005-12-20
27 Artikel
BenutzerIn
[default_avatar]
Na die Sachen hab ich ja hier aus'm Thread.
Werde das anpassen.

Auf der Konsole kann ich es erst heute abend probieren da ich auf der arbeit bin.

Was sagt das "<", bei der 3-Parameterform aus ?
esskar
 2006-01-25 10:20
#6398 #6398
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=wusel81,25.01.2006, 08:38]Was sagt das "<", bei der 3-Parameterform aus ?[/quote]
perldoc -f open
wusel81
 2006-01-25 10:52
#6399 #6399
User since
2005-12-20
27 Artikel
BenutzerIn
[default_avatar]
Also im Logfile steht folgendes:

[Wed Jan 25 09:37:39 2006] [error] [client ip] failed to open log file
[Wed Jan 25 09:37:39 2006] [error] [client ip] fopen: Permission denied
[Wed Jan 25 09:37:39 2006] [error] [client ip] Premature end of script headers:
irland.cgi
<< |< 1 2 3 4 5 6 >| >> 58 Einträge, 6 Seiten



View all threads created 2005-12-20 19:44.