Morgen Struppi
Wieso probierst du?
Weil die Syntax von Perl meist oder oft mit diversen Platzhaltern, Klammern usw. erklärt werden - sich aber in der Praxis dann doch anders darstellt. Durch probieren (oder besser gesagt durch Abwandlungen) bekommt man es dann doch meistens irgendwie hin *gröööööl* ->Stichwort "Programmierstil"
Immer noch if-Thema:
Schwierigkeiten bereitet mir diese Abfrage:
if($ENV = $DBIp and $Jahr = $DBJahr and $Monat = $DBMonat and $Monatstag = $DBTag and $Stunden = $DBStunden and $DifMin <= 5) {
goto TimeError;
}
Als ich diese Abfrage schrieb, war das so gedacht, daß _alle_ Bedingungen zutreffen müssen, damit der in der Spitzklammer befindliche Code ausgeführt wird.
Also die gleiche Ip ($ENV=$DBIp) der aktuellen Sitzung, wie die, die aus der Datenbank ausgelesen wurde usw.....
Diese Anweisung da oben springt aber bereits zu TimeError, wenn nur die Differenzminuten ($DifMin) in dem gewälten Parameterbereich liegen.
Also auch wenn der Gästebucheintrag von Gestern gewesen wäre, reicht der IF-Anweisung, daß die Minuten vom DB-Eintrag zur aktuellen Zeit +-5 Minuten beträgt um den Sprung zu machen.
Das ist natürlich nicht gewollt. Es soll nur gesprungen werden, wenn der _gleiche_ Client am _gleichen_ Datum (Jahr,Tag,Zeit) zur _gleichen_ Zeit bis max 5 Minuten nach dem letzten Eintrag Posten möchte.
Ist "and" der richtige Operator, um mehrere Vergleiche, die _alle_ zutreffen müssen, zu machen?
Gruß Gary