diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 6a141ca..0000000 --- a/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# Database -*.db diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/form.php b/form.php old mode 100644 new mode 100755 index b3d9bbc..1938733 --- a/form.php +++ b/form.php @@ -1 +1,21 @@ + + Guestbook + +
+ +
+
+
+
+ '); - foreach($msg as $key => $value) { - echo('
'); - echo("$key: $value"); - echo('
'); - } + $usr = userFromMessage($db, $msg['id_msg']); + $username = $usr ? $usr['username'] : 'Anonymous'; + + echo($username); + echo('
'); + echo('---'); + echo('
'); + echo($msg['content']); + echo('
'); echo(''); echo('
'); } + ?> + + diff --git a/persistence.php b/persistence.php old mode 100644 new mode 100755 index 8eda79b..7858a81 --- a/persistence.php +++ b/persistence.php @@ -63,7 +63,7 @@ function getMessages(SQLite3 $db, array $filter = [], int $limit = 25) { return $ret; } -function storeMessage(SQLite3 $db, string $content, ?int $user_id = null) { +function storeMessage(SQLite3 $db, string $content, ?int $user_id = null) : bool { $query = 'INSERT INTO message(id_user, content, date) VALUES (:id_user, :content, :date)'; @@ -73,6 +73,18 @@ function storeMessage(SQLite3 $db, string $content, ?int $user_id = null) { $statement->bindParam(':content', $content); $statement->bindParam(':date', $date); $statement->execute(); + return ($db->changes() > 0); +} + +function storeUser(SQLite3 $db, string $username, string $password) : bool { + $query = 'INSERT INTO user(username, password) + VALUES (:username, :password)'; + + $statement = $db->prepare($query); + $statement->bindParam(':username', $username); + $statement->bindParam(':password', $password); + $statement->execute(); + return ($db->changes() > 0); } function deleteMessage(SQLite3 $db, int $message_id) : int { @@ -82,9 +94,25 @@ function deleteMessage(SQLite3 $db, int $message_id) : int { $statement = $db->prepare($query); $statement->bindParam(':id_msg', $message_id); $result = $statement->execute(); - if ($result === false) { + if($result === false) { return -1; } // Number of changed rows return $db->changes(); } + +function userFromMessage(SQLite3 $db, int $message_id) { + $query = 'SELECT user.id_user, user.username + FROM user, message + WHERE message.id_user = user.id_user + AND message.id_msg = :id_msg'; + + $statement = $db->prepare($query); + $statement->bindParam(':id_msg', $message_id); + $result = $statement->execute(); + + + $array = $result->fetchArray(); + if(!$array) return null; + return ['id' => $array['id_user'], 'username' => $array['username']]; +}