Datum checken
Laat ik maar meteen to the point komen : ik heb een aanmaakformulier( voor het toevoegen van een evenement). Daarin moet je een begindatum en een einddatum invoeren. Wat ik graag wil is dat geen ongeldige datum kunt invoeren( bijvoorbeeld 10 januari ofzo), maar alleen in dit formaat : DD-MM-YYYY(21-10-2010)
Op internet heb ik al checkdate gevonden, maar ik weet niet of dit het juiste is, en hoe ik dit precies moet toepassen.
Dit is mijn gehele code voor het aanmaken:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$verenigingen= mysql_query("SELECT verenigingid,naam from vereniging") or die(mysql_error());
$categorieen= mysql_query("SELECT categorieid,naam from categorie") or die(mysql_error());
$result = mysql_query("SELECT * FROM evenement") or die(mysql_error());
$naam= $_POST["naam"];
$omschrijving= $_POST["omschrijving"];
$einddatum= $_POST["einddatum"];
$einddatum_f = date('Y-m-d',strtotime($einddatum));
$begindatum= $_POST["begindatum"];
$begindatum_f = date('Y-m-d',strtotime($begindatum));
$datum = date("d-m-Y");
$datumvandaag= date('Y-m-d',strtotime($datum));
?>
$verenigingen= mysql_query("SELECT verenigingid,naam from vereniging") or die(mysql_error());
$categorieen= mysql_query("SELECT categorieid,naam from categorie") or die(mysql_error());
$result = mysql_query("SELECT * FROM evenement") or die(mysql_error());
$naam= $_POST["naam"];
$omschrijving= $_POST["omschrijving"];
$einddatum= $_POST["einddatum"];
$einddatum_f = date('Y-m-d',strtotime($einddatum));
$begindatum= $_POST["begindatum"];
$begindatum_f = date('Y-m-d',strtotime($begindatum));
$datum = date("d-m-Y");
$datumvandaag= date('Y-m-d',strtotime($datum));
?>
Code (php)
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
88
89
90
91
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
88
89
90
91
<?php
if (isset($_POST['Toevoegen'])) {
if(empty ($naam)|| empty ($omschrijving) ||empty ($begindatum))
{echo'Vul aub alle velden in, anders wordt het evenement niet toegevoegd!<br /> <a href="index.php?p=evenement_maak">Klik hier om terug te gaan naar het formulier</a>';
}
elseif(empty($einddatum)){ $einddatum_f = '0000-00-00';
}
elseif( $datumvandaag>$begindatum_f )
{echo ' Je hebt de begindatum/einddatum niet correct ingevuld! <br /><a href="index.php?p=evenement_maak">Klik hier om terug te gaan naar het formulier</a>';
}
else{
$toevoegenevenement = "INSERT INTO evenement (naam, omschrijving, begindatum, einddatum, isAanmeldingVerplicht,organiserendeVerenigingid, categorieid)";
$toevoegenevenement .= "VALUES('";
$toevoegenevenement .= $naam."','";
$toevoegenevenement .= $omschrijving."','";
$toevoegenevenement .= $begindatum_f."','";
$toevoegenevenement .= $einddatum_f."','";
$toevoegenevenement .= $_POST["aanmelding"]."','";
$toevoegenevenement .= $_POST["organisator"]."','";
$toevoegenevenement .= $_POST["categorie"]."');";
mysql_query($toevoegenevenement) or die(mysql_error());
echo 'Evenement is toegevoegd, <a href="index.php?p=evenement_lijst">klik hier om terug te gaan</a>.';
}}
else{
echo'
<form METHOD="POST">
<table>
<tr>
<td >Naam</td>
<td><input type="text" name="naam"></td>
</tr>
<tr>
<td>Begindatum(d-m-j)</td>
<td><input type="text" name="begindatum" size="6"></td>
</tr>
<tr>
<td>*Einddatum(d-m-j)</td>
<td><input type="text" name="einddatum" size="6"></td>
</tr>
<tr>
<td>Categorie</td>
<td> ';
echo '<select name="categorie" id="categorie">';
while ($row = mysql_fetch_assoc($categorieen)) {
echo '<option value="'.$row[categorieid].'">'.$row[naam].'</option>'; }
echo '</select> '; echo'
</td>
</tr>
<tr>
<td>Organisator</td>
<td> ';
echo '<select name="organisator" id="organisator">';
while ($row = mysql_fetch_assoc($verenigingen)) {
echo '<option value="'.$row[verenigingid].'">'.$row[naam].'</option>';}
echo '</select>
</td>
</tr>
<tr>
<td>Aanmelding verplicht?</td>
<td><input type="checkbox" name="aanmelding" value="1"></td>
</tr>
<tr>
<td>Omschrijving</td>
<td><textarea rows="5" cols="20" name="omschrijving"></textarea></td>
</tr>
<tr>
<td> * = optioneel </td>
<td><input type="submit" name="Toevoegen" value="Toevoegen"></td>
<td> </td>
</tr>
</table>
</form>
'; }?>
if (isset($_POST['Toevoegen'])) {
if(empty ($naam)|| empty ($omschrijving) ||empty ($begindatum))
{echo'Vul aub alle velden in, anders wordt het evenement niet toegevoegd!<br /> <a href="index.php?p=evenement_maak">Klik hier om terug te gaan naar het formulier</a>';
}
elseif(empty($einddatum)){ $einddatum_f = '0000-00-00';
}
elseif( $datumvandaag>$begindatum_f )
{echo ' Je hebt de begindatum/einddatum niet correct ingevuld! <br /><a href="index.php?p=evenement_maak">Klik hier om terug te gaan naar het formulier</a>';
}
else{
$toevoegenevenement = "INSERT INTO evenement (naam, omschrijving, begindatum, einddatum, isAanmeldingVerplicht,organiserendeVerenigingid, categorieid)";
$toevoegenevenement .= "VALUES('";
$toevoegenevenement .= $naam."','";
$toevoegenevenement .= $omschrijving."','";
$toevoegenevenement .= $begindatum_f."','";
$toevoegenevenement .= $einddatum_f."','";
$toevoegenevenement .= $_POST["aanmelding"]."','";
$toevoegenevenement .= $_POST["organisator"]."','";
$toevoegenevenement .= $_POST["categorie"]."');";
mysql_query($toevoegenevenement) or die(mysql_error());
echo 'Evenement is toegevoegd, <a href="index.php?p=evenement_lijst">klik hier om terug te gaan</a>.';
}}
else{
echo'
<form METHOD="POST">
<table>
<tr>
<td >Naam</td>
<td><input type="text" name="naam"></td>
</tr>
<tr>
<td>Begindatum(d-m-j)</td>
<td><input type="text" name="begindatum" size="6"></td>
</tr>
<tr>
<td>*Einddatum(d-m-j)</td>
<td><input type="text" name="einddatum" size="6"></td>
</tr>
<tr>
<td>Categorie</td>
<td> ';
echo '<select name="categorie" id="categorie">';
while ($row = mysql_fetch_assoc($categorieen)) {
echo '<option value="'.$row[categorieid].'">'.$row[naam].'</option>'; }
echo '</select> '; echo'
</td>
</tr>
<tr>
<td>Organisator</td>
<td> ';
echo '<select name="organisator" id="organisator">';
while ($row = mysql_fetch_assoc($verenigingen)) {
echo '<option value="'.$row[verenigingid].'">'.$row[naam].'</option>';}
echo '</select>
</td>
</tr>
<tr>
<td>Aanmelding verplicht?</td>
<td><input type="checkbox" name="aanmelding" value="1"></td>
</tr>
<tr>
<td>Omschrijving</td>
<td><textarea rows="5" cols="20" name="omschrijving"></textarea></td>
</tr>
<tr>
<td> * = optioneel </td>
<td><input type="submit" name="Toevoegen" value="Toevoegen"></td>
<td> </td>
</tr>
</table>
</form>
'; }?>
Alvast zeer bedankt!
Maar dat werkt niet, helaas.
maand, dag, jaar. En ik ken geen 31e maand.
okeej, dat begrijp ik nu. Maar hoe krijg je dat in Nederlandse datum dan?
explode() gebruiken...
Enne, variabelen buiten quotes op lijn 2.
Code (php)
Hij heeft dan de foutmelding:
checkdate() expects parameter 1 to be long, string given in
Enig idee?
kijk eens met print_r($var) wat er in de array staat ;-)
als ik 22-10-2010 invoer, lijkt me goed :)
En je weet dat checkdate een andere notatie verwacht ;)?
oja, haha. Dus dan wordt het $var[1], $var[0], $var[2] ( maand,dag, jaar)?
try :-)
Warning: checkdate() expects parameter 2 to be long, string given in ( regel 25)
Net was het nog parameter 1:P
Check wederom je array :-)
Als je iets verkeerds intypt krijg je een warning en de gewenste ( door mij gemaakte) foutmelding. En ik wil graag alleen de foutmelding;) )
Gewijzigd op 21/10/2010 13:24:01 door Sjoerd de Groot
de ini set displays uitzetten die je boven aan je script hebt staan , waarschijnlijk
strval().
Zie ook