diff --git a/website/public/API/nietSlecht.php b/website/public/API/nietSlecht.php
new file mode 100644
index 0000000..e37c8e0
--- /dev/null
+++ b/website/public/API/nietSlecht.php
@@ -0,0 +1,41 @@
+prepare("
+ SELECT
+ `userID`
+ FROM
+ `niet_slecht`
+ WHERE
+ `postID` = :postID
+ ");
+ $stmt->bindParam(":postID", $postID);
+ $stmt->execute();
+ return $stmt->rowCount();
+}
+
+function getNietSlechtUsersForPost(int $postID) {
+ $stmt = $GLOBALS["db"]->prepare("
+ SELECT
+ `fname`,
+ `lname`,
+ CONCAT(`user`.`fname`, ' ', `user`.`lname`) as `fullname`
+ FROM
+ `user`
+ INNER JOIN
+ `niet_slecht`
+ WHERE
+ `user`.`userID` = `niet_slecht`.`userID` AND
+ `niet_slecht`.`postID` = :postID
+ ");
+ $stmt->bindParam(":postID", $postID);
+ $stmt->execute();
+ $rows = $stmt->fetchAll();
+ foreach ($rows as $row) {
+ print($row["fullname"]);
+ }
+}
\ No newline at end of file
diff --git a/website/public/API/postComment.php b/website/public/API/postComment.php
index b840e0b..30c02eb 100644
--- a/website/public/API/postComment.php
+++ b/website/public/API/postComment.php
@@ -5,14 +5,25 @@ session_start();
require("../../queries/post.php");
require("../../queries/connect.php");
require("../../queries/checkInput.php");
-if (empty($_POST['newcomment-content'])) {
- echo 0;
-} else {
- if(makeComment($_POST['postID'],
- $_SESSION['userID'],
- test_input($_POST['newcomment-content']))) {
+print_r($_POST);
+if ($_POST['button'] == 'reaction') {
+ if (empty($_POST['newcomment-content'])) {
+ echo 0;
+ } else {
+ if (makeComment($_POST['postID'],
+ $_SESSION['userID'],
+ test_input($_POST['newcomment-content']))) {
+ echo 1;
+ } else {
+ echo 0;
+ }
+ }
+} else if ($_POST['button'] == 'nietslecht') {
+ if (makeNietSlecht($_POST["postID"], $_SESSION["userID"])) {
echo 1;
} else {
echo 0;
}
+} else {
+ echo 0;
}
\ No newline at end of file
diff --git a/website/public/js/chat.js b/website/public/js/chat.js
index 06f85df..773a819 100644
--- a/website/public/js/chat.js
+++ b/website/public/js/chat.js
@@ -1,3 +1,5 @@
+var previousDate = new Date("1970-01-01 00:00:00");
+
$(document).ready(function() {
loadMessages();
sayEmpty();
@@ -31,17 +33,28 @@ function sendMessage() {
}
function addMessages(messages) {
- for(i in messages) {
+ for(var i in messages) {
+ thisDate = new Date(messages[i].creationdate);
+ thisDate.setHours(0,0,0,0);
if (messages[i].destination == $(".destinationID").val()) {
type = "chat-message-self";
} else {
type = "chat-message-other";
}
-
+ if (thisDate > previousDate) {
+ previousDate = thisDate;
+ $("#chat-history").append('\
+
\
+
\
+ ' + days[thisDate.getDay()] + " " + thisDate.getDate() + " " + months[thisDate.getMonth()] + " " + thisDate.getFullYear() + '\
+
\
+
\
+ ');
+ }
$("#chat-history").append('\
\
\
- ' + messages[i].content + '\
+ ' + fancyText(messages[i].content) + '\
\
\
');
@@ -49,6 +62,7 @@ function addMessages(messages) {
}
function switchUser(userID) {
+ previousDate = new Date("1970-01-01 00:00:00");
$(".chat-field").show();
$(".destinationID").val(userID);
$("#chat-history").html("");
diff --git a/website/public/js/friendButtons.js b/website/public/js/friendButtons.js
index 7b511a5..bdc3cc8 100644
--- a/website/public/js/friendButtons.js
+++ b/website/public/js/friendButtons.js
@@ -4,12 +4,14 @@ function placeFriendButtons() {
friendshipStatus = data;
$buttonContainer = $("div.friend-button-container");
$buttonContainer.children().remove();
+ $("#start-profile-chat-form").hide();
if (friendshipStatus == -1) {
return;
} else if(friendshipStatus == 0) {
$buttonContainer.append($(" Bevriend "));
} else if(friendshipStatus == 1) {
$buttonContainer.append($(" Verwijder "));
+ $("#start-profile-chat-form").show();
} else if(friendshipStatus == 2) {
$buttonContainer.append($(" Trek verzoek in "));
} else if(friendshipStatus == 3) {
diff --git a/website/public/js/header.js b/website/public/js/header.js
index 9889bdb..bdf5fe3 100644
--- a/website/public/js/header.js
+++ b/website/public/js/header.js
@@ -1,5 +1,4 @@
$(document).ready(function() {
-
// Toggle menu
$("#own-profile-picture, #open-notifications").click(function() {
if ($("#notification-center").css('right') == "-256px") {
@@ -8,12 +7,22 @@ $(document).ready(function() {
$(".modal").width("calc(100% - 512px)");
$(".content").css("margin-right", "256px");
$("#notification-center").css("right", "0px");
+
+ // Add cookie so the menu stays open on other pages
+ document.cookie = "menu=open; path=/";
} else {
// Make the menu invisible and move the content to the right.
$("#chat-history").width("calc(100% - 331px)");
$(".modal").width("calc(100% - 256px)");
$(".content").css("margin-right", "0px");
$("#notification-center").css("right", "-256px");
+
+ // Change menu cookie to close
+ document.cookie = "menu=closed; path=/";
}
});
+
+ if (getCookie("menu") == "open") {
+ $("#own-profile-picture").click();
+ }
});
diff --git a/website/public/js/main.js b/website/public/js/main.js
index 8a52797..dfd6c38 100644
--- a/website/public/js/main.js
+++ b/website/public/js/main.js
@@ -1,3 +1,34 @@
+var days = ["zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"];
+var months = ["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"]
+
+function fancyText(text) {
+
+ // Add images and gifs.
+ var regex = /(https:\/\/.[^ ]*\.(?:png|jpg|jpeg|gif))/ig;
+ text = text.replace(regex, function(img) {
+ return " ";
+ });
+
+ // Add links.
+ // regex = /(https:\/\/.[^ ]*\.(?:net|com|nl))/ig;
+ // text = text.replace(regex, function(link) {
+ // return "LINK ";
+ // });
+
+ return text;
+}
+
+function getCookie(key) {
+ cookies = document.cookie.split("; ");
+ for (var i in cookies) {
+ cookie = cookies[i].split("=");
+ if (cookie[0] == key) {
+ return cookie[1];
+ }
+ }
+ return false;
+}
+
function editFriendship(userID, value) {
$.post("API/editFriendship.php", { usr: userID, action: value })
.done(function() {
diff --git a/website/public/js/post.js b/website/public/js/post.js
index 62ace68..1906428 100644
--- a/website/public/js/post.js
+++ b/website/public/js/post.js
@@ -1,7 +1,9 @@
-function postComment() {
+function postComment(buttonValue) {
+ formData = $("#newcommentform").serializeArray();
+ formData.push({name: "button", value: buttonValue});
$.post(
"API/postComment.php",
- $("#newcommentform").serialize()
+ formData
);
$("#newcomment").val("");
@@ -13,6 +15,4 @@ function postComment() {
).done(function (data) {
$('#modal-response').html(data);
});
-}
-
-
+}
\ No newline at end of file
diff --git a/website/public/js/registerAndLogin.js b/website/public/js/registerAndLogin.js
index b2fda05..87522cf 100644
--- a/website/public/js/registerAndLogin.js
+++ b/website/public/js/registerAndLogin.js
@@ -1,5 +1,5 @@
function checkLoggedIn() {
- if (confirm("You are already logged in!\nDo you want to logout?\nPress ok to logout.") == true) {
+ if (confirm("U bent al ingelogd!!\nWilt u uitloggen?\nKlik ok om uit te loggen.") == true) {
window.location.href = "logout.php";
} else {
window.location.href = "profile.php";
@@ -7,9 +7,9 @@ function checkLoggedIn() {
}
function bannedAlert(){
- alert("Your account is banned");
+ alert("Uw account is geband!");
}
function emailNotConfirmed(){
- alert("Your account has not been verified yet!\nAnother email has been sent to you")
+ alert("Uw account is nog niet bevestigd!\nEr is een nieuwe email gestuurd om uw account te bevestigen");
}
diff --git a/website/public/js/search.js b/website/public/js/search.js
index b3c322a..c026b64 100644
--- a/website/public/js/search.js
+++ b/website/public/js/search.js
@@ -8,7 +8,6 @@ function searchUsers(n, m) {
filter: $("#search-filter").val()
}
).done(function(data) {
- console.log(data);
if (!showFriends(data, "#search-users-list", 0, "profile.php", "GET")) {
$("#search-users-list").text("Niemand gevonden");
}
@@ -25,7 +24,6 @@ function searchGroups(n, m) {
filter: $("#search-filter").val()
}
).done(function(data) {
- console.log(data);
if (!showGroups(data, "#search-groups-list")) {
$("#search-groups-list").text("Geen groepen gevonden");
}
diff --git a/website/public/login.php b/website/public/login.php
index 0515793..9fd7fb0 100644
--- a/website/public/login.php
+++ b/website/public/login.php
@@ -19,16 +19,24 @@
";
}
+ // define variables and set to empty values
+ $name = $surname = $bday = $username = $password = $confirmpassword = $location = $housenumber = $email = $confirmEmail = $captcha = $ip = "";
+ $genericErr = $nameErr = $surnameErr = $bdayErr = $usernameErr = $passwordErr = $confirmpasswordErr = $locationErr = $housenumberErr = $emailErr = $confirmEmailErr = $captchaErr = "";
+ $correct = true;
+ $day_date = "dag";
+ $month_date = "maand";
+ $year_date = "jaar";
+
// Define variables and set to empty values
- $uname = $psw ="";
+ $user = $psw = $remember ="";
$loginErr = $resetErr ="";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
switch ($_POST["submit"]) {
case "login":
try {
- $uname = ($_POST["uname"]);
- validateLogin($_POST["uname"], $_POST["psw"]);
+ $user = ($_POST["user"]);
+ validateLogin($_POST["user"], $_POST["psw"]);
} catch(loginException $e) {
$loginErr = $e->getMessage();
}
@@ -46,19 +54,10 @@
";
}
break;
-
+ case "register":
+ include("register.php");
}
}
-// // Trying to login
-// if ($_SERVER["REQUEST_METHOD"] == "POST") {
-// try{
-// $uname = ($_POST["uname"]);
-// validateLogin($_POST["uname"], $_POST["psw"]);
-// } catch(loginException $e) {
-// $loginErr = $e->getMessage();
-// }
-// }
-
/* This view adds login view */
include("../views/login-view.php");
?>
diff --git a/website/public/profile.php b/website/public/profile.php
index a79ad4c..95c5b86 100644
--- a/website/public/profile.php
+++ b/website/public/profile.php
@@ -8,6 +8,7 @@
diff --git a/website/public/register(stash).php b/website/public/register(stash).php
new file mode 100644
index 0000000..0077e62
--- /dev/null
+++ b/website/public/register(stash).php
@@ -0,0 +1,115 @@
+
+
+
+
+getMessage();
+ }
+
+ try {
+ $surname = test_input(($_POST["surname"]));
+ checkInputChoice($surname, "lettersAndSpaces");
+ }
+ catch(lettersAndSpacesException $e){
+ $correct = false;
+ $surnameErr = $e->getMessage();
+ }
+
+ try{
+ $day_date = test_input(($_POST["day_date"]));
+ $month_date = test_input(($_POST["month_date"]));
+ $year_date = test_input(($_POST["year_date"]));
+ $bday = $year_date . "-" . $month_date . "-" . $day_date;
+ checkInputChoice($bday, "bday");
+ } catch(bdayException $e){
+ $correct = false;
+ $bdayErr = $e->getMessage();
+ }
+
+ try{
+ $username = str_replace(' ', '', test_input(($_POST["username"])));
+ checkInputChoice($username, "username");
+ } catch(usernameException $e){
+ $correct = false;
+ $usernameErr = $e->getMessage();
+ }
+
+ try{
+ $password = str_replace(' ', '', test_input(($_POST["password"])));
+ checkInputChoice($password, "longerEight");
+ matchPassword();
+ } catch(passwordException $e){
+ $correct = false;
+ $passwordErr = $e->getMessage();
+ } catch(confirmPasswordException $e){
+ $correct = false;
+ $confirmPasswordErr = $e->getMessage();
+ }
+
+ try{
+ $location = test_input(($_POST["location"]));
+ checkInputChoice($location, "lettersAndSpaces");
+ } catch(lettersAndSpacesException $e){
+ $correct = false;
+ $locationErr = $e->getMessage();
+ }
+
+ try{
+ $email = test_input(($_POST["email"]));
+ checkInputChoice($email, "email");
+ $confirmEmail = test_input(($_POST["confirmEmail"]));
+ matchEmail();
+ } catch(emailException $e){
+ $correct = false;
+ $emailErr = $e->getMessage();
+ } catch(confirmEmailException $e){
+ $correct = false;
+ $confirmEmailErr = $e->getMessage();
+ }
+
+ try{
+ $captcha = $_POST['g-recaptcha-response'];
+ checkCaptcha($captcha);
+ } catch(captchaException $e){
+ $correct = false;
+ $captchaErr = $e->getMessage();
+ }
+
+ try {
+ getIp();
+ registerCheck($correct);
+ sendConfirmEmailUsername($username);
+ } catch(registerException $e){
+ $genericErr = $e->getMessage();
+ }
+ }
+/* This view adds register view */
+include("../views/register-view.php");
+?>
+
+
diff --git a/website/public/register.php b/website/public/register.php
index 1ce4817..6bebd7e 100644
--- a/website/public/register.php
+++ b/website/public/register.php
@@ -1,104 +1,91 @@
-
-
-
-getMessage();
}
- // define variables and set to empty values
- $name = $surname = $bday = $username = $password = $confirmpassword = $location = $housenumber = $email = $captcha = $ip = "";
- $genericErr = $nameErr = $surnameErr = $bdayErr = $usernameErr = $passwordErr = $confirmpasswordErr = $locationErr = $housenumberErr = $emailErr = $captchaErr = "";
- $correct = true;
- // Trying to register an account
- if ($_SERVER["REQUEST_METHOD"] == "POST") {
- try {
- $name = test_input(($_POST["name"]));
- checkInputChoice($name, "lettersAndSpaces");
- } catch(lettersAndSpacesException $e){
- $correct = false;
- $nameErr = $e->getMessage();
- }
-
- try {
- $surname = test_input(($_POST["surname"]));
- checkInputChoice($surname, "lettersAndSpaces");
- }
- catch(lettersAndSpacesException $e){
- $correct = false;
- $surnameErr = $e->getMessage();
- }
-
- try{
- $bday = test_input(($_POST["bday"]));
- checkInputChoice($bday, "bday");
- } catch(bdayException $e){
- $correct = false;
- $bdayErr = $e->getMessage();
- }
-
- try{
- $username = str_replace(' ', '', test_input(($_POST["username"])));
- checkInputChoice($username, "username");
- } catch(usernameException $e){
- $correct = false;
- $usernameErr = $e->getMessage();
- }
-
- try{
- $password = str_replace(' ', '', test_input(($_POST["password"])));
- checkInputChoice($password, "longerEight");
- matchPassword();
- } catch(passwordException $e){
- $correct = false;
- $passwordErr = $e->getMessage();
- } catch(confirmPasswordException $e){
- $correct = false;
- $confirmPasswordErr = $e->getMessage();
- }
-
- try{
- $location = test_input(($_POST["location"]));
- checkInputChoice($location, "lettersAndSpaces");
- } catch(lettersAndSpacesException $e){
- $correct = false;
- $locationErr = $e->getMessage();
- }
-
- try{
- $email = test_input(($_POST["email"]));
- checkInputChoice($email, "email");
- } catch(emailException $e){
- $correct = false;
- $emailErr = $e->getMessage();
- }
-
- try{
- $captcha = $_POST['g-recaptcha-response'];
- checkCaptcha($captcha);
- } catch(captchaException $e){
- $correct = false;
- $captchaErr = $e->getMessage();
- }
-
- try {
- getIp();
- registerCheck($correct);
- sendConfirmEmailUsername($username);
- } catch(registerException $e){
- $genericErr = $e->getMessage();
- }
+ try {
+ $surname = test_input(($_POST["surname"]));
+ checkInputChoice($surname, "lettersAndSpaces");
+ }
+ catch(lettersAndSpacesException $e){
+ $correct = false;
+ $surnameErr = $e->getMessage();
+ }
+
+ try{
+ $day_date = test_input(($_POST["day_date"]));
+ $month_date = test_input(($_POST["month_date"]));
+ $year_date = test_input(($_POST["year_date"]));
+ $bday = $year_date . "-" . $month_date . "-" . $day_date;
+ checkInputChoice($bday, "bday");
+ } catch(bdayException $e){
+ $correct = false;
+ $bdayErr = $e->getMessage();
+ }
+
+ try{
+ $username = str_replace(' ', '', test_input(($_POST["username"])));
+ checkInputChoice($username, "username");
+ } catch(usernameException $e){
+ $correct = false;
+ $usernameErr = $e->getMessage();
+ }
+
+ try{
+ $password = str_replace(' ', '', test_input(($_POST["password"])));
+ checkInputChoice($password, "longerEight");
+ matchPassword();
+ } catch(passwordException $e){
+ $correct = false;
+ $passwordErr = $e->getMessage();
+ } catch(confirmPasswordException $e){
+ $correct = false;
+ $confirmPasswordErr = $e->getMessage();
+ }
+
+ try{
+ $location = test_input(($_POST["location"]));
+ checkInputChoice($location, "lettersAndSpaces");
+ } catch(lettersAndSpacesException $e){
+ $correct = false;
+ $locationErr = $e->getMessage();
+ }
+
+ try{
+ $email = test_input(($_POST["email"]));
+ checkInputChoice($email, "email");
+ $confirmEmail = test_input(($_POST["confirmEmail"]));
+ matchEmail();
+ } catch(emailException $e){
+ $correct = false;
+ $emailErr = $e->getMessage();
+ } catch(confirmEmailException $e){
+ $correct = false;
+ $confirmEmailErr = $e->getMessage();
+ }
+
+ try{
+ $captcha = $_POST['g-recaptcha-response'];
+ checkCaptcha($captcha);
+ } catch(captchaException $e){
+ $correct = false;
+ $captchaErr = $e->getMessage();
+ }
+
+ try {
+ getIp();
+ registerCheck($correct);
+ sendConfirmEmailUsername($username);
+ } catch(registerException $e){
+ echo "";
+ $genericErr = $e->getMessage();
}
-/* This view adds register view */
-include("../views/register-view.php");
-?>
-
-
diff --git a/website/public/styles/chat.css b/website/public/styles/chat.css
index 6822d21..0ba5af4 100644
--- a/website/public/styles/chat.css
+++ b/website/public/styles/chat.css
@@ -1,3 +1,8 @@
+
+body {
+ overflow: hidden;
+}
+
/* Overall chat-screen */
.chat {
position: fixed;
@@ -37,6 +42,22 @@
}
/* Chat-message takes the whole width of the chat area */
+.day-message {
+ width: 100%;
+ min-height: 40px;
+ padding: 10px 0;
+ clear: both;
+ text-align: center;
+}
+
+.day-message-content {
+ width: auto;
+ padding: 10px;
+
+ background-color: #F8F8F8;
+ color: #666;
+}
+
.chat-message {
width: 100%;
min-height: 40px;
@@ -105,4 +126,8 @@
.active-friend-chat {
background: #4CAF50;
color: white;
+}
+
+.chat-message img {
+ max-width: 100%;
}
\ No newline at end of file
diff --git a/website/public/styles/index.css b/website/public/styles/index.css
index 97d6f63..6f7caf0 100644
--- a/website/public/styles/index.css
+++ b/website/public/styles/index.css
@@ -30,8 +30,10 @@ form {
border-radius: 12px;
height: 85%;
margin: auto;
- width: 80%;
- overflow-y:auto;
+ width: 600px;
+ overflow-y: auto;
+ overflow-x: hidden;
+
}
@@ -44,13 +46,13 @@ h1 {
/* registreer titel*/
h2 {
- padding: 16px;
+ padding: 8px;
text-align: left;
font-size: 2.0em;
}
h3 {
- padding: 16px;
+ padding: 8px;
text-align: center;
font-size: 1.5em;
}
@@ -61,11 +63,15 @@ input[type=text], input[type=password], input[type=email], input[type="date"] {
display: inline-block;
height: 60%;
font-size: 16px;
- padding: 8px 20px;
+ padding: 8px 10px;
margin: 4px 0;
width: 55%;
}
+.middle{
+ text-align: center;
+}
+
.center{
text-align: center;
}
@@ -77,7 +83,7 @@ button {
cursor: pointer;
height: 50%;
padding: 8px 20px;
- margin: 10px;
+ margin: 5px;
font-family: Arial;
font-size: 22px;
box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
@@ -88,6 +94,7 @@ button {
font-family: Arial;
font-size: 15px;
color: red;
+ text-align: left;
}
label {
@@ -96,19 +103,19 @@ label {
/* padding voor registreer container */
.login_containerregister {
- padding: 16px;
+ padding: 8px;
text-align: left;
}
/* padding voor login_containers */
.login_containerlogin {
- padding:16px;
+ padding:8px;
text-align: center;
}
/* padding voor foutmelding login */
.login_containerfault {
- padding: 16px;
+ padding: 4px;
text-align: center;
color: red;
}
@@ -127,10 +134,14 @@ label {
background-attachment: fixed;*/
box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
height: 400px;
- margin: 34px auto;
+ margin: 16px auto;
overflow-y: auto;
padding: 20px;
- width: 45%;
+ width: 600px;
+}
+
+select{
+ width: 18%;
}
ul {
@@ -143,12 +154,12 @@ ul {
display: none; /* Hidden by default */
position: fixed; /* Stay in place */
z-index: 1; /* Sit on top */
- padding-top: 100px; /* Location of the box */
+ padding-top: 30px; /* Location of the box */
left: 0;
top: 0;
width: 100%; /* Full width */
height: 100%; /* Full height */
- overflow: auto; /* Enable scroll if needed */
+ overflow: hidden; /* Enable scroll if needed */
background-color: rgb(0,0,0); /* Fallback color */
background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
}
@@ -160,7 +171,7 @@ ul {
margin: auto;
padding: 0;
border: 1px solid #888;
- width: 500px;
+ width: 600px;
box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);
-webkit-animation-name: animatetop;
-webkit-animation-duration: 0.4s;
@@ -183,7 +194,7 @@ ul {
.close {
color: white;
float: right;
- font-size: 28px;
+ font-size: 36px;
font-weight: bold;
}
@@ -195,15 +206,16 @@ ul {
}
.modal-header {
- padding: 2px 16px;
+ padding: 4px 16px;
background-color: #FBC02D;
color: black;
}
-.modal-body {padding: 2px 16px;}
+.modal-body {
+ padding: 2px 16px;
+}
.modal-footer {
- padding: 2px 16px;
background-color: #FBC02D;
color: black;
-}
\ No newline at end of file
+}
diff --git a/website/public/styles/main.css b/website/public/styles/main.css
index abda8be..0c37afa 100644
--- a/website/public/styles/main.css
+++ b/website/public/styles/main.css
@@ -275,3 +275,16 @@ div[data-title]:hover:after {
display: inline-block;
vertical-align: middle;
}
+
+::-webkit-scrollbar {
+ width: 5px;
+ height: 5px;
+}
+::-webkit-scrollbar-track {
+ background: none;
+}
+::-webkit-scrollbar-thumb {
+ -webkit-border-radius: 20px;
+ border-radius: 20px;
+ background: #4CAF50;
+}
\ No newline at end of file
diff --git a/website/public/styles/post-popup.css b/website/public/styles/post-popup.css
index 11fe03b..c6e96c1 100644
--- a/website/public/styles/post-popup.css
+++ b/website/public/styles/post-popup.css
@@ -69,4 +69,9 @@
.commentcontent {
margin: 5px auto;
width: 95%;
+}
+
+.nietslecht {
+ font-family: Impact, Anton, sans-serif;
+ text-shadow: -1.5px 0 1px black, 0 1.5px 1px black, 1px 0 1.5px black, 0 -1.5px 1px black;
}
\ No newline at end of file
diff --git a/website/public/styles/profile.css b/website/public/styles/profile.css
index 85b2db5..becbeca 100644
--- a/website/public/styles/profile.css
+++ b/website/public/styles/profile.css
@@ -30,6 +30,7 @@ div.posts div.post {
width: calc(100% - 40px);
cursor: pointer;
transition-duration: 250ms;
+ word-wrap: break-word;
}
div.posts div.post:hover {
diff --git a/website/queries/checkInput.php b/website/queries/checkInput.php
index 9b91833..52b830f 100644
--- a/website/queries/checkInput.php
+++ b/website/queries/checkInput.php
@@ -38,8 +38,7 @@ function checkName($variable){
if (empty($variable)) {
throw new lettersAndSpacesException("Verplicht!");
} else if (!preg_match("/^[a-zA-Z ]*$/", $variable)) {
-
- throw new lettersAndSpacesException("Alleen letters en spaties zijn toegestaan!");
+ throw new lettersAndSpacesException("Alleen letters en spaties zijn toegestaan!");
}
}
@@ -48,12 +47,12 @@ function validateBday($variable){
if (empty($variable)) {
throw new bdayException("Verplicht!");
} else {
- if (!(validateDate($variable, "Y/m/d"))) {
+ if (!(validateDate($variable, "Y-m-d"))) {
throw new bdayException("Geen geldige datum");
} else {
- $dateNow = date("Y/m/d");
+ $dateNow = date("Y-m-d");
if ($dateNow < $variable) {
- throw new bdayException("Geen geldige datum");
+ throw new bdayException("Geen geldige datum!");
}
}
}
@@ -97,6 +96,12 @@ function validateEmail($variable){
}
}
+function matchEmail(){
+ if (strtolower($_POST["email"]) != strtolower($_POST["confirmEmail"])){
+ throw new confirmEmailException("Emails matchen niet!");
+ }
+}
+
/* checks if an input is a valid email. */
function resetEmail($variable){
if (empty($variable)) {
@@ -119,11 +124,11 @@ function matchPassword(){
/* Checks if captcha is correctly filled in */
function checkCaptcha($captcha){
if(!$captcha){
- throw new captchaException("Captcha needs to be filled in!");
+ throw new captchaException("Captcha moet ingevuld worde!");
} else {
$response=json_decode(file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=6Lc72xIUAAAAAPizuF3nUbklCPljVCVzgYespz8o&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']));
if($response->success==false) {
- throw new captchaException("You are a spammer!");
+ throw new captchaException("Je bent een spammer!");
}
}
}
@@ -206,6 +211,14 @@ class emailException extends Exception
}
}
+class confirmEmailException extends Exception
+{
+ public function __construct($message = "", $code = 0, Exception $previous = null)
+ {
+ parent::__construct($message, $code, $previous);
+ }
+}
+
class captchaException extends Exception
{
public function __construct($message = "", $code = 0, Exception $previous = null)
diff --git a/website/queries/login.php b/website/queries/login.php
index 2af255a..384a3d5 100644
--- a/website/queries/login.php
+++ b/website/queries/login.php
@@ -9,10 +9,11 @@ function getUser() {
FROM
`user`
WHERE
- `username` LIKE :username
+ `username` LIKE :username OR
+ `email` LIKE :username
");
- $stmt->bindParam(":username", $_POST["uname"]);
+ $stmt->bindValue(":username", test_input($_POST["user"]));
$stmt->execute();
return $stmt->fetch(PDO::FETCH_ASSOC);
}
@@ -20,7 +21,7 @@ function getUser() {
function validateLogin($username, $password){
// Empty username or password field
if (empty($username) || empty($password)) {
- throw new loginException("Gebruikersnaam of wachtwoord is niet ingevuld");
+ throw new loginException("Inloggegevens zijn niet ingevuld");
}
else {
$psw = test_input($password);
@@ -41,6 +42,9 @@ function validateLogin($username, $password){
";
} else {
$_SESSION["userID"] = $userID;
+// if($_POST[rememberMe] == 1){
+// ini_set("session.gc_maxlifetime", "10");
+// }
header("location: profile.php");
}
} else {
diff --git a/website/queries/post.php b/website/queries/post.php
index 5940267..df1e227 100644
--- a/website/queries/post.php
+++ b/website/queries/post.php
@@ -75,7 +75,7 @@ function makePost($userID, $groupID, $title, $content) {
$stmt->execute();
}
-function makeComment($postID, $userID, $content) {
+function makeComment($postID, $userID, $content) : int {
$stmt = $GLOBALS["db"]->prepare("
INSERT INTO
`comment` (
@@ -94,4 +94,55 @@ function makeComment($postID, $userID, $content) {
$stmt->bindParam(':userID', $userID);
$stmt->bindParam(':content', $content);
$stmt->execute();
-}
\ No newline at end of file
+ return $stmt->rowCount();
+}
+
+function makeNietSlecht(int $postID, int $userID) : int {
+ if (checkNietSlecht($postID, $userID)) {
+ return deleteNietSlecht($postID, $userID);
+ } else {
+ return addNietSlecht($postID, $userID);
+ }
+}
+
+function checkNietSlecht(int $postID, int $userID) {
+ $stmt = $GLOBALS["db"]->prepare("
+ SELECT
+ *
+ FROM
+ `niet_slecht`
+ WHERE
+ `userID` = :userID AND
+ `postID` = :postID
+ ");
+ $stmt->bindParam(":userID", $userID);
+ $stmt->bindParam(":postID", $postID);
+ $stmt->execute();
+ return $stmt->rowCount();
+}
+
+function addNietSlecht(int $postID, int $userID) {
+ $stmt = $GLOBALS["db"]->prepare("
+ INSERT INTO
+ `niet_slecht` (`userID`, `postID`)
+ VALUES (:userID, :postID)
+ ");
+ $stmt->bindParam(":userID", $userID);
+ $stmt->bindParam(":postID", $postID);
+ $stmt->execute();
+ return $stmt->rowCount();
+}
+
+function deleteNietSlecht(int $postID, int $userID) {
+ $stmt = $GLOBALS["db"]->prepare("
+ DELETE FROM
+ `niet_slecht`
+ WHERE
+ `userID` = :userID AND
+ `postID` = :postID
+ ");
+ $stmt->bindParam(":userID", $userID);
+ $stmt->bindParam(":postID", $postID);
+ $stmt->execute();
+ return $stmt->rowCount();
+}
diff --git a/website/queries/private_message.php b/website/queries/private_message.php
index fecea2b..4d48d3a 100644
--- a/website/queries/private_message.php
+++ b/website/queries/private_message.php
@@ -1,91 +1,105 @@
prepare("
+ SELECT
+ *
+ FROM
+ `private_message`
+ WHERE
+ `origin` = :user1 AND
+ `destination` = :user2 OR
+ `origin` = :user2 AND
+ `destination` = :user1
+ ORDER BY
+ `messageID` ASC
+ ");
- $stmt = $GLOBALS["db"]->prepare("
- SELECT
- *
- FROM
- `private_message`
- WHERE
- `origin` = :user1 AND
- `destination` = :user2 OR
- `origin` = :user2 AND
- `destination` = :user1
- ORDER BY
- `messageID` ASC
- ");
+ $stmt->bindParam(":user1", $user1ID);
+ $stmt->bindParam(":user2", $user2ID);
- $stmt->bindParam(":user1", $user1ID);
- $stmt->bindParam(":user2", $user2ID);
+ $stmt->execute();
- $stmt->execute();
-
- return json_encode($stmt->fetchAll());
+ return json_encode($stmt->fetchAll());
+ } else {
+ return "[]";
+ }
}
function sendMessage($destination, $content) {
- $stmt = $GLOBALS["db"]->prepare("
- INSERT INTO
- `private_message`
- (
- `origin`,
- `destination`,
- `content`
- )
- VALUES
- (
- :origin,
- :destination,
- :content
- )
- ");
+ require_once("friendship.php");
+ if (getFriendshipStatus($destination) == 1) {
+ $stmt = $GLOBALS["db"]->prepare("
+ INSERT INTO
+ `private_message`
+ (
+ `origin`,
+ `destination`,
+ `content`
+ )
+ VALUES
+ (
+ :origin,
+ :destination,
+ :content
+ )
+ ");
- return $stmt->execute(array(
- "origin" => $_SESSION["userID"],
- "destination" => $destination,
- "content" => $content
- ));
+ return $stmt->execute(array(
+ "origin" => $_SESSION["userID"],
+ "destination" => $destination,
+ "content" => $content
+ ));
+ } else {
+ return false;
+ }
}
function getNewChatMessages($lastID, $destination) {
- $stmt = $GLOBALS["db"]->prepare("
- SELECT
- *
- FROM
- `private_message`
- WHERE
- (
- `origin` = :user1 AND
- `destination` = :user2 OR
- `origin` = :user2 AND
- `destination` = :user1) AND
- `messageID` > :lastID
- ORDER BY
- `messageID` ASC
- ");
+ require_once("friendship.php");
+ if (getFriendshipStatus($destination) == 1) {
+ $stmt = $GLOBALS["db"]->prepare("
+ SELECT
+ *
+ FROM
+ `private_message`
+ WHERE
+ (
+ `origin` = :user1 AND
+ `destination` = :user2 OR
+ `origin` = :user2 AND
+ `destination` = :user1) AND
+ `messageID` > :lastID
+ ORDER BY
+ `messageID` ASC
+ ");
- $stmt->bindParam(':user1', $_SESSION["userID"]);
- $stmt->bindParam(':user2', $destination);
- $stmt->bindParam(':lastID', $lastID);
+ $stmt->bindParam(':user1', $_SESSION["userID"]);
+ $stmt->bindParam(':user2', $destination);
+ $stmt->bindParam(':lastID', $lastID);
- $stmt->execute();
+ $stmt->execute();
- return json_encode($stmt->fetchAll());
+ return json_encode($stmt->fetchAll());
+ } else {
+ return "[]";
+ }
}
function selectAllUnreadChat() {
$stmt = $GLOBALS["db"]->prepare("
SELECT
- LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 15) as `fullname`,
+ LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 15) AS `fullname`,
`user`.`userID`,
IFNULL(
`profilepicture`,
'../img/avatar-standard.png'
) AS profilepicture,
- LEFT(`private_message`.`content`, 15) as `content`
+ LEFT(`private_message`.`content`, 15) AS `content`
FROM
`private_message`,
`friendship`,
@@ -101,7 +115,8 @@ function selectAllUnreadChat() {
`friendship`.chatLastVisted2 IS NULL)) AND
`private_message`.`origin` = `user`.`userID` AND
`private_message`.`destination` = :userID AND
- `user`.`role` != 'banned'
+ `user`.`role` != 'banned' AND
+ `friendship`.`status` = 'confirmed'
GROUP BY `user`.`userID`
diff --git a/website/queries/register.php b/website/queries/register.php
index 738ef43..bc44acf 100644
--- a/website/queries/register.php
+++ b/website/queries/register.php
@@ -10,7 +10,7 @@ function getExistingUsername() {
`username` LIKE :username
");
- $stmt->bindParam(":username", $_POST["username"]);
+ $stmt->bindValue(":username", test_input($_POST["username"]));
$stmt->execute();
return $stmt->rowCount();
@@ -26,7 +26,7 @@ function getExistingEmail() {
`email` LIKE :email
");
- $stmt->bindParam(":email", $_POST["email"]);
+ $stmt->bindValue(":email", test_input($_POST["email"]));
$stmt->execute();
return $stmt->rowCount();
@@ -42,7 +42,7 @@ function getResetEmail() {
`email` LIKE :email
");
- $stmt->bindParam(":email", $_POST["forgotEmail"]);
+ $stmt->bindValue(":email", test_input($_POST["forgotEmail"]));
$stmt->execute();
return $stmt->rowCount();
@@ -70,15 +70,21 @@ function registerAccount() {
$hash=password_hash($_POST["password"], 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", (strtolower($_POST["email"])));
+ $stmt->bindValue(":fname", test_input($_POST["name"]));
+ $stmt->bindValue(":lname", test_input($_POST["surname"]));
+ $stmt->bindValue(":bday", test_input($_POST["bday"]));
+ $stmt->bindValue(":username", test_input($_POST["username"]));
+ $stmt->bindValue(":password", test_input($hash));
+ $stmt->bindValue(":location", test_input($_POST["location"]));
+ $stmt->bindValue(":email", test_input(strtolower($_POST["email"])));
$stmt->execute();
$stmt->rowCount();
}
+
+function submitselect($date, $value){
+ if ($date == $value){
+ echo "selected";
+ }
+}
?>
diff --git a/website/queries/requestpassword.php b/website/queries/requestpassword.php
index c0ff462..bae825a 100644
--- a/website/queries/requestpassword.php
+++ b/website/queries/requestpassword.php
@@ -50,5 +50,5 @@ function setHashToDatabase(int $userID, string $hash) {
$stmt->bindParam(":hash", $hash);
$stmt->bindParam(":userID", $userID);
$stmt->execute();
- return $stmt->rowCount();
+ $stmt->rowCount();
}
\ No newline at end of file
diff --git a/website/queries/settings.php b/website/queries/settings.php
index 0bf8791..05e7fbf 100644
--- a/website/queries/settings.php
+++ b/website/queries/settings.php
@@ -1,6 +1,10 @@
fetch();
}
+/**
+ * Gets the passwordHas form the database
+ * @return mixed passwordhash
+ */
function getPasswordHash() {
$stmt = $GLOBALS["db"]->prepare("
SELECT
@@ -73,6 +91,10 @@ function getPasswordHash() {
return $stmt->fetch();
}
+/**
+ * Changes the setting from post.
+ * @throws HappyAlert
+ */
function updateSettings() {
$stmt = $GLOBALS["db"]->prepare("
UPDATE
@@ -82,7 +104,9 @@ function updateSettings() {
`lname` = :lname,
`location` = :location,
`birthdate` = :bday,
- `bio` = :bio
+ `bio` = :bio,
+ `showEmail` = :showEmail,
+ `showBday` = :showBday
WHERE
`userID` = :userID
");
@@ -92,15 +116,22 @@ function updateSettings() {
$stmt->bindValue(":location", test_input($_POST["location"]));
$stmt->bindValue(":bday", test_input($_POST["bday"]));
$stmt->bindValue(":bio", test_input($_POST["bio"]));
+ $stmt->bindValue(":showEmail", test_input($_POST["showEmail"]));
+ $stmt->bindValue(":showBday", test_input($_POST["showBday"]));
+
$stmt->bindValue(":userID", $_SESSION["userID"]);
$stmt->execute();
throw new HappyAlert("Instellingen zijn opgeslagen.");
}
+/**
+ * Change
+ * @throws AngryAlert
+ */
function changePassword() {
$user = getPasswordHash();
- if (password_verify($_POST["password-old"], $user["password"])) {
- if ($_POST["password-new"] == $_POST["password-confirm"] && (strlen($_POST["password-new"]) >= 8)) {
+ if (password_verify($_POST["password-old"], test_input($user["password"]))) {
+ if (test_input($_POST["password-new"]) == test_input($_POST["password-confirm"]) && (strlen(test_input($_POST["password-new"])) >= 8)) {
doChangePassword();
} else {
throw new AngryAlert("Wachtwoorden komen niet overeen.");
@@ -110,6 +141,10 @@ function changePassword() {
}
}
+/**
+ * @throws AngryAlert
+ * @throws HappyAlert
+ */
function doChangePassword() {
$stmt = $GLOBALS["db"]->prepare("
UPDATE
@@ -134,8 +169,8 @@ function doChangePassword() {
function changeEmail() {
- if ($_POST["email"] == $_POST["email-confirm"]) {
- $email = strtolower($_POST["email"]);
+ if (test_input($_POST["email"]) == test_input($_POST["email-confirm"])) {
+ $email = strtolower(test_input($_POST["email"]));
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
//check if email exists
emailIsAvailableInDatabase($email);
@@ -193,7 +228,6 @@ function updateAvatar() {
$tmpImg = $_FILES["pp"]["tmp_name"];
checkAvatarSize($tmpImg);
- removeOldAvatar();
if (getimagesize($tmpImg)["mime"] == "image/gif") {
if ($_FILES["pp"]["size"] > 4000000) {
throw new AngryAlert("Bestand is te groot, maximaal 4MB toegestaan.");
@@ -205,6 +239,7 @@ function updateAvatar() {
$scaledImg = scaleAvatar($tmpImg);
imagepng($scaledImg, $profilePictureDir . $relativePath);
}
+ removeOldAvatar();
setAvatarToDatabase("../" . $relativePath);
throw new HappyAlert("Profielfoto veranderd.");
}
diff --git a/website/queries/user.php b/website/queries/user.php
index 9c23721..b9ba986 100644
--- a/website/queries/user.php
+++ b/website/queries/user.php
@@ -35,6 +35,7 @@ function getUsername($userID) {
function selectUser($me, $other) {
$stmt = $GLOBALS["db"]->prepare("
SELECT
+ `userID`,
`username`,
`birthdate`,
`location`,
@@ -94,7 +95,7 @@ function selectAllUserGroups($userID) {
`group_page`.`groupID` = `group_member`.`groupID`
WHERE
`userID` = :userID AND
- `role` = 1
+ `role` = 'member'
");
$stmt->bindParam(':userID', $userID, PDO::PARAM_INT);
@@ -343,9 +344,10 @@ function searchSomeUsers($n, $m, $search) {
FROM
`user`
WHERE
- `username` LIKE :keyword OR
+ (`username` LIKE :keyword OR
`fname` LIKE :keyword OR
- `lname` LIKE :keyword
+ `lname` LIKE :keyword) AND
+ `role` != 'banned'
ORDER BY
`fname`,
`lname`,
diff --git a/website/views/bdayInput.php b/website/views/bdayInput.php
new file mode 100644
index 0000000..f4e440f
--- /dev/null
+++ b/website/views/bdayInput.php
@@ -0,0 +1,37 @@
+
+ dag
+
+ >= $i ?>
+
+
+
+ Maand
+ >januari
+ >februari
+ >maart
+ >april
+ >mei
+ >juni
+ >juli
+ >augustus
+ >september
+ >oktober
+ >november
+ >december
+
+
+ Jaar
+ format("Y");
+ for($i=$year; $i > $year - 100; $i--) {
+ ?>
+ >= $i ?>
+
+
diff --git a/website/views/chat-view.php b/website/views/chat-view.php
index 0d90149..974b441 100644
--- a/website/views/chat-view.php
+++ b/website/views/chat-view.php
@@ -74,6 +74,7 @@
name="content"
id="newContent"
placeholder="Schrijf een bericht..."
+ autocomplete="off"
autofocus
required
/>
diff --git a/website/views/forgotPasswordModal.php b/website/views/forgotPasswordModal.php
new file mode 100644
index 0000000..d3f12f9
--- /dev/null
+++ b/website/views/forgotPasswordModal.php
@@ -0,0 +1,36 @@
+
+Wachtwoord vergeten
+
+
+
\ No newline at end of file
diff --git a/website/views/login-view.php b/website/views/login-view.php
index de4c48b..8edc777 100644
--- a/website/views/login-view.php
+++ b/website/views/login-view.php
@@ -13,12 +13,13 @@
- Gebruikersnaam
+ Gebruikersnaam/Email
@@ -26,6 +27,7 @@
Wachtwoord
+
+
+ Onthoud mij
+
+
-
-
+
\ No newline at end of file
diff --git a/website/views/post-view.php b/website/views/post-view.php
index 61e0e05..e3ceb9b 100644
--- a/website/views/post-view.php
+++ b/website/views/post-view.php
@@ -2,6 +2,7 @@
$postID = $_GET['postID'];
$post = selectPostById($postID)->fetch(PDO::FETCH_ASSOC);
$fullname = $post['fname'] . " " . $post['lname'] . " (" . $post['username'] . ")";
+session_start();
echo("