Thread 2 Fragen: Use strict und Apacheneustart? (29 answers)
Opened by olruebe01 at 2006-12-14 00:41

olruebe01
 2006-12-14 07:41
#30268 #30268
User since
2006-01-19
192 Artikel
BenutzerIn
[default_avatar]
Problem gelöst (glaube ich), dafür jetzt Neues :-(

Mir ist der Fehler zwar nicht klar aber ich habe eine If-Abfrage, die je nachdem, ob ein bestimmter Feldname ("ITEM") enthalten ist oder nicht, gleich auf eine URL weiterleitet. Nun kam es vor, dass zwar der Feldname übertragen wurde, jedoch OHNE Inhalt. Dies hat das Skript anscheinend als VORHANDEN angesehen.
Die Abfrage lautete if (!$FORMDATA{item}) {...

Dies hat anscheinend für Verwirrung gesorgt. Ich habe das nun so gelöst, dass anstelle eines LEEREN Feldes der Wert 0 übergeben wurde und habe die Abfrage geändert in:
if ($FORMDATA{item} eq 0) {...

So geht es. Aber ich hatte eigentlich gedacht, dass dies unter modperl kein Problem darstelt. Unter cgi läuft es so und ich meine, dass ich das auch in anderen modperl-Skripten so gemacht habe...

Jetzt habe ich aber eine neues Problem mit einer DB-Abfrage. Wenn der Wert ITEM nämlich existiert (bzw. jetzt größer 0 ist), soll in einer DB abgefragt werden, ob dieser Wert eingetragen ist (mehr nicht!! Ja oder nein?). Wenn ja lautet die URL (zur Weiterleitung) so, wenn nicht lautet sie anders.
Klappt aber nicht. Mal sagt die DB der Wert sei drin, mal nicht.

Die DB-Abfrage sieht so aus:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
sub blacklist {
use CGI::Carp qw(fatalsToBrowser);
use Fcntl qw(:DEFAULT :flock);
use CGI qw(:standard);
use CGI;
use Apache::DBI();
use DBI;
my $datenbank = "blacklist";
my $datenbankhost = "localhost";
my $datenbankuser = "XXX";
my $datenbankpw = "YYY";

##########################################################
$fehlermeldung = "<li>Fehler bei der Datenbankverbindung aufgetreten. Bitte ueberpruefen Sie die Angaben";
my $dbh = DBI->connect("DBI:mysql:$datenbank:$datenbankhost","$datenbankuser","$datenbankpw") || fehlerausgabe($fehlermeldung);
##########################################################
my $sth = $dbh->prepare("SELECT art FROM `blacklist` WHERE item = '$FORMDATA{item}' and Galerie = '$FORMDATA{Galerie}' ");
$sth->execute or die DBI->errstr;
$ergebnis =  $sth->fetchrow_array();
$dbh->disconnect; # DB Connect beenden

}# Ende sub


Am Anfang des Skriptes habe ich...
Code: (dl )
1
2
3
my %FORMDATA; # sollte doch alle $FORMDATA{a,b,c,usw.} abdecken, oder?
my $ergebnis;
my $fehlermeldung;

Klappt nicht

Habe dann noch zusätzlich
Code: (dl )
1
2
$FORMDATA{Galerie}; # auch mit ="";
$FORMDATA{User};

probiert... klappt auch nicht.
Mal ist $ergebnis so, mal so... Weiß nicht mehr weiter. Die Nacht war SEHR lang...

Und jetzt muss ich mal kurz ins Bett. Tschüss und Danke für jede Hilfe\n\n

<!--EDIT|olruebe01|1166098149-->

View full thread 2 Fragen: Use strict und Apacheneustart?