Hi,
ich habe eine HTML-Seite mit einem Formular erstellt, das ausgefüllte Formular schicke ich dann an ein Perlskript. Dieses Perlskript erstellt daraus eine HTML-Seite. Jetzt möchte ich noch einen Button, mit dem ich diese Seite direkt in einem Verzeichnis abspeichern kann. Ich weiß allerdings leider nicht, wie ich die gesamte HTML-Seite einlesen kann. Darüber hinaus sollte die neue gespeicherte HTML-Datei noch eine Nummer bekommen. Diese sollte dynamisch erzeugt werden. Und zwar so, dass die Nummer immer um eins hoch gezählt wird.
Wenn sich schon 6 Dateien in dem Verzeichnis befinden, dann sollte die neu gespeicherte Datei so gespeichert werden. 00007.html usw.
Aber das Abspeichern ist erst einmal das Wichtigste.
Besten Dank schon mal für Eure Tipps.
Gruß
Glen
User since
2003-08-04
1706
Artikel
HausmeisterIn
Du meinst auf dem Client abspeichern? Das wird ein hartes brot und ich würde solche Seiten meiden die auf meinen PC zugreifen können. Außerdem bist du damit sehr der Browserhersteller abhängig. Glaub wer das einigemaßen kann ist der IE mit seinem ActiveX.
Oder meinst du Server-gespeichert?
Gruß Alex
User since
2004-07-04
8
Artikel
BenutzerIn
Sorry, hatte ich vergessen zu erwähnen. Die Dateien sollen auf dem Server gespeichert werden.
User since
2003-08-04
7321
Artikel
ModeratorIn
okay...
ich nehme an, dass du die html-seite momentan einfach generiert ausgibst, anstatt dir einen string zu bauen und diesen dann auszugeben
also z.b. so
sub show_html
{
print "<html>\n<head></head>\n";
print "<body></body>\n";
print "</html>\n";
}
schreib das ganze so um
sub gen_html
{
my $html = "";
$html .= "<html>\n<head></head>\n";
$html .= "<body></body>\n";
$html .= "</html>\n";
return $html;
}
sub show_html
{
print &gen_html();
}
und zum speichern machst du es so
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
sub count_files
{
my ($folder) = @_;
return -1 unless -d $folder;
my $count = 0;
my $dir;
if(opendir($dir, $folder))
{
while(my $entry = readdir($dir))
{
next if $entry =~ m!^\.\.?$!;
$count++ if -f "$folder/$entry";
}
closedir($dir);
}
else { $count = -1; }
return $count;
}
sub save_html
{
my ($folder) = @_;
$folder =~ s!\\!/!g;
$folder =~ s!/$!!;
my $count = &count_files($folder);
die "Could not access $folder" if $count < 0;
my $filename = sprintf("%s/%08i.html", $folder, ++$count);
my $file;
open($file, "> $filename") or die "Could not create $filename";
print $file &gen_html();
close $file;
1;
}
habs nid getestet; aber könnte so gehen!
User since
2003-08-04
14371
Artikel
ModeratorIn
Das würde die Seite aber schon bei der Erstellung speichern... Wenn ich es richtig verstanden habe, soll die Seite aber nur bei Bestätigung (über einen Button) gespeichert werden... hierfür müsste man den HTML-Quelltext in ein Hidden-Field packen... und mit dem Button ein Formular, das sonst nur noch dieses Hidden-Field enthält abschicken...
User since
2004-07-04
8
Artikel
BenutzerIn
Hi,
vielen Dank für Eure Antworten.
http://board.perl-community.de/iB_html/non-cgi/Ski...
Dann werd ich mich jetzt mal hinsetzen und testen.
Gruß
Glen\n\n
<!--EDIT|Glen|1106752763-->