diff --git a/src/php/api/User.php b/src/php/api/User.php index ad2ed94..22c1099 100644 --- a/src/php/api/User.php +++ b/src/php/api/User.php @@ -23,7 +23,7 @@ class User { } } } else if (password_verify($password, $user['password'])) { - $this->db->execute('UPDATE users SET last_login=' . time() . ' WHERE id=' . $user['id']); + $this->db->execute('UPDATE users SET last_login=current_timestamp() WHERE id=' . $user['id']); $token = $this->generateUserToken($user['id'], $user['current_dictionary']); return array( 'token' => $token, @@ -42,7 +42,7 @@ class User { public function create ($email, $password, $user_data) { $insert_user_query = 'INSERT INTO users (email, password, public_name, allow_email, created_on) -VALUES (?, ?, ?, ?, ?)'; +VALUES (?, ?, ?, ?, current_timestamp())'; $password_hash = password_hash($password, PASSWORD_DEFAULT); $insert_user = $this->db->execute($insert_user_query, array( @@ -50,7 +50,6 @@ VALUES (?, ?, ?, ?, ?)'; $password_hash, $user_data['publicName'] !== '' ? $user_data['publicName'] : null, $user_data['allowEmail'] ? 1 : 0, - time(), )); if ($insert_user === true) { $new_user_id = $this->db->lastInsertId(); @@ -346,7 +345,7 @@ VALUES (?, ?, ?, ?, ?)'; } private function hasMembership ($id) { - $current_membership = "SELECT * FROM memberships WHERE user=$id AND start_date>=CURRENT_TIMESTAMP AND CURRENT_TIMESTAMPdb->query($current_membership)->rowCount() > 0; } diff --git a/src/structure.sql b/src/structure.sql index 41301a1..3772876 100644 --- a/src/structure.sql +++ b/src/structure.sql @@ -21,7 +21,7 @@ CREATE TABLE IF NOT EXISTS `dictionaries` ( `last_updated` int(11) DEFAULT NULL, `created_on` int(11) NOT NULL, PRIMARY KEY (`id`) -) ENGINE=MyISAM AUTO_INCREMENT=500 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=MyISAM AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; DELIMITER $$ CREATE TRIGGER IF NOT EXISTS `delete_dictionary_parts` AFTER DELETE ON `dictionaries` FOR EACH ROW BEGIN DELETE FROM words WHERE words.dictionary=old.id; @@ -33,16 +33,16 @@ DELIMITER ; CREATE TABLE IF NOT EXISTS `dictionary_linguistics` ( `dictionary` int(11) NOT NULL, - `parts_of_speech` text COLLATE utf8_unicode_ci NOT NULL COMMENT 'Comma-separated', - `consonants` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'Space-separated', - `vowels` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'Space-separated', - `blends` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'Space-separated', - `onset` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'Comma-separated', - `nucleus` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'Comma-separated', - `coda` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'Comma-separated', - `exceptions` text COLLATE utf8_unicode_ci NOT NULL COMMENT 'Markdown', - `orthography_notes` text COLLATE utf8_unicode_ci NOT NULL COMMENT 'Markdown', - `grammar_notes` text COLLATE utf8_unicode_ci NOT NULL COMMENT 'Markdown', + `parts_of_speech` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT 'Comma-separated', + `consonants` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'Space-separated', + `vowels` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'Space-separated', + `blends` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'Space-separated', + `onset` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'Comma-separated', + `nucleus` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'Comma-separated', + `coda` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'Comma-separated', + `exceptions` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT 'Markdown', + `orthography_notes` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT 'Markdown', + `grammar_notes` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT 'Markdown', UNIQUE KEY `dictionary` (`dictionary`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -62,13 +62,13 @@ CREATE TABLE IF NOT EXISTS `users` ( `public_name` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Someone', `current_dictionary` int(11) DEFAULT NULL, `allow_email` tinyint(1) NOT NULL DEFAULT 1, - `last_login` int(11) DEFAULT NULL, + `last_login` datetime DEFAULT NULL, `password_reset_code` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, - `password_reset_date` datetime DEFAULT NULL, - `created_on` int(11) NOT NULL, + `password_reset_date` timestamp NULL DEFAULT NULL, + `created_on` datetime DEFAULT current_timestamp(), PRIMARY KEY (`id`), UNIQUE KEY `email` (`email`) -) ENGINE=MyISAM AUTO_INCREMENT=200 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=MyISAM AUTO_INCREMENT=500 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; DELIMITER $$ CREATE TRIGGER IF NOT EXISTS `Delete_User_Dictionaries` AFTER DELETE ON `users` FOR EACH ROW DELETE FROM dictionaries WHERE dictionaries.user = old.id $$