Thread Such-Script gesucht (15 answers)
Opened by WOtAN at 2005-08-03 12:47

WOtAN
 2005-08-03 14:22
#5383 #5383
User since
2005-08-03
12 Artikel
BenutzerIn
[default_avatar]
Ich hab doch noch ein Problem:
Wenn ichz.B. in der datei einen Titel hab, der Lautet "Das ist ein Test" findet der script Diesen Eintrag nur, wenn ich nach "Das" suche, aber bei "Test" findet er nichts.
Der Script durchsucht praktisch nur das erste Wort vor einem Leerzeichen.
Woran liegt das, und was kann ich machen?

Code: (dl )
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);

View full thread Such-Script gesucht