Schrift
[thread]10657[/thread]

HTML Seite mit Links mittels Perl-Module erstellen (Seite 3)

Leser: 6


<< |< 1 2 3 4 5 6 >| >> 54 Einträge, 6 Seiten
rooky
 2007-10-26 23:02
#101435 #101435
User since
2007-10-25
38 Artikel
BenutzerIn
[default_avatar]
Ok ich lasse mir mehr Zeit mit der Antwort
rooky
 2007-10-27 06:13
#101436 #101436
User since
2007-10-25
38 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen, also ich habe apache vollstandig deinstalliert und wieder installiert. Jetzt laüft das Skript aber nur unter
http://localhost/~user/cgi-bin/skript.pl
unter http://localhost/cgi-bin/skript.pl
bekomme ich die Fehlermeldung

Zugriff verweigert!

Der Zugriff auf das angeforderte Objekt ist nicht möglich. Entweder kann es vom Server nicht gelesen werden oder es ist zugriffsgeschützt.

Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.
Error 403
localhost
Sat Oct 27 03:52:21 2007
Apache/2.2.3 (Linux/SUSE)

obwohl die Rechte in Ordung sind. Das zweite Problem ist das unter
http://localhost/~user/cgi-bin/skript.pl
bekomme ich zwar die gefundene Pdf-Dateien alsLinks angeboten aber wenn ich auf sie klicke öffnet der Browser(firefox) nicht die Datei ich bekomme nur eine leere Seite.

Danke
renee
 2007-10-27 10:34
#101437 #101437
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Kannst Du die PDFs von Hand im Browser über http://localhost/... aufrufen? Wenn ja, wie sieht die URL aus? Wie sieht die URL in der generierten HTML-Datei aus?
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/
rooky
 2007-10-27 12:48
#101440 #101440
User since
2007-10-25
38 Artikel
BenutzerIn
[default_avatar]
Hallo renee also wenn ich direkt die pdfs über im Browser wie folgt aufrufe
http://localhost/~james/cgi-bin/ws-03-04.pdf funktioniert nicht wenn ich aber eine pdf-Datei im Verzeichnis /srv/www/htdocs anlege kann ich sie im Browser über http://localhost/datei.pdf öffnen
Linuxer
 2007-10-27 14:12
#101441 #101441
User since
2006-01-27
3870 Artikel
HausmeisterIn

user image
"funktioniert nicht" ist keine Fehlerbeschreibung? Was passiert? Welche Fehlermeldung taucht auf?

Wenn die PDFs im cgi-bin-Verzeichnis liegen, kannst Du sie von dort nicht einfach so runterladen. Das Verzeichnis soll doch CGIs enthalten, also wird versucht, das PDF als CGI auszuführen.
Entweder legst Du die CGIs in einem anderen Ordner unter htdocs ab, auf dem keine "Option +ExecCGI" wirkt, oder Du musst ein CGI-Skript schreiben, dass den Download bereitstellt (also Datei lesen und ausgeben)...
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
GwenDragon
 2007-10-27 14:19
#101443 #101443
User since
2005-01-17
14533 Artikel
Admin1
[Homepage]
user image
Ja, logisch. Der Server findet nur Dateien, die innerhalb des Documentroot sind.

Dann du darfst du die Datei nicht mit http:/// öffnen, sondern z. B. file://verzeichnis/wo/die/datei1.pdf
file:// greift auf lokale Dateien zu.
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

rooky
 2007-10-27 15:23
#101454 #101454
User since
2007-10-25
38 Artikel
BenutzerIn
[default_avatar]
Hallo Linuxer, hallo Gwen danke erstmal für die Hinweise. Also das mit mit den PDFs im cgi-bin-Verzeichnis habe ich verstanden und habe die PDFs wieder im Home-Verzeichnis gespeichert /home/user. Das mit dem Dokumentroot habe ich nicht wirkilch verstanden, weil mein soll ja mein Homeverzeichnis nach PDFS duchsuchen also alle datei.pdf im /home/user und sie im Browser als Links zu den PDFs anzeigen. Verstehe nicht warum ich diese PDFs noch im Documentroot bei mir /srv/www/htdocs speichern soll. Mir fehlt hier ein Hintergrundwissen wahrscheinlich.

Danke
rooky
 2007-10-27 15:43
#101456 #101456
User since
2007-10-25
38 Artikel
BenutzerIn
[default_avatar]
Oder gibt es eine spezielle Variable wie $_, @ENV, die den Links zu den PDFs beinhaltet, dass wäre so optimal. So musste man nur diese Variable an das Sript übergeben.
GwenDragon
 2007-10-27 16:01
#101458 #101458
User since
2005-01-17
14533 Artikel
Admin1
[Homepage]
user image
Der Server kann nur Dateien ausliefern, die im Documentroot sind!
Dein Homeverzeichnis ist eben nicht Documentroot.

Vielleicht hilft folgendes abzuändern:

//EDIT:
Zeile 10:
löschen!

Wenn du pfad als Parameter mit dem absoluten Pfad an das CGI-Skript übergibst, dann wird nur da gesucht, ansonsten im HOME-Verzeichnis.
Zeile 12:
statt
Code: (dl )
find( \&wanted, '.' );
dann
Code: (dl )
1
2
3
4
5
#unbedingt kompletten Pfad angeben!
my $cgih = new CGI;
my $suchpfad = $cgih->param("pfad") || $ENV{HOME};
find( \&wanted, $suchpfad ); # im Homeverzeichnis suchen!
print $cgih->header();

Die Angabe eines Pfades als CGI-Parameter ist aber nicht ohne Risiko. Damit können dann alle Dateien in dem Pfad geholt werden!

Zeile 23:
statt
Code: (dl )
push @files, $_ if /\.pdf$/;
dann
Code: (dl )
push @files, "$File::Find::dir/$_" if /\.pdf$/;


Zeile 29:
statt
Code: (dl )
<%LOOP LINKS %><li><a href="<%= HREF ESCAPE=URL %>"><%= TITLE ESCAPE=HTML %></a></li> 
dann
Code: (dl )
<%LOOP LINKS %><li><a href="file://localhost/<%= HREF ESCAPE=URL %>"><%= TITLE ESCAPE=HTML %></a></li> 

Durch das Hinzufügen von file:// wird lokal auf die Dateien zugeriffen.


Wenn du also das CGI so aufrufst:
http://localhost/~user/skript.pl
wird alles in deinem Homeverzeichnis durchsucht!

Wenn du also das CGI so aufrufst:
http://localhost/~user/skript.pl?pfad=/home/user1/...
wird alles in /home/user1/test/docs durchsucht!

//EDIT2: ungetestet
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

rooky
 2007-10-27 16:40
#101460 #101460
User since
2007-10-25
38 Artikel
BenutzerIn
[default_avatar]
Ok Gwen habe verstanden. Das mit
Code: (dl )
<%LOOP LINKS %><li><a href="file://<%= HREF ESCAPE=URL %>"><%= TITLE ESCAPE=HTML %></a></li> 
hat nicht geklappt.
Also mit anderen Worten muss ich entweder alle PDFs in DocumentRoot kopieren oder das Skript gleich DocumentRoot duchsuchen lassen wo die PDFs sich befinden sollten.
<< |< 1 2 3 4 5 6 >| >> 54 Einträge, 6 Seiten



View all threads created 2007-10-25 01:56.