Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * Created by PhpStorm.
- * User: Thomas kjos
- * Date: 08.04.2016
- * Time: 13:33
- */
- class member
- {
- private $member_Id;
- private $member_name;
- private $email;
- private $email_checked;
- private $logged_in;
- private $hash_salted;
- private $permissions;
- private $post_count;
- private $comment_count;
- private $randomvalue;
- public function __construct()
- {
- }
- public static function loadAllUsers()
- {
- $serverQuery = db()->prepare("SELECT * FROM member");
- if ($serverQuery->execute()) {
- $users = array();
- while ($user = $serverQuery->fetchObject('member')) {
- $users[] = $user;
- }
- return $users;
- } else {
- return false;
- }
- }
- public function loginUser($username, $password)
- {
- $serverQuery = db()->prepare("SELECT * FROM member WHERE member_name=:username");
- $serverQuery->bindParam(':username', $username, PDO::PARAM_STR);
- $serverQuery->execute();
- $data = $serverQuery->fetch(PDO::FETCH_ASSOC);
- $this->bindUserData($data);
- $passwordCheck = password_verify($password, $this->hash_salted);
- if ($passwordCheck && $this->email_checked == 1) {
- $this->logged_in = true;
- echo "Success";
- return true;
- } else if ($passwordCheck && $this->email_checked == 0) {
- echo "Brukeren er ikke validert";
- return false;
- } else {
- echo "Brukernavn eller passord er feil!";
- return false;
- }
- }
- public function bindUserData($data)
- {
- $this->member_Id = $data['member_Id'];
- $this->member_name = $data['member_name'];
- $this->hash_salted = $data['hash_salt'];
- $this->email = $data['email'];
- $this->permissions = $data['permissions'];
- $this->email_checked = $data['email_checked'];
- $this->post_count = $data['post_count'];
- $this->comment_count =$data['comment_count'];
- }
- public function registerUser($username, $password, $email)
- {
- $this->member_name = $username;
- $this->hash_salted = password_hash($password, PASSWORD_DEFAULT);
- $this->email = $email;
- $this->email_checked = 0;
- $this->post_count = 0;
- $this->permissions = 0;
- $this->randomvalue = random_int(1000000000, 2147483647);
- $datetoday = date('Y-m-d H:i:s');
- $serverQuery = db()->prepare("INSERT INTO member (member_name, hash_salt, email, created, permissions, randomvalue, email_checked, post_count)
- VALUES (:memberName, :hashSalt, :email,:created,:permissions,:randomvalue,:email_checked,:post_count)");
- $serverQuery->bindParam(':memberName', $this->member_name, PDO::PARAM_STR);
- $serverQuery->bindParam(':hashSalt', $this->hash_salted, PDO::PARAM_STR);
- $serverQuery->bindParam(':email', $this->email, PDO::PARAM_STR);
- $serverQuery->bindParam(':created', $datetoday, PDO::PARAM_STR);
- $serverQuery->bindParam(':permissions', $this->permissions, PDO::PARAM_INT);
- $serverQuery->bindParam(':randomvalue', $this->randomvalue, PDO::PARAM_INT);
- $serverQuery->bindParam(':email_checked', $this->email_checked, PDO::PARAM_BOOL);
- $serverQuery->bindParam(':post_count', $this->post_count, PDO::PARAM_INT);
- $serverQuery->execute();
- }
- public function sendValidationEmail($username, $email)
- {
- $subject = "New account registration";
- $message = "Welcome " . $username . ", you need to verify your account, to do so click this link: http://" . $_SERVER['HTTP_HOST'] . "/prosjekt/registerForm.php?value=" . $this->randomvalue;
- mail($email, $subject, $message);
- }
- public function validateUser($randomValue)
- {
- $validValue = 1;
- $serverQuery = db()->prepare("UPDATE member SET email_checked = :validValue WHERE randomvalue =:randomvalue ");
- $serverQuery->bindParam(':randomvalue', $randomValue, PDO::PARAM_INT);
- $serverQuery->bindParam(':validValue', $validValue, PDO::PARAM_INT);
- $serverQuery->execute();
- if ($serverQuery->rowCount() == 1) {
- return true;
- } else {
- return false;
- }
- }
- public function changeUserName($name)
- {
- $this->member_name = $name;
- $serverQuery = db()->prepare("UPDATE member SET member_name=:newName WHERE member_Id=:id");
- $serverQuery->bindParam('newName', $this->member_name, PDO::PARAM_STR);
- $serverQuery->bindParam(':id', $this->member_Id, PDO::PARAM_INT);
- $serverQuery->execute();
- if ($serverQuery) {
- return true;
- } else {
- return false;
- }
- }
- public function sendUserRequestToChangeMail()
- {
- $this->randomvalue = random_int(1000000000, 2147483647);
- $serverQuery = db()->prepare("UPDATE member SET randomvalue=:randomValue Where member_Id=:id");
- $serverQuery->bindParam(':randomValue', $this->randomvalue, PDO::PARAM_STR);
- $serverQuery->bindParam(':id', $this->member_Id, PDO::PARAM_INT);
- $serverQuery->execute();
- $subject = "Email change request";
- $message = $this->member_name . " Someone has requested an email change for this account, if it was you and you intend to change the email you can use this link to do so: http://" . $_SERVER['HTTP_HOST'] . "/prosjekt/Profile.php?value=" . $this->randomvalue;
- mail($this->email, $subject, $message);
- }
- public function sendUserRequestToChangePassword()
- {
- $this->randomvalue = random_int(1000000000, 2147483647);
- $serverQuery = db()->prepare("UPDATE member SET randomvalue=:randomValue Where member_Id=:id");
- $serverQuery->bindParam(':randomValue', $this->randomvalue, PDO::PARAM_STR);
- $serverQuery->bindParam(':id', $this->member_Id, PDO::PARAM_INT);
- $serverQuery->execute();
- $subject = "Password change request";
- $message = $this->member_name . " Someone has requested an password change for this account, if it was you and you intend to change the password you can use this link to do so: http://" . $_SERVER['HTTP_HOST'] . "/prosjekt/Profile.php?pwdcreq=" . $this->randomvalue;
- mail($this->email, $subject, $message);
- }
- public function changeUserPassword($password, $randomvalue)
- {
- $this->hash_salted = password_hash($password, PASSWORD_DEFAULT);
- $serverQuery = db()->prepare("UPDATE member SET hash_salt=:hash_salted WHERE randomvalue=:randomvalue");
- $serverQuery->bindParam(':hash_salted', $this->hash_salted, PDO::PARAM_STR);
- $serverQuery->bindParam(':randomvalue', $randomvalue, PDO::PARAM_INT);
- if ($serverQuery->execute()) {
- return true;
- } else {
- return false;
- }
- }
- public function changeUserEmail($newMail, $randomvalue)
- {
- $this->email = $newMail;
- $serverQuery = db()->prepare("UPDATE member SET email=:newMail WHERE member_Id=:id AND randomvalue=:randomvalue");
- $serverQuery->bindParam('newMail', $this->email, PDO::PARAM_STR);
- $serverQuery->bindParam(':id', $this->member_Id, PDO::PARAM_INT);
- $serverQuery->bindParam(':randomvalue', $randomvalue, PDO::PARAM_INT);
- if ($serverQuery->execute()) {
- return true;
- } else {
- return false;
- }
- }
- public function forgotPassword($username)
- {
- $this->randomvalue = random_int(1000000000, 2147483647);
- $serverQuery = db()->prepare("UPDATE member SET randomvalue=:randomvalue WHERE member_name =:username");
- $serverQuery->bindParam(':randomvalue', $this->randomvalue, PDO::PARAM_INT);
- $serverQuery->bindParam(':username', $username, PDO::PARAM_STR);
- if ($serverQuery->execute()) {
- $this->sendForgotPasswordMail();
- return true;
- } else {
- return false;
- }
- }
- private function sendForgotPasswordMail()
- {
- $serverQuery = db()->prepare("SELECT email FROM member WHere randomvalue = :randomValue");
- $serverQuery->bindParam(':randomValue', $this->randomvalue, PDO::PARAM_INT);
- if ($serverQuery->execute()) {
- $data = $serverQuery->fetch(PDO::FETCH_ASSOC);
- $to = $data['email'];
- $subject = "Forgot Password";
- $message = "It seems you have forgot your password. To change it you can click this link: http://" . $_SERVER['HTTP_HOST'] . "/prosjekt/RegisterForm.php?forgotPassword=" . $this->randomvalue;
- mail($to, $subject, $message);
- }
- }
- public function authenticateUser()
- {
- if ($this->logged_in && $this->email_checked) {
- return true;
- } else {
- return false;
- }
- } // do i need this?
- public function getUserId()
- {
- return $this->member_Id;
- }
- public function getRandomValue()
- {
- return $this->randomvalue;
- }
- public function setUserId($member_Id)
- {
- $this->member_Id = $member_Id;
- }
- public function getUserName()
- {
- return $this->member_name;
- }
- public function setUserName($member_name)
- {
- $this->member_name = $member_name;
- }
- public function getUserEmail()
- {
- return $this->email;
- }
- public function incrementCommentCount()
- {
- $this->comment_count++;//should probably just do this in the database but this is good enough for now
- }
- public function setUserEmail($member_email)
- {
- $this->email = $member_email;
- }
- public function getValidUser()
- {
- return $this->email_checked;
- }
- public function setValidUser($valid_user)
- {
- $this->email_checked = $valid_user;
- }
- public function getLoggedIn()
- {
- return $this->logged_in;
- }
- public function setLoggedIn($logged_in)
- {
- $this->logged_in = $logged_in;
- }
- public function getHashSalted()
- {
- return $this->hash_salted;
- }
- public function getPermissions()
- {
- return $this->permissions;
- }
- public function setPermissions($permissions)
- {
- $this->permissions = $permissions;
- }
- public function getPostCount()
- {
- return $this->post_count;
- }
- public function getCommentCount()
- {
- return $this->comment_count;
- }
- public function checkIfUserAlreadyExists($clean_username)
- {
- $serverQuery = db()->prepare("SELECT * FROM member WHERE member_name =:username");
- $serverQuery->bindParam(':username', $clean_username, PDO::PARAM_STR);
- $serverQuery->execute();
- return $serverQuery->rowCount();
- }
- public function checkIfEmailAlreadyExists($clean_email)
- {
- $serverQuery = db()->prepare("SELECT * FROM member WHERE email =:email");
- $serverQuery->bindParam(':email', $clean_email, PDO::PARAM_STR);
- $serverQuery->execute();
- return $serverQuery->rowCount();
- }
- public function deleteSelectedUser($id)
- {
- $serverQuery = db()->prepare("DELETE FROM member WHERE member_Id=:id");
- $serverQuery->bindParam(':id', $id, PDO::PARAM_INT);
- if ($serverQuery->execute()) {
- //do something, give feedback that it was successfull
- } else {
- //tell the user that it failed
- }
- }
- public function giveUserAdminPriv($id)
- {
- $giveAdminPermissions = 1;
- $serverQuery = db()->prepare("UPDATE member SET permissions = :permissions WHERE member_Id=:id ");
- $serverQuery->bindParam(':permissions', $giveAdminPermissions, PDO::PARAM_INT);
- $serverQuery->bindParam(':id', $id, PDO::PARAM_INT);
- $serverQuery->execute();
- }
- public function removeUserAdminPriv($id)
- {
- $giveAdminPermissions = 0;
- $serverQuery = db()->prepare("UPDATE member SET permissions = :permissions WHERE member_Id=:id ");
- $serverQuery->bindParam(':permissions', $giveAdminPermissions, PDO::PARAM_INT);
- $serverQuery->bindParam(':id', $id, PDO::PARAM_INT);
- $serverQuery->execute();
- }
- public function updateUserPostCount($id)
- {
- $serverQuery = db()->prepare("UPDATE member SET post_count = post_count+1 WHERE member_Id=:id");
- $serverQuery->bindParam(':id', $id, PDO::PARAM_INT);
- $serverQuery->execute();
- $this->post_count = $this->post_count++;
- }
- public function updateUserCommentCount($id)
- {
- $serverQuery = db()->prepare("UPDATE member SET comment_count = comment_count+1 WHERE member_Id=:id");
- $serverQuery->bindParam(':id', $id, PDO::PARAM_INT);
- $serverQuery->execute();
- $this->comment_count = $this->comment_count++;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement