Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- require_once $_SERVER['DOCUMENT_ROOT']."/assets/config/db.php";
- function validateAndRegisterUser($username, $password, $passwordRepeat, $email, $firstName, $lastName) {
- $errors = validateUser($username, $password, $passwordRepeat, $email, $firstName, $lastName);
- if(count($errors) > 0) {
- return $errors;
- }
- registeruser($username, $password, $email, $firstName, $lastName);
- }
- function validateUser($username, $password, $passwordRepeat, $email, $firstName, $lastName) {
- global $PDO;
- $errors = array();
- //check in the database if user exist or email is taken
- $stmt = $PDO->prepare("SELECT username,email FROM login WHERE username=:username OR email=:email");
- $stmt->execute(array(':username'=>$username, ':email'=>$email));
- $row = $stmt->fetch(PDO::FETCH_ASSOC);
- //is username taken?
- if($row['username'] == $username) {
- array_push($errors, "Användarnamnet är upptaget.");
- }
- //is email already taken
- if($row['email'] == $email) {
- array_push($errors, "Denna E-mailen finns redan registrerad hos oss.");
- }
- //validate email
- if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
- array_push($errors, "Vänligen fyll i en giltig E-mail.");
- }
- //validate that passwords match
- if($password != $passwordRepeat) {
- array_push($errors, "Lösenorden matchar inte.");
- }
- //is the password long enough? lets say at least 6 characters
- if(strlen($password) <= 5) {
- array_push($errors, "Lösenordet måste vara minst 6 tecken långt.");
- }
- return $errors;
- }
- function registerUser($username, $password, $email, $firstName, $lastName) {
- global $PDO;
- $sql = "INSERT INTO login(email, password, firstname, lastname, username) VALUES (:email, :password, :firstname, :lastname, :username)";
- $stmt = $PDO->prepare($sql);
- $encryptedPassword = password_hash($password, PASSWORD_BCRYPT);
- $stmt->bindParam(':email', $email, PDO::PARAM_STR);
- $stmt->bindParam(':password', $encryptedPassword, PDO::PARAM_STR);
- $stmt->bindParam(':firstname', $firstName, PDO::PARAM_STR);
- $stmt->bindParam(':lastname', $lastName, PDO::PARAM_STR);
- $stmt->bindParam(':username', $username, PDO::PARAM_STR);
- $success = $stmt->execute();
- }
- function loginUser($username, $password) {
- global $PDO;
- $stmt = $PDO->prepare("SELECT * FROM login WHERE username=:username LIMIT 1");
- $stmt->bindParam(':username', $username);
- $stmt->execute();
- $userRow = $stmt->fetch(PDO::FETCH_ASSOC);
- echo $password;
- if($stmt->rowCount() > 0) {
- if(password_verify($password, $userRow['password'])) {
- $_SESSION['user_session'] = $userRow['id'];
- return true;
- } else {
- return false;
- }
- }
- }
- function userLoggedIn() {
- if(isset($_SESSION['user_session'])) {
- return true;
- }
- }
- function getLoggedInUsername() {
- global $PDO;
- if(!isset($_SESSION['user_session'])) {
- return false;
- }
- $stmt = $PDO->prepare("SELECT * FROM login WHERE id=:id LIMIT 1");
- $stmt->bindParam(':id', $_SESSION['user_session']);
- $stmt->execute();
- $userRow = $stmt->fetch(PDO::FETCH_ASSOC);
- if($stmt->rowCount() > 0) {
- return $userRow['username'];
- }
- }
- function logoutUser() {
- unset($_SESSION['user_session']);
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement