Thread Datum korrekt und nicht in der Vergangenheit? (2 answers)
Opened by Gast at 2009-02-15 22:36

Gast Gast
 2009-02-15 22:36
#118890 #118890
Hallo Zusammen,

eines muss ich vorab gestehen, ich bin ein absoluter Neuling in Sachen Perl. Folgendes Szenario gibt es bei mir. Ich habe ein Formular, in dem ich diverse Dinge per „cgi“ prüfen möchte – z.B. ob ein ein Name eingetragen ist, ob eine richtig formulierte E-Mail-Adresse eingegeben ist und ob 3 verschiedene Werte von Auswahlboxen ein gültiges Datum ergeben, um es per Mail zu versenden. Die entsprechenden Auswahlboxen lauten wie folgt:
Code: (dl )
1
2
3
4
<select class="select" name="tag">
<option selected="selected">Tag</option>
<option>01 ... bis ... 31 </option>
</select>


Code: (dl )
1
2
3
4
<select class="select" name="monat">
<option value="0" selected="selected">Monat</option>
<option value="01">Januar ... bis ... Dezember</option>
</select>


Code: (dl )
1
2
3
4
<select class="select" name="jahr" size="1">
<option selected="selected">Jahr</option>
<option>2009 ... bis ... 2013</option>
</select>


Das Script lautet in den entsprechenden zu prüfenden Zeilen:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if (($INPUT{Name}                   eq "") ||
($INPUT{tag} !~ /^[0-9]*$/) ||
($INPUT{monat} !~ /^[0-9]*$/) ||
($INPUT{jahr} !~ /^[0-9]*$/) ||
($INPUT{Email} eq "") )
{
print "Location: $msg_errmiss\n\n";
exit;
}

if (($INPUT{Email} =~ /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/) ||
($INPUT{Email} !~ /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/))
{
print "Location: $msg_badmail\n\n";
exit;
}

Per Mail wird dann folglicherweise versendet:

Code: (dl )
1
2
3
print MAIL "Name:            $INPUT{Name}\n";
print MAIL "Datum: $INPUT{tag}.$INPUT{monat}.$INPUT{jahr}\n";
print MAIL "E-Mail-Adresse: $INPUT{Email}\n";


Leider weiss ich absolut nicht, wie ich prüfen kann, ob es sich um ein gültiges Datum handelt (also kein 30.02.2009 oder 31.04.2009) und ob sich das Datum auch nicht in der Vergangenheit befindet. Sicherlich ist es für Euch nur eine Kleinigkeit. Bitte helft mir weiter.

Gruß Ulli


---
//Modedit Gwendragon: Code lesbarer gestaltet; Bitte HTML- und Perl-Code in CODE-Tags
---

View full thread Datum korrekt und nicht in der Vergangenheit?