Leser: 2
8 Einträge, 1 Seite |
1
2
3
4
5
6
7
8
$Rezeptdatei = "./Rezept.txt";
##funktioniert nicht
##Formulardaten in Datei eintragen
open(RAUS, ">>$Rezeptdatei") or die $!;
print RAUS $rezepttitel;
print RAUS "\n";
close(RAUS);
##Ende funktioniert nicht
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
#!/usr/local/bin/perl
print "Content-type: text/html \n\n";
use strict;
use warnings;
use CGI;
# Perl-Skript zu RezepteEinfuegen.html
#Eingaben lesen
my $data="";
read(STDIN, $data, $ENV{'CONTENT_LENGTH'});
my $file ="./RETest.html";
##Name-Wert-Paare splitten
my @pairs;
my $name;
my $value;
my $pair;
@pairs = split(/&/, $data);
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
#Konvertierung HTML-Code
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/<!--(.|\n)*-->//g;
$value =~ s/<([^>]|\n)*>//g;
$FORM{$name} = $value;
}
my $abfrage;
$abfrage = new CGI;
my $rezepttitel = $abfrage->param(Rezepttitel);
my $Rezeptdatei = "./Rezept.txt";
##funktioniert nicht
##Formulardaten in Datei eintragen
open(RAUS, ">> $Rezeptdatei");
print RAUS $rezepttitel;
print RAUS "\n";
close(RAUS);
##Ende funktioniert nicht
# Antwortseite
print "<html><head><title> Rezeptseite </title></head><body bgcolor=white>\n";
print "<font size= 5 color=#996633><b>super Rezept</b></font>\n";
print "<b>$FORM{'Rezepttitel'}</b><br>\n";
print "</body></html>\n";
exit;
(END)
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
#!/usr/local/bin/perl
use strict;
use warnings;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
# Perl-Skript zu RezepteEinfuegen.html
#Eingaben lesen
my $data="";
my $file ="./RETest.html";
my $abfrage = new CGI;
print $abfrage->header();
my %FORM = $abfrage->Vars();
my $rezepttitel = $FORM{Rezepttitel};
my $Rezeptdatei = "./Rezept.txt";
##funktioniert nicht
##Formulardaten in Datei eintragen
open(RAUS, ">> $Rezeptdatei") or die $!;
print RAUS $rezepttitel;
print RAUS "\n";
close(RAUS);
##Ende funktioniert nicht
# Antwortseite
print "<html><head><title> Rezeptseite </title></head><body bgcolor=white>\n";
print "<font size= 5 color=#996633><b>super Rezept</b></font>\n";
print "<b>",$FORM{'Rezepttitel'},"</b><br>\n";
print "</body></html>\n";
exit;
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#! /usr/bin/perl
use warnings;
use strict;
use CGI;
# versucht, nicht nur fehler, sondern auch warnungen
# im browser auszugeben; diese Zeile sollte auskommentiert
# werden, wenn das script zufriedenstellend laeuft, um so
# keinem Hacker mehr Infos zu geben als noetig
use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
# bei manchen Webservern ist das aktuelle Verzeichnis nicht
# das, in dem das cgi-Script liegt. $FindBin::Bin enthaelt den
# pfad zum gerade ausgefuehrten Script, und man kann seine
# datei relativ zum cgi-script legen, und ist so portabler als
# mit einem hardgecodeten absolutem pfad
use FindBin;
my $file = "$FindBin::Bin/RETest.html";
# oder: my $file = "$FindBin::Bin/daten/RETest.html";
# neues CGI-Objekt erzeugen
my $cgi = CGI->new();
# liest alle cgi-parameter aus und weist sie %content zu
my %content = $cgi->Vars();
# wenn ein rezept eingegeben wurde, speichere es
if (scalar(keys %content)) {
# datei zum anhaengen oeffnen
unless (open (FILE, ">> $file")) {
die "Error: couldn't open file '$file' for appending: $!\n";
} # unless
# schreibe das neue Rezept in die Datei; wie das geht,
# haengt davon ab, welches Format du waehlst, z.B.
# titel: neues Rezept fuer Pflaumenkuchen
# rezept: Man nehme:<br>Wasser<br>Eier<br>Zucker...
# (leerzeile)
# titel: neues Rezept fuer Apfelkuchen
# rezept: Man nehme:<br>Wasser<br>Eier<br>Zucker...
# muss so heissen wie in der HTML-Form
my $title = $content{Rezepttitel};
my $rezept = $content{Rezept};
# "gefaehrliche" sonderzeichen, die das format
# beeintraechtigen koennen, ersetzen
foreach ($title, $rezept) {
$_ = $cgi->escapeHTML($_); # html-sonderzeichen
s|\r?\n|<br />|g; # zeilenumbrueche zu <br />
}
print FILE "titel: $title\nrezept: $rezept\n\n";
# schliesse datei; falls es fehlschlaegt, fehlermeldung (z.B:
# Festplatte voll)
close(FILE) or die "Error: couldn't close file '$file': $!\n";
} # if
# gebe die HTML-Seite aus
# HTTP-Header ausgeben
print $cgi->header();
# HTML-Header ausgeben; fuer weitere optionen: perldoc CGI
print $cgi->start_html(-title => 'Rezeptseite');
print $cgi->h1("Meike's Rezepte");
# datei zum lesen oeffnen
unless (open (FH, "< $file")) {
die "Error: couldn't open file '$file': $!\n";
} # unless
else {
# lese nicht zeilen-, sondern blockweise
local $/ = "\n\n";
# rueckwaerts lesen, sodass das neueste rezept
# immer oben kommt und das aelteste ganz unten
foreach my $entry (reverse <FH>) {
chomp($entry); # \n\n rauswerfen
# block an zeilenumbruch aufsplitten
my ($titel, $rezept) = split(/\n/, $entry);
# am anfang steht ja noch unnuetz titel: bzw. rezept:
# drinnen; das soll nun fuer die Ausgabe weg
$titel =~ s/^titel://; $rezept =~ s/^rezept://;
# das zeug ausgeben:
print $cgi->h2($titel);
print $cgi->p($rezept);
print $cgi->hr(); # vielleicht eine trennlinie ausgeben
} # foreach
# Datei schliessen
close(FH);
} # else
# HTML beenden
print $cgi->end_html();
1
2
3
4
print "Content-type: text/html\n\n";
print "<html><head><title>Testseite</title></head>\n";
print "<body><h1>Testseite</h1></body>\n";
print "</html>\n";
1
2
3
4
5
print "Content-type: text/html\n\n";
print qq~<html><head><title>Testseite</title></head>
<body><h1>Testseite</h1></body>
</html>
~;
1
2
print $cgi->h1( {-align => 'center', -color => '#ffdd00' }, "Ueberschrift");
print $cgi->hr();
8 Einträge, 1 Seite |