|< 1 2 >| | 16 Einträge, 2 Seiten |
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
#!/usr/bin/perl
#
use CGI qw/:standard/;
$file = "lyrics.db";
$sinterpret = lc(param('interpret'));
$stitle = lc(param('title'));
print header;
print "Interpret::$sinterpret\n";
print "<BR>Title::$stitle<BR>\n";
open (SR, $file);
do
{
$rid = (<SR>);
$interpret = lc(<SR>);
$title = lc(<SR>);
$ci = 9;
$ct = 9;
if ($sinterpret ne "") {
do
{
++$i;
if (substr($interpret, $i, length($sinterpret)) = $sinterpret) {
$ci = 1;
}
else {
$ci = 9;
}
}
until ($i < length($interpret) or $ci = 1)
}
else {
$ci = 6;
}
if ($stitle ne "") {
if (length($stitle) <= length($title)) {
if ($stitle = $title) {
$ct = 1;
}
else {
for ($j = 0; $j < length($title); ++$j)
{
if (substr($title, $j, length($stitle)) = $stitle) {
$ct = 1;
}
else {
$ct = 9;
}
}
}
}
}
else {
$ct = 6;
}
# $ci / $ct Results:
#
# 9 - False
# 1 - True
# 6 - Empty
$a = $ci + $ct;
if ($a eq 7)
{
print "<BR> $rid matches - Variable returned : $a --------- $interpret - $title\n";
}
if ($a eq 2)
{
print "<BR> $rid matches - Variable returned : $a --------- $interpret - $title\n";
}
}
until (eof(SR))
open (SR, $file);
open (SR, "<$file") or die "Error: couldn't open file '$file': $!\n";
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
#! /usr/bin/perl use warnings; # aktiviert die Warnungen, die oft hilfreich sind use strict; # ueberprueft code strenger auf korrektheit, siehe meinen Vortrag use CGI; # hier werden fehler/warnungen im browser ausgegeben; das hilft # sehr beim entwickeln, sollte aber, sobald alles laeuft, deaktiviert # werden, um z.B. einem Hacker moeglichst wenig Infos zu geben: use CGI::Carp qw(fatalsToBrowser warningsToBrowser); # stellt die Variable $FindBin::Bin zur verfuegung; die enthaelt den # pfad zum ausgefuehrten script, weil bei einem webserver # nicht sichergestellt ist, dass er immer in das verzeichnis des # scriptes wechselt, in dem das script liegt. Und durch # verwendung von FindBin wird das Script unabhaengiger von aussen use FindBin; my $file = "$FindBin::Bin/lyrics.db"; # neues CGI-Objekt erzeugen my $cgi = CGI->new(); # http-header ausgeben: print $cgi->header(); # parameter einlesen: my $sinterpret = lc( $cgi->param('interpret') ); my $stitle = lc( $cgi->param('title') ); # datei oeffnen: unless (open (SR, "<$file")) { die "Error: couldn't open file '$file': $!"; } # unless # einlesen: while (my $rid = <SR>) { my $interpret = lc(<SR>); my $title = lc(<SR>); chomp($rid); chomp($interpret); chomp($title); # zeilenenden abschneiden # usw. } # while # datei schliessen close (SR);
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
#!/usr/bin/perl
#
use warnings;
use strict;
use CGI;
# hier werden fehler/warnungen im browser ausgegeben; das hilft
# sehr beim entwickeln, sollte aber, sobald alles laeuft, deaktiviert
# werden, um z.B. einem Hacker moeglichst wenig Infos zu geben:
use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
use FindBin;
my $file = "$FindBin::Bin/lyrics.db";
my $cgi = CGI->new();
print $cgi->header();
my $sinterpret = lc( $cgi->param('interpret') );
my $stitle = lc( $cgi->param('title') );
print "Interpret::$sinterpret\n";
print "<BR>Title::$stitle<BR>\n";
unless (open (SR, "<$file")) {
die "Error: couldn't open file '$file': $!
";
}
while (my $rid = <SR>) {
my $interpret = lc(<SR>);
my $title = lc(<SR>);
my $ci = 27;
my $ct = 27;
chomp($rid); chomp($interpret); chomp($title); # zeilenenden abschneiden
if ($sinterpret ne '') {
if (index($interpret, $sinterpret) == 0) {
$ci = 1;
}
}
else {
$ci = 11;
}
if ($stitle ne '') {
if (index($title, $stitle) == 0) {
$ct = 1;
}
}
else {
$ct = 11;
}
my $a = $ci + $ct;
if ($a == 12) {
print '<br><p><a href="show.cgi?file=' . $rid . '">' . $interpret . ' - ' . $title . '</a></p>';
}
if ($a == 2) {
print '<br><p><a href="show.cgi?file=' . $rid . '">' . $interpret . ' - ' . $title . '</a></p>';
}
}
close (SR);
|< 1 2 >| | 16 Einträge, 2 Seiten |