Email change implemented!

This commit is contained in:
Marijn Jansen
2017-01-19 13:44:47 +01:00
parent ff19b5e1b9
commit d27538a164
2 changed files with 58 additions and 5 deletions

View File

@@ -26,7 +26,7 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") {
$result = updatePassword();
break;
case "email":
$result = $notImplemented;
$result = changeEmail();
break;
case "picture":
$result = $notImplemented;

View File

@@ -106,18 +106,18 @@ function updatePassword() {
if (changePassword()) {
return new settingsMessage("happy", "Wachtwoord gewijzigd.");
} else {
return new settingsMessage("settings-message-angry", "Er is iets mis gegaan.");
return new settingsMessage("angry", "Er is iets mis gegaan.");
}
} else {
return new settingsMessage("settings-message-angry", "Wachtwoorden komen niet oveeen.");
return new settingsMessage("angry", "Wachtwoorden komen niet oveen.");
}
} else {
return new settingsMessage("settings-message-angry", "Oud wachtwoord niet correct.");
return new settingsMessage("angry", "Oud wachtwoord niet correct.");
}
}
function changePassword() {
$stmt =$GLOBALS["db"]->prepare("
$stmt = $GLOBALS["db"]->prepare("
UPDATE
`user`
SET
@@ -131,4 +131,57 @@ function changePassword() {
$stmt->bindParam(":userID", $_SESSION["userID"]);
$stmt->execute();
return $stmt->rowCount();
}
function changeEmail() {
if ($_POST["email"] == $_POST["email-confirm"]) {
$email = strtolower($_POST["email"]);
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
//check if email exists
if (emailIsAvailableInDatabase($email)) {
if (doChangeEmail($email)) {
return new settingsMessage("happy", "Emailadres is veranderd.");
} else {
return new settingsMessage("angry", "Er is iets mis gegaan.");
}
} else {
return new settingsMessage("angry", "Emailadres bestaat al.");
}
} else {
return new settingsMessage("angry", "Geef een geldig emailadres.");
}
} else {
return new settingsMessage("angry", "Emailadressen komen niet overeen.");
}
}
function emailIsAvailableInDatabase($email) {
$stmt = $GLOBALS["db"]->prepare("
SELECT
`email`
FROM
`user`
WHERE
`email` = :email
");
$stmt->bindParam(":email", $email);
$stmt->execute();
return !$stmt->rowCount();
}
function doChangeEmail($email) {
$stmt = $GLOBALS["db"]->prepare("
UPDATE
`user`
SET
`email` = :email
WHERE
`userID` = :userID
");
$stmt->bindParam(":email", $email);
$stmt->bindParam(":userID", $_SESSION["userID"]);
$stmt->execute();
return $stmt->rowCount();
}