Geboortedatum in register

Status
Niet open voor verdere reacties.
PHP:
if(isset($_POST['Submit']))
{
 
    // Define post fields into simple variables
    $today = gmdate('Y-m-d h:i:s');
    $reg_username = stripslashes(strip_tags(trim($_POST['reg_username'])));
    $firstname = stripslashes(strip_tags(trim($_POST['firstname'])));
    $lastname = stripslashes(strip_tags(trim($_POST['lastname'])));
    $birthday = stripslashes(strip_tags(trim($_POST['birthday'])));
    $birthmonth = stripslashes(strip_tags(trim($_POST['birthmonth'])));
    $birthyear = stripslashes(strip_tags(trim($_POST['birthyear'])));
    $email = stripslashes(strip_tags(trim($_POST['email'])));
    $email2 = stripslashes(strip_tags(trim($_POST['email2'])));
    
    if((!isset($reg_username)) || (!isset($firstname)) || (!isset($lastname)) || (!isset($birthday)) || (!isset($birthmonth)) || (!isset($birthyear)) || (!isset($email)))
    {
        $message="U moet alle velden invullen.";
    }
    else
    {
        $timestamp = mktime(0, 0, 0, $birthmonth, $birthday, $birthyear);

        $birthdate = date('j-m-Y', $timestamp); //format dd-mm-yyyy
        if ($email != $email2)
        {
            $message="De e-mail adressen komen niet overeen.";
        }
        elseif ($email == $email2)
        {
 
            if (ereg('[^A-Za-z0-9]', $reg_username))
            {
                $message="Uw gebruikersnaam mag alleen letters en cijfers bevatten.";
            }
            elseif(!ereg('[^A-Za-z0-9]', $reg_username))
            {
 
 
                if (strlen($reg_username) <= 2 || strlen($reg_username) >= 31)
                {
                    $message= "Uw gebruikersnaam is te groot of te klein (maximaal 30, minimaal 3).";
                }
                elseif (strlen($reg_username) > 2 || strlen($reg_username) < 30)
                {
                    
                    if (ereg('[^A-Za-z]', $firstname))
                    {
                    $message="Uw voornaam  mag alleen letters bevatten.";
                    }
                    elseif(!ereg('[^A-Za-z]', $firstname))
                    {
                        if (ereg('[^A-Za-z]', $lastname))
                        {
                        $message="Uw achternaam mag alleen letters bevatten.";
                        }
                        elseif(!ereg('[^A-Za-z]', $lastname))
                        {
 
 
                    $sql_email_check = mysql_query("SELECT `email` FROM `users` WHERE `email` ='$email' AND `status` = 'Actief'")or die(mysql_error());
                    $sql_username_check = mysql_query("SELECT `username` FROM `users` WHERE `username` ='$reg_username'")or die(mysql_error());
 
                    $email_check = mysql_num_rows($sql_email_check);
                    $username_check = mysql_num_rows($sql_username_check);
 
                        if($email_check > 0)
                        {
                            $message= "Uw email adres is al gebruikt. Als dit niet zo is, neem dan contact met ons op via de contactpagina. ";
                            unset($email);
                        }
                        if($username_check > 0)
                        {
                            $message="Uw gewenste gebruikersnaam wordt al gebruikt.";
                            unset($reg_username);
                        }
 
 
                    else
                    {
 
                        $ip = $_SERVER['REMOTE_ADDR'];
                        $random_password22=rand(000000000,999999999);
                        $password=md5($random_password22);
 
                        
mysql_query("INSERT INTO `users` (`username` , `password` , `firstname` , `lastname` , `birthdate` , `email` , `status` , `activated` , `geregistreerd`,  `registreer_ip`) VALUES ('$reg_username', '$password', '$firstname', '$lastname', '$birthdate', '$email', 'Actief', '0', '$today' , '{$_SERVER['REMOTE_ADDR']}')")or die(mysql_error());                          
 
                        $userid = mysql_insert_id();
                        // Let's mail the user!
                        $subject = "Activatie Mick Verboeket.com";
                        $message = "Hallo $firstname,
Hierbij bevestigen we uw registratie op mickverboeket.com. U kunt uw account activeren door op onderstaande link te klikken:
 
http://www.mickverboeket.com/activate.php?id=$userid&code=$random_password22
     
Zodra u dit heeft gedaan, kunt u inloggen met de volgende gegevens:
    Gebruikersnaam: $reg_username
    Wachtwoord: $random_password22
 
Met vriendelijke groet,
 
Mick Verboeket.
    "; 
 
                        mail($email, $subject, $message,
                        "From: Mick Verboeket <noreply@mickverboeket.com>");
                        $message= 'Uw account is aangemaakt, kijk in uw postvak in. ';
                    }
                }
            }
        }
    }
}
    }
}
?>
 
<html>
<head>
<title>Mick Verboeket - Register</title>
<link href="includes/style.css" rel="stylesheet" type="text/css">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
    if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
        document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
        else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
</head>
<body>
<form name ="form2" action="" method="post">
<table class="tabel" align="center">
       <tr> 
          <td colspan="2" background="includes/header.gif" class='kopje'><center class="bold"><b>Register</b></center></td>
        </tr>
                <?
                if(isset($message))
                {
                ?>
                <tr> 
                    <td colspan="2"><div align="center"><? echo "$message"; ?></font></div></td>
                </tr>
                <?php
                }
                ?>
                <tr> 
                    <td width="50%">Gebruikersnaam:</td>
                    <td width="50%"><input name="reg_username" type="text" id="reg_username" value="" size="30" maxlength="30"></td>
                </tr>
                <tr> 
                    <td>Uw voornaam:</td>
                    <td><input name="firstname" type="text" id="firstname" value="" size="30"></td></tr>
                    
                <tr> 
                    <td>Uw achternaam:</td>
                    <td><input name="lastname" type="text" id="lastname" size="30" ></td></tr>
                    
                <tr> 
                    <td>Geboortedatum:</td>
                    <td><input name="birthday" type="text" id="birthday" size="2" maxlength="2" value="DD">/<input name="birthmonth" type="text" id="birthmonth" size="2" maxlength="2" value="MM">/<input name="birthyear" type="text" id="birthyear" size="4" maxlength="4" value="JJJJ"></td></tr>
                    <tr>
                    <td>Email adres:</td>
                    <td><input name="email" type="text" id="username3" size="30" ></td>
                </tr>
                <tr> 
                    <td>Bevestiging email adres:</td>
                    <td><input name="email2" type="text" id="email" size="30"></td>
                </tr>
                    
                <tr> 
                    <td></td>
                    <td><input type="submit" name="Submit" value="Register"></td>
                </tr>
            </td>
        </tr>
</table>
</form>
<br>
<tr>
<td class="links"><center><a href="index.php">Login</a> | <a href="lost.php">Lost password</a> | <a href="contact.php">Contact us</a></center></td>
</tr>
</body>
</html>

en wat Tha_Devil zegt is zeker een goed idee, die table hoe je niet in te voeren dat kun je handiger door mysql laten doen!
 
Staat er nu zoals jij het zegt, maar ik krijg nog steeds 0000-00-00 in de database. Kolom staat op DATE
 
verander dit eens
$birthdate = date('Y-m-j', $timestamp); //format yyyy-mm-dd
Ik geloof dat dit de format is van mysql
 
Ja! Nu doet-ie het. Top!
Ook nog een idee met de registreer tijd dan? :P
 
In myadmin de kollom eigenschap op timestamp zetten, dan wordt er automatisch de datum en tijd ingevoerd op het moment dat de records worden ingevoerd.
google anders ff op timestamp mysql
 
Dat vond ik ook al inderdaad, maar die pakt hij niet.

Denk vanwege hoe die "$today" staat, maar zou zo één twee niet weten hoe ik dat moet wijzigen.
 
Het veld van de registratiedatum op type TIMESTAMP zetten en daarvan de default-waarde op CURRENT_TIMESTAMP (Staat in de dropdown)

Vervolgens het veld niet in je INSERT-query opnemen.

Overigens vind ik de mktime() en date() maar omslachtig.
Je krijg toch als formulier waardes al de getallen?
Dan moet dit gewoon werken:
PHP:
$birthdate = $birthyear .'-'. $birthmonth .'-'. $birthday;
$query = "
INSERT INTO users (
  username,
  password,
  firstname,
  lastname,
  birthdate,
  email,
  status,
  activated,
  registreer_ip
) VALUES (
  '". $reg_username ."',
  '". $password ."',
  '". $firstname .",
  '". $lastname ."',
  '". $birthdate ."',
  '". $email ."',
  'Actief',
  '0',
  '". $_SERVER['REMOTE_ADDR'] ."'
)";
if(!mysql_query($query)) {
  echo 'Er is een fout opgetreden! MySQL zegt: '. mysql_error();
}
 
mktime() warning

Warning: mktime() expects parameter 5 to be long, string given in /home/mick/domains/mickverboeket.com/public_html/register.php on line 29

Om te zorgen dat mensen geen letters kunnen invoeren bij geboortedatum, heb ik dit ingevoerd:
PHP:
	if (ereg('[^0-9]', $birthdate))
							{
							$message="Uw geboortdatum kan alleen cijfers bevatten.";
							}
							elseif(!ereg('[^0-9]', $birthday))
					{

Alleen krijg ik nu bovenstaande warning, wat kan ik daaran doen?
Alvast bedankt!!
 
Notice: A non well formed numeric value encountered in /home/mick/domains/mickverboeket.com/public_html/register.php on line 29

Niemand die me hier mee wil helpen?
 
mktime melding verwacht een 5e parameter van het type "long" terwijl je een "string" geeft.
Kwestie van even de documentatie opzoeken op www.php.net/mktime

Die andere melding zegt me weinig, we weten ook niet wat er op die regels staat :)
 
We hebben je aardig wat verbeteringen doorgegeven dus het lijkt mij sterk dat de meest recente versie van je script hier nog staat. :confused:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan