Merge branch 'master' into lars-chat

This commit is contained in:
Lars van Hijfte
2017-01-18 15:10:17 +01:00
14 changed files with 312 additions and 137 deletions

View File

@@ -1,7 +1,9 @@
<!DOCTYPE html>
<html>
<?php
include("../views/login_head.php");
include("../views/login_head.php");
include_once("../queries/connect.php");
include_once("../queries/login.php");
?>
<body>
<?php
@@ -11,7 +13,6 @@ include("../views/login_head.php");
$uname = $psw ="";
$loginErr ="";
// Trying to login
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Empty username or password field
@@ -20,49 +21,23 @@ include("../views/login_head.php");
}
else {
$uname=$_POST["uname"];
$uname=strtolower($_POST["uname"]);
$psw=$_POST["psw"];
// Protection against MySQL injections
$uname = stripslashes($uname);
$psw = stripslashes($psw);
$uname = mysql_real_escape_string($uname);
$psw = mysql_real_escape_string($psw);
// Database information
$servername = "agile136.science.uva.nl";
$username = "mhbp";
$password = "qdtboXhCHJyL2szC";
// Creates connection
$conn = new mysqli($servername, $username, $password);
// Selects database
$db = mysql_select_db("company", $connection);
// Query for listing all accounts that meets the requirement of the login information
$query = mysql_query("select * from login where password='$psw' AND username='$uname'", $connection);
// Checks if there's an account
$count = mysql_num_rows($query);
$hash=hashPassword()["password"];
$userid=hashPassword()["userID"];
// If there's an account, go to the profile page
if($count == 1) {
$_SESSION[$uname] = $uname;
$_SESSION[$userID] = $userID;
if(password_verify($psw.$uname, $hash)) {
$_SESSION["userID"] = $userid;
header("location: /profile.php");
header("location: myhyvesbookplus.nl/profile.php");
}else {
} else {
$loginErr = "Inloggegevens zijn niet correct";
}
// Closing Connection
mysql_close($connection);
}
}
/* This view adds login view */
include("../views/login-view.php");
?>

View File

@@ -3,6 +3,7 @@
<?php
include("../views/login_head.php");
include_once("../queries/connect.php");
include_once("../queries/register.php");
?>
<body>
@@ -10,8 +11,8 @@
session_start();
// define variables and set to empty values
$name = $surname = $bday = $username = $password = $confirmpassword = $streetname = $housenumber = $email = "";
$genericErr = $nameErr = $surnameErr = $bdayErr = $usernameErr = $passwordErr = $confirmpasswordErr = $streetnameErr = $housenumberErr = $emailErr = "";
$name = $surname = $bday = $username = $password = $confirmpassword = $location = $housenumber = $email = "";
$genericErr = $nameErr = $surnameErr = $bdayErr = $usernameErr = $passwordErr = $confirmpasswordErr = $locationErr = $housenumberErr = $emailErr = "";
$correct = true;
// Saves information of filling in the form
@@ -35,8 +36,8 @@
$password = $_POST["password"];
}
if (isset($_POST["streetname"])) {
$streetname = $_POST["streetname"];
if (isset($_POST["location"])) {
$location = $_POST["location"];
}
if (isset($_POST["housenumber"])) {
@@ -87,6 +88,10 @@
$usernameErr = "Gebruikersnaam moet minstens 6 karakters bevatten";
$correct = false;
} else if (getExistingUsername() == 1){
$usernameErr = "Gebruikersnaam bestaat al";
$correct = false;
}
}
@@ -108,30 +113,24 @@
}
if ($_POST["password"]!= $_POST["confirmpassword"]) {
if ($_POST["password"] != $_POST["confirmpassword"]) {
$confirmpasswordErr = "Wachtwoorden matchen niet";
$correct = false;
}
if (empty($_POST["streetname"])) {
$streetnameErr = "Straatnaam is verplicht!";
if (empty($_POST["location"])) {
$locationErr = "Straatnaam is verplicht!";
$correct = false;
} else {
if (!preg_match("/^[a-zA-Z ]*$/",$streetname)) {
$streetnameErr = "Alleen letters en spaties zijn toegestaan!";
if (!preg_match("/^[a-zA-Z ]*$/",$location)) {
$locationErr = "Alleen letters en spaties zijn toegestaan!";
$correct = false;
}
}
if (empty($_POST["housenumber"])) {
$housenumberErr = "Huisnummer is verplicht!";
$correct = false;
}
if (empty($_POST["email"])) {
$emailErr = "Email is verplicht!";
$correct = false;
@@ -140,6 +139,11 @@
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Geldige email invullen!";
$correct = false;
} else if (getExistingEmail() == 1){
$emailErr = "Email bestaat al";
$correct = false;
}
}
@@ -148,48 +152,9 @@
$genericErr = "Bepaalde velden zijn verkeerd of niet ingevuld!";
} else {
$servername = "agile136.science.uva.nl";
$username = "mhbp";
$password = "qdtboXhCHJyL2szC";
registerAccount();
header("location: login.php");
// Creates connection
$conn = new mysqli($servername, $username, $password);
// Checks connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// Query for inserting all the data in the database
$sql = "INSERT INTO
VALUES ($name, $surname, $bday, $username, $password,
$confirmpassword, $streetname, $housenumber, $email)";
// Checks if able to insert into database
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>
// Closing connection
mysql_close($connection);
}
}

View File

@@ -3,7 +3,6 @@
<head>
<?php
include("../views/head.php");
$_SESSION["userID"] = 2;
include_once("../queries/connect.php");
include_once("../queries/settings.php");
?>
@@ -13,22 +12,26 @@
</head>
<body>
<?php
/*
* This view adds the main layout over the screen.
* Header and menu.
*/
include("../views/main.php");
if ($_SERVER["REQUEST_METHOD"] == "POST") {
updateSettings();
}?>
switch ($_POST["form"]) {
case "profile":
$result = updateSettings();
break;
case "password":
$result = updatePassword();
break;
case "email":
break;
case "picture":
break;
}
}
<?php
/* Add your view files here. */
include("../views/settings-view.php");
/* This adds the footer. */
include("../views/footer.php");
?>

View File

@@ -59,8 +59,9 @@ div[data-title]:hover:after{
body {
height: 900px;
background-image: url(https://images2.pixlis.com/background-image-plaid-checkered-seamless-tileable-235ftm.png);
background-image: url(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTEnqKdVtLbxjKuNsCSCxFRhTOpp3Gm0gsU8bMgA_MeUYyzrUFy);
background-size: contain;
background-repeat: repeat-x;
background-attachment: fixed;
/*background-color: #B78996;*/

View File

@@ -5,6 +5,17 @@
.settings-password {
margin-right: 15px;
}
.settings-message {
color: white;
}
.settings-message-angry {
background-color: firebrick;
}
.settings-message-happy {
background-color: forestgreen;
}
.settings li {

View File

@@ -8,6 +8,4 @@ else {
$GLOBALS["db"] = new PDO("mysql:host=$dbconf->mysql_host;dbname=$dbconf->mysql_database;charset=utf8",
"$dbconf->mysql_username", "$dbconf->mysql_password")
or die('Error connecting to mysql server');
}
?>
}

19
website/queries/login.php Normal file
View File

@@ -0,0 +1,19 @@
<?php
function hashPassword() {
$stmt = $GLOBALS["db"]->prepare("
SELECT
`password`,
`userID`
FROM
`user`
WHERE
`username` LIKE :username
");
$stmt->bindParam(":username", $_POST["uname"]);
$stmt->execute();
return $stmt->fetch(PDO::FETCH_ASSOC);
}
?>

View File

@@ -0,0 +1,62 @@
<?php
function getExistingUsername() {
$stmt = $GLOBALS["db"]->prepare("
SELECT
`username`
FROM
`user`
WHERE
`username` LIKE :username
");
$stmt->bindParam(":username", $_POST["username"]);
$stmt->execute();
return $stmt->rowCount();
}
function getExistingEmail() {
$stmt = $GLOBALS["db"]->prepare("
SELECT * FROM `user` WHERE `email` = :email
");
$stmt->bindParam(":email", $_POST["email"]);
$stmt->execute();
return $stmt->rowCount();
}
function registerAccount() {
$stmt = $GLOBALS["db"]->prepare("
INSERT INTO
`user`(fname,
lname,
birthdate,
username,
password,
location,
email)
VALUES(
:fname,
:lname,
:bday,
:username,
:password,
:location,
:email
)");
$hash=password_hash($_POST["password"].(strtolower($_POST["username"])), PASSWORD_DEFAULT);
$stmt->bindParam(":fname", $_POST["name"]);
$stmt->bindParam(":lname", $_POST["surname"]);
$stmt->bindParam(":bday", $_POST["bday"]);
$stmt->bindParam(":username", $_POST["username"]);
$stmt->bindParam(":password", $hash);
$stmt->bindParam(":location", $_POST["location"]);
$stmt->bindParam(":email", $_POST["email"]);
$stmt->execute();
$stmt->rowCount();
}
?>

View File

@@ -10,9 +10,9 @@ function getSettings() {
`birthdate`,
`bio`,
`profilepicture`
FROM
FROM
`user`
WHERE
WHERE
`userID` = :userID
");
@@ -21,6 +21,21 @@ function getSettings() {
return $stmt->fetch();
}
function getPasswordHash() {
$stmt = $GLOBALS["db"]->prepare("
SELECT
`password`,
`username`
FROM
`user`
WHERE
`userID` = :userID
");
$stmt->bindParam(":userID", $_SESSION["userID"]);
$stmt->execute();
return $stmt->fetch();
}
function updateSettings() {
$stmt = $GLOBALS["db"]->prepare("
UPDATE
@@ -43,4 +58,52 @@ function updateSettings() {
$stmt->bindParam(":userID", $_SESSION["userID"]);
$stmt->execute();
return array (
"type" => "settings-message-happy",
"message" => "Instellingen zijn opgeslagen."
);
}
function updatePassword() {
$user = getPasswordHash();
if (password_verify($_POST["password-old"].strtolower($user["username"]), $user["password"])) {
if ($_POST["password-new"] == $_POST["password-confirm"] && (strlen($_POST["password-new"]) >= 8)) {
if (changePassword($user)) {
return array ("type" => "settings-message-happy",
"message" => "Wachtwoord gewijzigd.");
} else {
return array (
"type" => "settings-message-angry",
"message" => "Er is iets mis gegaan.");
}
} else {
return array (
"type" => "settings-message-angry",
"message" => "Wachtwoorden komen niet oveeen."
);
}
} else {
return array(
"type" => "settings-message-angry",
"message" => "Oud wachtwoord niet correct."
);
}
}
function changePassword($user) {
$stmt =$GLOBALS["db"]->prepare("
UPDATE
`user`
SET
`password` = :new_password
WHERE
`userID` = :userID
");
$hashed_password = password_hash($_POST["password-new"].strtolower($user["username"]), PASSWORD_DEFAULT);
$stmt->bindParam(":new_password", $hashed_password);
$stmt->bindParam(":userID", $_SESSION["userID"]);
$stmt->execute();
return $stmt->rowCount();
}

View File

@@ -94,28 +94,16 @@
<span class="error">* <?php echo $confirmpasswordErr;?></span>
</div>
<!-- Register streetname -->
<!-- Register location -->
<div class="login_containerregister">
<label><b>Straatnaam</b></label>
<label><b>Woonplaats</b></label>
<input type="text"
placeholder="Voer uw straatnaam in"
name="streetname"
value="<?php echo $streetname ?>"
placeholder="Voer uw woonplaats in"
name="location"
value="<?php echo $location ?>"
pattern="[A-Za-z]{1,}"
title="Mag alleen letters bevatten">
<span class="error">* <?php echo $streetnameErr;?></span>
</div>
<!-- Register housenumber -->
<div class="login_containerregister">
<label><b>Huisnummer</b></label>
<input type="text"
placeholder="Voer uw straatnummer in"
name="housenumber"
value="<?php echo $housenumber ?>"
pattern="[1-9][0-9]{0,}"
title="Mag alleen nummers bevatten">
<span class="error">* <?php echo $housenumberErr;?></span>
<span class="error">* <?php echo $locationErr;?></span>
</div>
<!-- Register email -->

View File

@@ -4,6 +4,13 @@ $settings = getSettings();
<div class="content">
<div class="settings">
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
echo "<div class='platform settings-message ${result["type"]}'>
${result["message"]}
</div>";
}
?>
<form class="settings-profile platform" method="post">
<h5>Profiel Instellingen</h5>
<ul>
@@ -40,7 +47,7 @@ $settings = getSettings();
<input type="date"
name="bday"
id="bday"
placeholder="01/01/1900"
placeholder="yyyy-mm-dd"
value="<?= $settings["birthdate"]?>"
>
</li>
@@ -54,9 +61,10 @@ $settings = getSettings();
</li>
<li>
<label></label>
<input type="submit"
value="Opslaan"
>
<button type="submit"
value="profile"
name="form"
>Opslaan</button>
</li>
</ul>
</form>
@@ -108,9 +116,10 @@ $settings = getSettings();
>
</li>
<li>
<input type="submit"
value="Verander wachtwoord"
>
<button type="submit"
name="form"
value="password"
>Verander wachtwoord</button>
</li>
</ul>
</form>
@@ -143,9 +152,10 @@ $settings = getSettings();
>
</li>
<li>
<input type="submit"
value="Verander Email"
>
<button type="submit"
name="form"
value="email"
>Verander Email</button>
</li>
</ul>
</form>