Registreren, datum van vandaag invoeren en terughalen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kevin Zegikniet

Kevin Zegikniet

20/08/2013 16:04:21
Quote Anchor link
Hallo,

Ik ben bezig met een registratiescript.
Dit schrijft onder andere de geboortedatum weg in één veld (YYYY-MM-DD formaat) en de datum van 'vandaag' (de dag dat de gebruiker zich registreert) in een ander veld, zelfde formaat.

Geboortedatum werkt naar behoren, registratie alleen niet. Daar krijg ik 0000-00-00 te zien in de database (krijg geen errors bij het script).

Ik heb verschillende dingen gelezen over CURDATE() en NOW() alleen willen die niet werken op de manier waarop ik ze gebruik...

En daarna wil ik ze in een ander script weer terughalen, om ze neer te zetten. Nu kan ik dat in het YYYY-MM-DD formaat doen, maar ik wil liever andersom, dus in DD-MM-YYYY formaat. Is daar een commando voor?

Zie hieronder het script.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<?php
session_start();
IF ($_POST['controle']=="TRUE") {
mysql_connect("localhost","root","") or die('Could not connect: ' . mysql_error());
mysql_select_db("forum") or die('Could not find database: ' . mysql_error());

$geboortedatum = mktime(0, 0, 0, $_POST['maand'], $_POST['dag'], $_POST['jaar']);
$t = time();
$leeftijdsec = ($geboortedatum < 0) ? ( $t + ($geboortedatum * -1) ) : $t - $geboortedatum;
$leeftijd = floor($leeftijdsec / "31536000");

$check_user = mysql_fetch_assoc ( mysql_query ("SELECT id FROM users WHERE Username = '". $_POST['username'] ."' ") );
$check_email = mysql_fetch_assoc ( mysql_query ("SELECT id FROM users WHERE Email = '". $_POST['emailadres'] ."' ") );

IF (
   (
empty($_POST['username']) )
OR (! (empty($check_user)))
OR (! (empty($check_email)))
OR (empty($_POST['password1']))
OR (empty($_POST['password2']))
OR (($_POST['password1']) != ($_POST['password2']))
OR (empty($_POST['emailadres']))
OR (($_POST['dag'] == "1") AND ($_POST['maand'] == "1") AND ($_POST['jaar'] == "2013"))
OR ($leeftijd < 13)
    )
    {
$error_head=("<b>!!  ERROR  !!</b>");
    $error="1";}

IF ($error==1)
    {

    IF (empty($_POST['username']))
        {
$error_user="Je hebt je <u>Gebruikersnaam</u> niet ingevuld!<br />"; }
    IF (!(empty($check_user)))
        {
$error_user="Deze gebruikersnaam <u>bestaat al</u>! Kies een andere."; }
    IF (!(empty($check_email)))
        {
$error_email="Dit emailadres is al <u>in gebruik</u> bij ons! Kies een andere."; }
    IF (($_POST['password1']) != ($_POST['password2']))
        {
$error_pass1="Je hebt niet twee keer <u>hetzelfde</u> Wachtwoord ingevuld!<br />"; }
    IF ((empty($_POST['password1'])) OR (empty($_POST['password2'])))
        {
$error_pass2="Je moet wel je Wachtwoord <u>twee keer</u> invullen!<br />"; }
    IF ((empty($_POST['password1'])) AND (empty($_POST['password2'])))
        {
$error_pass1 = $error_pass2 = "Je hebt <u>beide Wachtwoorden</u> niet ingevuld!<br />"; }
    IF (empty($_POST['emailadres']))
        {
$error_email="Je hebt je <u>E-mailadres</u> niet ingevuld!<br />"; }
    IF (($_POST['dag'] == "1") AND ($_POST['maand'] == "1") AND ($_POST['jaar'] == "2013"))
        {
$error_leeftijd1="Je hebt je <u>Geboortedatum</u> niet ingevuld!<br />"; }
    IF (($leeftijd < "13") AND ($leeftijd >= "0") AND (!isset($error_leeftijd1)))
        {
$error_leeftijd2="Je bent te <u>Jong</u> om je aan te mogen melden!<br />"; }        
}

ELSE {
session_start();
$_POST['md5_password']=md5($_POST['password2']);
$_SESSION['username']=$_POST['username'];

$sql="INSERT INTO users (Username, Password, Email, Type, Birthday, Registerdate)
VALUES('"
.$_POST['username']."', '".$_POST['md5_password']."', '".$_POST['emailadres']."', 'Normal', '".$_POST['jaar']."-".$_POST['maand']."-".$_POST['dag']."', '".(' DATE: AUTO NOW(), NOW() ')."' )";

if (!mysql_query($sql))
    {
die('Error: ' . mysql_error()); }

header("location: signedup.php");

mysql_close($con); } }

include('menu.php');
?>


<html>
<head>
<title>Forum - Registratie</title>
<!-- <link rel="icon" type="image/ico" href="/forum/favicon.ico"> </link> -->
</head>

<body bgcolor="CAFFAF">
<form action="" method="post">

<center><h2>REGISTREREN</h2> </center>
<?php echo $_SESSION['error_head'], $error_head; ?><br /></font>
<table>

<!-- Normale Gegevens -->
<tr><td width="200">Wat is uw Gebruikersnaam?</td>
    <td width="100"><input type="text" name="username" value="<?php echo $_POST[username];?>" size="27"></td>
    <td width="10"></td> <td width="360"> <?php echo $error_user; ?> </td> </tr>
<tr><td>Wat is uw Wachtwoord?</td><td><input type="password" name="password1" value="<?php echo $_POST[password1];?>" size="27" /> </td>
    <td></td> <td> <?php echo $error_pass1; ?> </td> </tr>
<tr><td>Wachtwoord ter controle:</td><td><input type="password" name="password2" value="<?php echo $_POST[password2];?>" size="27" /> </td>
    <td></td> <td> <?php echo $error_pass2; ?> </td></tr>
<tr><td>Wat is uw E-mailadres? </td><td> <input type="email" name="emailadres" value="<?php echo $_POST[emailadres];?>" size="27" / ><br /></td>
    <td></td> <td> <?php echo $error_email; ?> </td></tr>

<!-- Geboortedatum -->
    <tr><td width="200">Wanneer bent u geboren?</td><td width="198">
<?php

//selectbox van de dagen
echo '<select name="dag">';
for($d=1;$d<=31;$d++){
   if($d == $_POST['dag']){$selected = 'selected="selected"';}else{$selected = '';}
   echo '<option value="'.$d.'" '.$selected.'>'.$d.'</option>'; }
echo '</select>';

//zet de nederlandse maanden in een array om deze te gebruiken in de selectbox van de maanden
$maanden = array("Januari", "Februari", "Maart", "April", "Mei", "Juni",
    "Juli", "Augustus", "September", "Oktober", "November", "December");

//selectbox van de maanden
//gebruik $maanden[$m-1] omdat een array bij 0 begint

echo '<select name="maand">';
for($m=1;$m<=12;$m++){
   if($m == $_POST['maand']){$selected = 'selected="selected"';}else{$selected = '';}
   echo '<option value="'.$m.'" '.$selected.'>'.$maanden[$m-1].'</option>'; }
echo '</select>';

//selectbox van de jaren
echo '<select name="jaar">';
for($j=date("Y");$j>=1940;$j--){
   if($j == $_POST['jaar']){$selected = 'selected="selected"';}else{$selected = '';}
   echo '<option value="'.$j.'" '.$selected.'>'.$j.'</option>'; }
echo '</select>';
?>


<td width="0"></td> <td width="352"> <?php echo $error_leeftijd1, $error_leeftijd2; ?> </td> </tr>

<tr><td width="200"></td><td width="250"> Let op: je moet minstens 13 jaar zijn!! </td></tr>

<tr><td><input type="hidden" name="controle" value="TRUE"> <input type="submit" value="Verzenden"></form></td></tr>
<tr><td><form name="reset" method="post" action="<?php echo ($_SERVER["PHP_SELF"]);?>"> <input type="submit" name="submit" value="Reset"></form></td></tr>
</table>

<!-- INLOGGEN -->
<center><h2>INLOGGEN</h2> </center>
<form action="inlog.php" method="post">
<hr>
<table>
<tr><td width=200>Gebruikersnaam: </td><td width=100><input type="text" name="username" size=27></td></tr>
<tr><td> Wachtwoord:</td><td width=100><input type="password" name="password" size=27></td></tr>
<tr><td colspan=2><input type="submit" value="Log in!"></td></tr>
</table>
</form>

</body>
</html>
 
PHP hulp

PHP hulp

30/07/2021 15:13:49
 
Ward van der Put
Moderator

Ward van der Put

20/08/2013 16:14:13
Quote Anchor link
Er zit een rare definitie-frats in je INSERT-query. Vervang:

DATE: AUTO NOW(), NOW()

door kortweg:

NOW()

of:

CURDATE()
 
Kevin Zegikniet

Kevin Zegikniet

20/08/2013 16:18:10
Quote Anchor link
Fatal error: Call to undefined function now() in J:\xampp\htdocs\forum\signup.php on line 56

dan heb ik het dus zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
... maand']."-".$_POST['dag']."', '".( NOW() )."' )";


Of
Fatal error: Call to undefined function curdate() in J:\xampp\htdocs\forum\signup.php on line 56
als ik curdate() gebruik
Gewijzigd op 20/08/2013 16:18:58 door Kevin Zegikniet
 
Ward van der Put
Moderator

Ward van der Put

20/08/2013 16:39:49
Quote Anchor link
Plaats NOW() of CURDATE() binnen de string: het zijn MySQL-functies, geen PHP-functies.
 
Kevin Zegikniet

Kevin Zegikniet

20/08/2013 16:45:05
Quote Anchor link
Bedankt, dat werkt! (ik heb curdate gebruikt, maar now werkt volgens mij ook, ff getest).

Nu nog de vraag: hoe draai ik het dan weer om in php?
 
Kris Peeters

Kris Peeters

20/08/2013 17:35:21
Quote Anchor link
Het zou interessant zijn mocht je deze tutorial grondig bekijken
http://phphulp.jorendewit.nl/view/1/

Je vindt er een antwoord op zowat elke vraag die je kan hebben over tijd en datum in mySQL
 
Kevin Zegikniet

Kevin Zegikniet

20/08/2013 19:57:22
Quote Anchor link
Bedankt, zeer handige website!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.