Compare commits
11 Commits
Author | SHA1 | Date | |
---|---|---|---|
eca46f5128 | |||
81ab5332e2 | |||
4b69e73f65 | |||
059d9d5e20 | |||
b681df46d1 | |||
3df4a0f590 | |||
3e28c02ccb | |||
99f1438f77 | |||
c6d1d90c49 | |||
da39c47411 | |||
527ea6d966 |
0
www/msg.dat
Normal file
0
www/msg.dat
Normal file
32
www/public/Moment-0/result.php
Normal file
32
www/public/Moment-0/result.php
Normal file
@ -0,0 +1,32 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="sv">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>Quiz med Formulär och PHP</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Resultat</h1>
|
||||
<?php
|
||||
$points = 0;
|
||||
$ansOne = $_POST['qOne'];
|
||||
$ansTwo = $_POST['qTwo'];
|
||||
|
||||
if($ansOne == 'php')
|
||||
$points++;
|
||||
if($ansTwo == 'js')
|
||||
$points++;
|
||||
|
||||
echo '<strong>Du fick '.$points.' av 2 möjliga</strong>';
|
||||
|
||||
|
||||
$id = $_GET['id'];
|
||||
$name = $_GET['name'];
|
||||
$age = $_GET['age'];
|
||||
|
||||
echo '<p>Du är '.$age.' och heter '.$name.' och har id '.$id.'</p>';
|
||||
echo '<p>Det här är ett test</p>';
|
||||
echo '<p>Försök två att inte ha merge conflicts</p>';
|
||||
echo '<p>Försök 3</p>';
|
||||
?>
|
||||
</body>
|
||||
</html>
|
@ -7,7 +7,7 @@
|
||||
<body>
|
||||
<?php
|
||||
|
||||
$file = "../../../user.dat";
|
||||
$file = "../../../userM2.dat";
|
||||
|
||||
function addUser($newUser, $file) {
|
||||
|
||||
|
@ -1,25 +1,17 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Document</title>
|
||||
</head>
|
||||
<body>
|
||||
<?php
|
||||
function cleanData($data) {
|
||||
mb_internal_encoding("UTF-8");
|
||||
|
||||
if(!mb_check_encoding($data)){
|
||||
header('Location: start.php');
|
||||
}
|
||||
|
||||
$data = strip_tags($data);
|
||||
$data = htmlspecialchars($data);
|
||||
$data = trim($data);
|
||||
$data = stripslashes($data);
|
||||
return $data;
|
||||
<?php
|
||||
function cleanData($data)
|
||||
{
|
||||
mb_internal_encoding("UTF-8");
|
||||
|
||||
if (!mb_check_encoding($data)) {
|
||||
header('Location: start.php');
|
||||
}
|
||||
|
||||
$data = strip_tags($data);
|
||||
$data = htmlspecialchars($data);
|
||||
$data = trim($data);
|
||||
$data = stripslashes($data);
|
||||
return $data;
|
||||
}
|
||||
?>
|
||||
</body>
|
||||
</html>
|
BIN
www/public/Moment-3&4/bilder/bgImg.png
Executable file
BIN
www/public/Moment-3&4/bilder/bgImg.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 45 KiB |
137
www/public/Moment-3&4/css/styleSheet.css
Executable file
137
www/public/Moment-3&4/css/styleSheet.css
Executable file
@ -0,0 +1,137 @@
|
||||
@CHARSET "UTF-8";
|
||||
* {
|
||||
margin:0;
|
||||
padding:0;
|
||||
font-family:Verdana, Geneva, sans-serif;
|
||||
}
|
||||
body{
|
||||
font-size: 100%;
|
||||
}
|
||||
p {
|
||||
font-size: 0.8em;
|
||||
margin-bottom: 10px;
|
||||
margin-top: 5px;
|
||||
margin-right: 10px;
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
/* Wrapper */
|
||||
#wrapper {
|
||||
width: 800px;
|
||||
margin-left: auto;
|
||||
margin-right:auto;
|
||||
margin-top:10px;
|
||||
border: 2px solid rgba(0,0,0,0.8);
|
||||
}
|
||||
/* End wrapper */
|
||||
|
||||
/* Header */
|
||||
header {
|
||||
text-align:center;
|
||||
height: 60px;
|
||||
background-image: url("../bilder/bgImg.png");
|
||||
|
||||
color: white;
|
||||
}
|
||||
header h1{
|
||||
font-family: Arial;
|
||||
font-size: 1.9em;
|
||||
padding-top: 0.25em;
|
||||
}
|
||||
|
||||
header time{
|
||||
float: right;
|
||||
margin-right: 2em;
|
||||
font-size: 0.8em;
|
||||
}
|
||||
/* End header */
|
||||
|
||||
nav{
|
||||
border-radius: 5px; /* CSS3 */
|
||||
border: 1px solid #999;
|
||||
padding: 4px;
|
||||
margin-bottom:5px;
|
||||
}
|
||||
nav ul {
|
||||
list-style:none;
|
||||
}
|
||||
nav li{
|
||||
margin-top: 5px;
|
||||
border: 1px solid #000;
|
||||
}
|
||||
nav li a{
|
||||
display:block;
|
||||
font-size: 0.8em;
|
||||
text-decoration: none;
|
||||
color: #aa0000;
|
||||
padding-left: 15px;
|
||||
background-color:#FFC;
|
||||
}
|
||||
nav li a:hover, #leftColumn li a:active, #leftColumn li a:focus{
|
||||
background-color: gray;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
aside {
|
||||
-moz-border-radius: 5px; /* Ger rundade hörn i Firefox */
|
||||
border-radius: 5px; /* CSS3 */
|
||||
border: 1px solid #999;
|
||||
padding: 4px;
|
||||
margin-bottom:5px;
|
||||
}
|
||||
|
||||
aside p {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
/* leftColumn */
|
||||
#leftColumn {
|
||||
float: left;
|
||||
width: 180px;
|
||||
margin: 8px;
|
||||
}
|
||||
|
||||
#leftColumn h1 {
|
||||
font-family:Arial, Helvetica, sans-serif;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
/* End leftColumn */
|
||||
/* Main */
|
||||
main {
|
||||
margin-top: 8px;
|
||||
margin-left:200px;
|
||||
}
|
||||
main h1{
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
font-size: 1.4em;
|
||||
}
|
||||
main h2{
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
main section{
|
||||
float:right;
|
||||
width: 99%;
|
||||
}
|
||||
|
||||
form label,a{
|
||||
font-size: 0.8em;
|
||||
}
|
||||
/* End content */
|
||||
/* Footer */
|
||||
footer {
|
||||
height: 30px;
|
||||
background-image: url("../bilder/bgImg.png");
|
||||
color: white;
|
||||
font-size: 0.75em;
|
||||
clear:both;
|
||||
}
|
||||
footer #footerRight{
|
||||
float:right;
|
||||
padding: 5px;
|
||||
}
|
||||
footer #footerLeft{
|
||||
float:left;
|
||||
padding: 5px;
|
||||
}
|
||||
/* End footer */
|
24
www/public/Moment-3&4/dataBas/addUser.php
Normal file
24
www/public/Moment-3&4/dataBas/addUser.php
Normal file
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
$file = "../../userM3.dat";
|
||||
|
||||
function addUser($newUser, $file) {
|
||||
|
||||
if(file_exists($file)){
|
||||
$users = unserialize(file_get_contents($file));
|
||||
$users[] = $newUser;
|
||||
file_put_contents($file, serialize($users));
|
||||
} else {
|
||||
$users = array();
|
||||
$users[] = $newUser;
|
||||
file_put_contents($file, serialize($users));
|
||||
}
|
||||
}
|
||||
|
||||
function readUserData($file) {
|
||||
if(file_exists($file)){
|
||||
$users = unserialize(file_get_contents($file));
|
||||
}
|
||||
return $users;
|
||||
}
|
||||
?>
|
11
www/public/Moment-3&4/dataBas/besökRäknare.php
Normal file
11
www/public/Moment-3&4/dataBas/besökRäknare.php
Normal file
@ -0,0 +1,11 @@
|
||||
<?php
|
||||
$hit = 0;
|
||||
|
||||
if (file_exists("../../hit.dat")) {
|
||||
$hit = file_get_contents("../../hit.dat");
|
||||
}
|
||||
|
||||
$hit++;
|
||||
file_put_contents("../../hit.dat", $hit);
|
||||
echo "Antal användare: " . $hit;
|
||||
?>
|
17
www/public/Moment-3&4/dataBas/cleanData.php
Normal file
17
www/public/Moment-3&4/dataBas/cleanData.php
Normal file
@ -0,0 +1,17 @@
|
||||
|
||||
<?php
|
||||
function cleanData($data)
|
||||
{
|
||||
mb_internal_encoding("UTF-8");
|
||||
|
||||
if (!mb_check_encoding($data)) {
|
||||
header('Location: start.php');
|
||||
}
|
||||
|
||||
$data = strip_tags($data);
|
||||
$data = htmlspecialchars($data);
|
||||
$data = trim($data);
|
||||
$data = stripslashes($data);
|
||||
return $data;
|
||||
}
|
||||
?>
|
11
www/public/Moment-3&4/dataBas/saveMSG.php
Normal file
11
www/public/Moment-3&4/dataBas/saveMSG.php
Normal file
@ -0,0 +1,11 @@
|
||||
<?php
|
||||
include('cleanData.php');
|
||||
if(isset($_POST['message']) && $_SESSION['CSRFToken'] === $_POST['CSRFToken']) {
|
||||
$name = "<hr><p>Från: " . $_SESSION['förnamn'] . ' ' . $_SESSION['efternamn'] ."</p>";
|
||||
$msg = "<p>" . $_POST['message'] . "</p>";
|
||||
$msg = cleanData($msg);
|
||||
|
||||
file_put_contents("../../msg.dat", $name . $msg, FILE_APPEND);
|
||||
}
|
||||
|
||||
?>
|
36
www/public/Moment-3&4/dataBas/user.php
Normal file
36
www/public/Moment-3&4/dataBas/user.php
Normal file
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
class user {
|
||||
|
||||
private $förnamn;
|
||||
private $efternamn;
|
||||
private $användarnamn;
|
||||
private $lösenord;
|
||||
|
||||
public function __construct($förnamn, $efternamn, $användarnamn, $lösenord) {
|
||||
$this->förnamn = $förnamn;
|
||||
$this->efternamn = $efternamn;
|
||||
$this->användarnamn = $användarnamn;
|
||||
$this->lösenord = $lösenord;
|
||||
}
|
||||
|
||||
public function getFörnamn() {
|
||||
return $this->förnamn;
|
||||
}
|
||||
|
||||
public function getEfternamn() {
|
||||
return $this->efternamn;
|
||||
}
|
||||
|
||||
public function getAnvändarnamn() {
|
||||
return $this->användarnamn;
|
||||
}
|
||||
|
||||
public function getLösenord() {
|
||||
return $this->lösenord;
|
||||
}
|
||||
|
||||
public function setLösenord($lösenord) {
|
||||
$this->lösenord = $lösenord;
|
||||
}
|
||||
}
|
||||
?>
|
83
www/public/Moment-3&4/inLoggning.php
Normal file
83
www/public/Moment-3&4/inLoggning.php
Normal file
@ -0,0 +1,83 @@
|
||||
<?php
|
||||
include('dataBas/user.php');
|
||||
include('dataBas/addUser.php');
|
||||
include('dataBas/cleanData.php');
|
||||
session_start();
|
||||
$_SESSION['CSRFToken'] = bin2hex(random_bytes(32));
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Account Management for the rich</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Account Management for the rich</h1>
|
||||
<form method="post">
|
||||
<fieldset>
|
||||
<legend>Sign up</legend>
|
||||
<input type="hidden" name="form_id" value="sign_up">
|
||||
<label>Skriv förnamn</label>
|
||||
<input type="text" name="förnamn">
|
||||
<label>Skriv efternamn</label>
|
||||
<input type="text" name="efternamn">
|
||||
<label>Skriv användarnamn</label>
|
||||
<input type="text" name="användarnamn">
|
||||
<label>Skriv lösenord</label>
|
||||
<input type="password" name="lösenord">
|
||||
<input type="submit" value="Sign Up">
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
<form method="post">
|
||||
<fieldset>
|
||||
<legend>Sign in</legend>
|
||||
<input type="hidden" name="form_id" value="sign_in">
|
||||
<label>Skriv användarnamn</label>
|
||||
<input type="text" name="användarnamn">
|
||||
<label>Skriv lösenord</label>
|
||||
<input type="password" name="lösenord">
|
||||
<input type="submit" value="Sign in">
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
<?php
|
||||
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||
if ($_POST['form_id'] === 'sign_up') {
|
||||
$förnamn = filter_input(INPUT_POST, 'förnamn',FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$användarnamn = filter_input(INPUT_POST, 'användarnamn',FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
$lösenord = password_hash($_POST['lösenord'], PASSWORD_DEFAULT);
|
||||
$efternamn = filter_input(INPUT_POST,'efternamn',FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
|
||||
$newUser = new user($förnamn, $efternamn, $användarnamn, $lösenord);
|
||||
addUser($newUser, $file);
|
||||
}
|
||||
if ($_POST['form_id'] === 'sign_in') {
|
||||
$lösenord = $_POST['lösenord'];
|
||||
$användarnamn = filter_input(INPUT_POST, 'användarnamn',FILTER_SANITIZE_FULL_SPECIAL_CHARS);
|
||||
|
||||
foreach (readUserData($file) as $user) {
|
||||
if (password_verify($lösenord, $user->getLösenord()) && $användarnamn == $user->getAnvändarnamn()) {
|
||||
session_regenerate_id(true);
|
||||
$_SESSION['inloggad'] = true; // Användaren har anget rätt uppgifter.
|
||||
$_SESSION['förnamn'] = $user->getFörnamn();
|
||||
$_SESSION['efternamn'] = $user->getEfternamn();
|
||||
break;
|
||||
}
|
||||
}
|
||||
// Om lyckad inloggning gå till index.php. Annars gå vidare och visa formuläret.
|
||||
if (isset($_SESSION['inloggad'])) {
|
||||
include("dataBas/besökRäknare.php");
|
||||
header("Location: index.php");
|
||||
}
|
||||
}
|
||||
}
|
||||
include("../footer.html");
|
||||
?>
|
||||
</body>
|
||||
|
||||
</html>
|
8
www/public/Moment-3&4/inc/aside.php
Normal file
8
www/public/Moment-3&4/inc/aside.php
Normal file
@ -0,0 +1,8 @@
|
||||
<aside>
|
||||
<h1>Namn</h1>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
||||
Nulla tristique elementum nisl, et vehicula neque laoreet ut.
|
||||
Praesent sed ultrices purus.
|
||||
</p>
|
||||
</aside>
|
4
www/public/Moment-3&4/inc/footer.php
Normal file
4
www/public/Moment-3&4/inc/footer.php
Normal file
@ -0,0 +1,4 @@
|
||||
<footer>
|
||||
<span id="footerLeft">© Sidlayoutarna</span>
|
||||
<span id="footerRight"><a href="mailto:xxx@doman">xxx@doman</a></span>
|
||||
</footer>
|
3
www/public/Moment-3&4/inc/header.php
Normal file
3
www/public/Moment-3&4/inc/header.php
Normal file
@ -0,0 +1,3 @@
|
||||
<header>
|
||||
<h1>Webbserverprogrammering 1 med Bygren</h1>
|
||||
</header>
|
18
www/public/Moment-3&4/inc/meny.php
Normal file
18
www/public/Moment-3&4/inc/meny.php
Normal file
@ -0,0 +1,18 @@
|
||||
<nav>
|
||||
<h1>Innehåll</h1>
|
||||
<ul>
|
||||
<li><a href="index.php">Hem</a></li>
|
||||
<li><a href="index.php?page=blogg">Blogg</a></li>
|
||||
<li><a href="index.php?page=bilder">Bilder</a></li>
|
||||
<li><a href="index.php?page=kontakt">Kontakt</a></li>
|
||||
<li><a href="index.php?page=klotter">Klotter</a></li>
|
||||
<?php
|
||||
if(!(isset($_SESSION['inloggad']))) {
|
||||
echo '<li><a href="inLoggning.php">Logga in</a></li>';
|
||||
}
|
||||
else {
|
||||
echo '<li><a href="loggOut.php">Logga ut</a></li>';
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
</nav>
|
59
www/public/Moment-3&4/index.php
Normal file
59
www/public/Moment-3&4/index.php
Normal file
@ -0,0 +1,59 @@
|
||||
<?php
|
||||
session_start();
|
||||
?>
|
||||
<!doctype html>
|
||||
<html lang="sv">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Länka in sidor med PHP</title>
|
||||
<link href="css/styleSheet.css" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
<?php
|
||||
include("inc/header.php");
|
||||
?>
|
||||
|
||||
<section id="leftColumn">
|
||||
<?php
|
||||
include("inc/meny.php");
|
||||
include("inc/aside.php");
|
||||
?>
|
||||
</section>
|
||||
<!-- End leftColumn -->
|
||||
<?php
|
||||
|
||||
$page = "start";
|
||||
if (isset($_GET['page']))
|
||||
$page = $_GET['page'];
|
||||
|
||||
switch ($page) {
|
||||
case 'blogg':
|
||||
include('pages/blogg.php');
|
||||
break;
|
||||
case 'bilder':
|
||||
include('pages/bilder.php');
|
||||
break;
|
||||
case 'kontakt':
|
||||
include('pages/kontakt.php');
|
||||
break;
|
||||
case 'klotter':
|
||||
include('pages/klotter.php');
|
||||
break;
|
||||
default:
|
||||
include('pages/start.php');
|
||||
}
|
||||
include("inc/footer.php");
|
||||
|
||||
if (file_exists("../../hit.dat")) {
|
||||
$hit = file_get_contents("../../hit.dat");
|
||||
}
|
||||
echo "Antal användare: " . $hit;
|
||||
?>
|
||||
</div>
|
||||
<!-- End wrapper -->
|
||||
</body>
|
||||
|
||||
</html>
|
8
www/public/Moment-3&4/loggOut.php
Normal file
8
www/public/Moment-3&4/loggOut.php
Normal file
@ -0,0 +1,8 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
$_SESSION = array(); // Tömmer sessionsarrayen
|
||||
session_regenerate_id(true);
|
||||
|
||||
header("Location: index.php");
|
||||
?>
|
7
www/public/Moment-3&4/pages/bilder.php
Normal file
7
www/public/Moment-3&4/pages/bilder.php
Normal file
@ -0,0 +1,7 @@
|
||||
<?php
|
||||
if (!(isset($_SESSION['inloggad']))) {
|
||||
echo 'Du är inte inloggad';
|
||||
} else {
|
||||
echo '<p>Bild 1</p> <p>Bild 2</p>';
|
||||
}
|
||||
?>
|
19
www/public/Moment-3&4/pages/blogg.php
Normal file
19
www/public/Moment-3&4/pages/blogg.php
Normal file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
if (!(isset($_SESSION['inloggad']))) {
|
||||
echo 'Du är inte inloggad';
|
||||
} else {
|
||||
echo '<main role="main">
|
||||
<section>
|
||||
<hgroup>
|
||||
<h1>Min blogg Nu</h1>
|
||||
<h2>I dag gör vi mallar</h2>
|
||||
</hgroup>
|
||||
<p>Lorem ipsum id duo autem qualisque, cu laoreet eleifend cum. Eu sea
|
||||
vidit altera civibus, harum deserunt argumentum ne vim. Eu paulo
|
||||
corpora appareat pro, brute everti iuvaret ne vis. Diam incorrupte
|
||||
voluptatibus cu vel, nam congue soluta praesent at.
|
||||
</p>
|
||||
</section>
|
||||
</main>';
|
||||
}
|
||||
?>
|
17
www/public/Moment-3&4/pages/klotter.php
Normal file
17
www/public/Moment-3&4/pages/klotter.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
if (!(isset($_SESSION['inloggad']))) {
|
||||
echo 'Du är inte inloggad';
|
||||
} else {
|
||||
$Token = $_SESSION['CSRFToken'];
|
||||
echo "<h1>Klotterplanket</h1>
|
||||
<form method='post'>
|
||||
<label>Meddelande</label><br>
|
||||
<textarea name='message' cols='45' rows='5'></textarea><br />
|
||||
<input type='hidden' name='CSRFToken' value='$Token'>
|
||||
<input type='submit' value='Skicka'>
|
||||
</form>";
|
||||
include('dataBas/saveMSG.php');
|
||||
if (file_exists("../../msg.dat")) {
|
||||
echo file_get_contents("../../msg.dat");
|
||||
}
|
||||
}
|
9
www/public/Moment-3&4/pages/kontakt.php
Normal file
9
www/public/Moment-3&4/pages/kontakt.php
Normal file
@ -0,0 +1,9 @@
|
||||
<?php
|
||||
if (!(isset($_SESSION['inloggad']))) {
|
||||
echo 'Du är inte inloggad';
|
||||
} else {
|
||||
echo '<p>TelefonNummber: 112</p>
|
||||
<p>Get help today call your mother</p>
|
||||
';
|
||||
}
|
||||
?>
|
7
www/public/Moment-3&4/pages/start.php
Normal file
7
www/public/Moment-3&4/pages/start.php
Normal file
@ -0,0 +1,7 @@
|
||||
<?php
|
||||
if ((isset($_SESSION['inloggad']))) {
|
||||
echo 'Du är inloggad<br> Välkommen ' . $_SESSION['förnamn'] . ' ' . $_SESSION['efternamn'];
|
||||
} else {
|
||||
echo 'Du är inte inloggad';
|
||||
}
|
||||
?>
|
@ -1,3 +1,4 @@
|
||||
<footer>
|
||||
<a href="../index.php">Tillbaka</a>
|
||||
</footer>
|
||||
</footer>
|
||||
|
||||
|
@ -9,5 +9,6 @@
|
||||
<a href="Moment-0/index.php">Moment-0</a>
|
||||
<a href="Moment-1/index.php">Moment-1</a>
|
||||
<a href="Moment-2/index.php">Moment-2</a>
|
||||
<a href="Moment-3&4/index.php">Moment-3</a>
|
||||
</body>
|
||||
</html>
|
0
www/userM2.dat
Normal file
0
www/userM2.dat
Normal file
0
www/userM3.dat
Normal file
0
www/userM3.dat
Normal file
Loading…
Reference in New Issue
Block a user