-2

I am so new in PHP / MySQL.

I did this tutorial online:

Members Area System in php mysql - members users system area log sign

http://www.webestools.com/scripts_tutorials-code-source-14-members-area-system-in-php-mysql-members-users-system-area-log-sign.html

So far everything works fine, except for the date.

The date (signup_date column) appear in a strange way inside the data base. How can i fix?

id: 1 username: myusername password: helloworld email: myusername avatar: myavatar signup_date: 1411562966

Thank you so much for your help

This is my mysql table code:

CREATE TABLE IF NOT EXISTS `users` (

id bigint(20) NOT NULL, username varchar(255) NOT NULL, password varchar(255) NOT NULL, email varchar(255) NOT NULL, avatar text NOT NULL, signup_date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

This is the sign_up.php page where I guess I must modify the date:

    <?php
include('config.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" />
        <title>Sign up</title>
    </head>
    <body>
        <div class="header">
                <a href="<?php echo $url_home; ?>"><img src="<?php echo $design; ?>/images/logo.png" alt="Members Area" /></a>
            </div>
<?php
//We check if the form has been sent
if(isset($_POST['username'], $_POST['password'], $_POST['passverif'], $_POST['email'], $_POST['avatar']) and $_POST['username']!='')
{
        //We remove slashes depending on the configuration
        if(get_magic_quotes_gpc())
        {
                $_POST['username'] = stripslashes($_POST['username']);
                $_POST['password'] = stripslashes($_POST['password']);
                $_POST['passverif'] = stripslashes($_POST['passverif']);
                $_POST['email'] = stripslashes($_POST['email']);
                $_POST['avatar'] = stripslashes($_POST['avatar']);
        }
        //We check if the two passwords are identical
        if($_POST['password']==$_POST['passverif'])
        {
                //We check if the password has 6 or more characters
                if(strlen($_POST['password'])>=6)
                {
                        //We check if the email form is valid
                        if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email']))
                        {
                                //We protect the variables
                                $username = mysql_real_escape_string($_POST['username']);
                                $password = mysql_real_escape_string($_POST['password']);
                                $email = mysql_real_escape_string($_POST['email']);
                                $avatar = mysql_real_escape_string($_POST['avatar']);
                                //We check if there is no other user using the same username
                                $dn = mysql_num_rows(mysql_query('select id from users where username="'.$username.'"'));
                                if($dn==0)
                                {
                                        //We count the number of users to give an ID to this one
                                        $dn2 = mysql_num_rows(mysql_query('select id from users'));
                                        $id = $dn2+1;
                                        //We save the informations to the databse
                                        if(mysql_query('insert into users(id, username, password, email, avatar, signup_date) values ('.$id.', "'.$username.'", "'.$password.'", "'.$email.'", "'.$avatar.'", "'.time().'")'))
                                        {
                                                //We dont display the form
                                                $form = false;
?>
<div class="message">You have successfuly been signed up. You can log in.<br />
<a href="connexion.php">Log in</a></div>
<?php
                                        }
                                        else
                                        {
                                                //Otherwise, we say that an error occured
                                                $form = true;
                                                $message = 'An error occurred while signing up.';
                                        }
                                }
                                else
                                {
                                        //Otherwise, we say the username is not available
                                        $form = true;
                                        $message = 'The username you want to use is not available, please choose another one.';
                                }
                        }
                        else
                        {
                                //Otherwise, we say the email is not valid
                                $form = true;
                                $message = 'The email you entered is not valid.';
                        }
                }
                else
                {
                        //Otherwise, we say the password is too short
                        $form = true;
                        $message = 'Your password must contain at least 6 characters.';
                }
        }
        else
        {
                //Otherwise, we say the passwords are not identical
                $form = true;
                $message = 'The passwords you entered are not identical.';
        }
}
else
{
        $form = true;
}
if($form)
{
        //We display a message if necessary
        if(isset($message))
        {
                echo '<div class="message">'.$message.'</div>';
        }
        //We display the form
?>
<div class="content">
    <form action="sign_up.php" method="post">
        Please fill the following form to sign up:<br />
        <div class="center">
            <label for="username">Username</label><input type="text" name="username" value="<?php if(isset($_POST['username'])){echo htmlentities($_POST['username'], ENT_QUOTES, 'UTF-8');} ?>" /><br />
            <label for="password">Password<span class="small">(6 characters min.)</span></label><input type="password" name="password" /><br />
            <label for="passverif">Password<span class="small">(verification)</span></label><input type="password" name="passverif" /><br />
            <label for="email">Email</label><input type="text" name="email" value="<?php if(isset($_POST['email'])){echo htmlentities($_POST['email'], ENT_QUOTES, 'UTF-8');} ?>" /><br />
            <label for="avatar">Avatar<span class="small">(optional)</span></label><input type="text" name="avatar" value="<?php if(isset($_POST['avatar'])){echo htmlentities($_POST['avatar'], ENT_QUOTES, 'UTF-8');} ?>" /><br />
            <input type="submit" value="Sign up" />
                </div>
    </form>
</div>
<?php
}
?>
                <div class="foot"><a href="<?php echo $url_home; ?>">Go Home</a> - <a href="http://www.webestools.com/">Webestools</a></div>
        </body>
</html>
user2823725
  • 121
  • 6
  • You should change the `signup_date` to `datetime` data type and in insert query use `date("Y-m-d H:i:s")` or mysql function `now()` instead of `time()`. This will make better in terms of queries that you need to do later without having to change the timestamp to date back and forth. – Abhik Chakraborty Sep 24 '14 at 13:04

2 Answers2

1

That is a Unix-style timestamp (aka Epoch time), and represents the date Wed, 24 Sep 2014 12:49:26 GMT. It is calculated by counting the number of seconds since Midnight on January 1st, 1970 UTC.

There are a few different ways you can represent dates in MySQL, rather than just storing an int.

Jeff Lambert
  • 24,395
  • 4
  • 69
  • 96
0

Change signup date to

signup_date timestamp NOT NULL

Olalekan
  • 455
  • 6
  • 22
  • I just did, and now the date comes like that: signup_date: 0000-00-00 00:00:00 – user2823725 Sep 24 '14 at 13:09
  • Save another data. Date will come in this format: year-month-day hour:minutes:seconds yyyy-mm-dd h:m:s – Olalekan Sep 24 '14 at 13:12
  • If it doesn't work, paste your php code you used to save form values here. – Olalekan Sep 24 '14 at 13:16
  • When you changed signup_date to timestamp, the saved data in the table will change to 0000-00-00 00:00:00 but if you save another form data, you will have yyyy-mm-dd h:m:s – Olalekan Sep 24 '14 at 13:22