Schrift
[thread]11591[/thread]

FIND::File (Seite 3)

Leser: 2


<< |< 1 2 3 4 >| >> 32 Einträge, 4 Seiten
Alter
 2008-04-08 12:13
#108041 #108041
User since
2008-02-27
67 Artikel
BenutzerIn
[default_avatar]
So es geht nun. Ich hätte es nie geglaubt das ich das mal sage, aber hoch lebe der IE.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!c:\perl\bin\perl.exe
use strict;
use CGI::Carp qw(fatalsToBrowser);
use CGI qw(param);
use File::Find;
print "Content-type: text/html\n\n";
my @erg;
my $i = 1;
my $pfad = "C:/Eigene_Bilder";
find(\&wanted,$pfad);

sub wanted {
push @erg,$File::Find::name if $File::Find::name=~/\.jpg$/i;
}

print "<img src=\"@erg[$i]\" alt=\"Banner\" border=1>";


So sieht der Spass nun aus. Mit Opera und FireFox geht es nicht local sich die Bilder anzeigen zu lassen, aber mit IE.

Vielen Dank an alle die am Thread teilgenommen haben.

Gruß Martin Alter
The only way to survive! Before and after the year 2000, 3000, 4000, ... and tomorrow, too! Linux forever
Alter
 2008-04-08 11:39
#108066 #108066
User since
2008-02-27
67 Artikel
BenutzerIn
[default_avatar]
Also ich habe noch mal was Probiert. Wenn ich http://localhost/Eigene_Bilder/Sonnenuntergang.jpg so die Datei in der Browserzeile eingebe sagt er: Obejkt nicht gefunden. Wenni ich jetzt das so schreibe

Code: (dl )
print "<img src=\"file://localhost/@erg[$i]\" alt=\"Banner\" border=1>";


Funktioniert es im Opera fast. Da kommt zwar der Rahmen des Bildes aber nicht das Bild. Dazu muss ich rechtklick machen und dann Bild öffnen dann kommt es auch. In der Adresszeile wird mir dann das hier angezeigt.
Code: (dl )
file://localhost/C:/Eigene_Bilder/Sonnenuntergang.jpg

Keiner einer was damit Anfangen? Ich könnte verzweifeln, so wenig Code und so ein sch**** problem.

Viele Grüße
The only way to survive! Before and after the year 2000, 3000, 4000, ... and tomorrow, too! Linux forever
GwenDragon
 2008-04-08 12:09
#108068 #108068
User since
2005-01-17
14538 Artikel
Admin1
[Homepage]
user image
Die Bilder liegen aber eben nicht unter DOCUMENT_ROOT des Servers, oder?
Muss es aber, damit der Browser diese laden kann.

file:///C:/ ist der normale Zugriff für lokale Dateien im Dateisystem auf Laufwer C:, nicht für die Webseite.

Deswegen muss du ja file:// nehmen!
die Drachin, Gwendolyn


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

GwenDragon
 2008-04-08 12:19
#108069 #108069
User since
2005-01-17
14538 Artikel
Admin1
[Homepage]
user image
Also bitte, so ein Unsinn, der IE soll nicht hochleben. Nur weil er jeden Unsinn mitmacht.
Wenn du so denkst, dann nimm gleich MS-Basic.
Dem IE ist es völlig egal, welche Fehler du im HTML machst.

Du musst dein Programm richtig schreiben!

Opera und Firefox zeigen eben keine URLs an, die nicht die richtige Syntax haben.
Aißerdem ist es bei den modernen Browsern (zu dem der IE nicht zählt) aus Sicherheitsgründen nicht erlaubt, lokale Inhalte und Webinhalte zu mischen; das tust du aber, indem du sowohl lokale (Dateisystem, protokoll file://) als auch Webinhalte (protokoll http:///) mischt.
die Drachin, Gwendolyn


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

pq
 2008-04-08 12:37
#108070 #108070
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
GwenDragon+2008-04-08 10:19:42--
So ein Unsinn, der IE soll nicht hochleben. Nur weil er jeden Unsinn mitmacht.

Du musst dein Programm richtig schreiben!

ach, die zeiten haben sich geändert.
hat doch tatsächlich jemand gestern opera als crappy bezeichnet, weil er eine
seite aufgrund eines fehlenden geschlossenen tags nicht richtig gerendert
hat. ich dachte, ich hör nicht richtig. früher haben solche leute IE verflucht,
weil der IE so tolerant war. jetzt wo Firefox das auch ist, kanns ja nicht
mehr so schlimm sein. =(
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
GwenDragon
 2008-04-08 12:42
#108071 #108071
User since
2005-01-17
14538 Artikel
Admin1
[Homepage]
user image
Schönes Argument.
Der IE ist auch crappy. Bei fehlender URL im DOCTYPE rendert er komplett falsch.

Aber wenn die Anfänger einfach nichts dazu lernen wollen, bitte. Sollen Sie, dann hat eben ihr Code Frontpage-Niveau. Und geht nur im IE.
Willkommen auf dem Internet-Schrottplatz.

Nehmt am besten den IIS und Internet Explorer 6 mit VBScript. Dann könnt ihr soviel schlampigen Code schreiben wie ihr wollt.

*hmmmpf*

Wir brauchen keine Browser, die mit Müll umgehen können, sondern denkende Leute.
Aber alle wollen den Schrott-Browser von Microsoft nachemiulieren und seine Bugs mitschleppen.
Gute Nacht.

Wenn Perlcode so wie mancherorts HTML geschrieben würde, würde nichts gehen.
die Drachin, Gwendolyn


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

GwenDragon
 2008-04-08 12:54
#108073 #108073
User since
2005-01-17
14538 Artikel
Admin1
[Homepage]
user image
Alter+2008-04-08 10:13:25--
So sieht der Spass nun aus. Mit Opera und FireFox geht es nicht local sich die Bilder anzeigen zu lassen, aber mit IE.

So ein Unfug. Dein Programm geht nur bei Dir richtig und nur in dem einen Fall mit dem IE.
Wenn ich einen anderen Pfad eingebe, dann wird auch bei mir kein Bild im IE angezeigt.
Nimm einfach mal einen Pfad mit Leerzeichen drin!

Aber gut, dur wolltest ja nur eine Lösung für einen speziellen Testfall.
die Drachin, Gwendolyn


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

Alter
 2008-04-08 13:20
#108076 #108076
User since
2008-02-27
67 Artikel
BenutzerIn
[default_avatar]
Klasse Leute ich find das richtig gut. Fluchen könnt ihr wie die Weltmeister über meinen Kommentar. Aber als ich das Problem hatte/habe dann wusstet ihr auch keine Lösung. Das soll jetzt kein Vorwurf sein aber vlt mal ein Gedankenanstoss. Und nur weil ich ein Perl anfänger bin und erst mal zufrieden bin das es überhaupt geht....*kopfschüttel*
The only way to survive! Before and after the year 2000, 3000, 4000, ... and tomorrow, too! Linux forever
GwenDragon
 2008-04-08 14:27
#108079 #108079
User since
2005-01-17
14538 Artikel
Admin1
[Homepage]
user image
@Alter
Kann es sein, dass du meinen Beitrag http://board.perl-community.de/thread/11591/startW... und folgende völlig überlesen/ignoriert hast?
Dort habe ich versucht, dich darauf hinzuweisen, wie es gehört und warum es nicht geht.

Es geht nicht gegen dich persönlich als Anfänger.
Es geht mir darum, dass lasches Programmieren von anderen Leuten im Bereich Web nur Ärger bringt.

Ich möchte mich bei dir entschuldigen, für mein Geschimpfe; dass war nicht richtig, so los zu poltern.


Noch etwas bitte zu deinem Programmierstil:
Es wäre sinnvoll, wenn du beim Programmieren auch use warnings verwendest, dann wäre dir aufgefallen, dass es nicht @erg[$i] heißen darf(jedenfalls bis Perl 6.0 gibt), denn das ist kein Wert eines Arrays sondern ein Slice, sondern $erg[$i], um den Wert zu erhalten.

Zudem, warum willst du denn alles in Zeichenketten escapen? Das ergibt nur irgendwann Probleme.
Es ist auch möglich mit CGI.pm korrektes HTML zu erzeugen.

Es ist auch für Anfänger sinnvoll, Module zu verwenden und sich einen guten Programmierstil anzueignen.
die Drachin, Gwendolyn


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

Alter
 2008-04-08 15:57
#108087 #108087
User since
2008-02-27
67 Artikel
BenutzerIn
[default_avatar]
GwenDragon+2008-04-08 10:09:00--
Die Bilder liegen aber eben nicht unter DOCUMENT_ROOT des Servers, oder?
Muss es aber, damit der Browser diese laden kann.

file:///C:/ ist der normale Zugriff für lokale Dateien im Dateisystem auf Laufwer C:, nicht für die Webseite.

Deswegen muss du ja file:// nehmen!


Also ich halte eigentlich nicht viel von aber kannst du mal den Code zeigen wie du es einbaun würdest damit es geht? Habe jetzt das Modul CGI.pm genommen.


Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!c:\perl\bin\perl.exe
use strict;
use CGI::Carp qw(fatalsToBrowser);
use CGI qw(param);
use File::Find;
#print "Content-type: text/html\n\n";
my $modul_cgi = new CGI;
my @erg;
my $i = 1;
my $pfad = "C:/Eigene_Bilder";
find(\&wanted,$pfad);

sub wanted {
push @erg,$File::Find::name if $File::Find::name=~/\.jpg$/i;
}
print $modul_cgi->header(),
$modul_cgi->start_html("Test"),
$modul_cgi->img({-src=>$erg[0]});
$modul_cgi->end_html();


Und wegen dem "streit" sollte nun geklärt sein oder?!..;)
The only way to survive! Before and after the year 2000, 3000, 4000, ... and tomorrow, too! Linux forever
<< |< 1 2 3 4 >| >> 32 Einträge, 4 Seiten



View all threads created 2008-04-06 21:46.