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
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>
[code]
Er zit een rare definitie-frats in je INSERT-query. Vervang:

DATE: AUTO NOW(), NOW()

door kortweg:

NOW()

of:

CURDATE()
Fatal error: Call to undefined function now() in J:\xampp\htdocs\forum\signup.php on line 56

dan heb ik het dus zo:
... 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
Plaats NOW() of CURDATE() binnen de string: het zijn MySQL-functies, geen PHP-functies.
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?
Bedankt, zeer handige website!

Reageren