Show sourcecode
The following files exists in this folder. Click to view.
webbsrvprg/exercises/slutprojekt/
actions.php
administer_users.php
create_code.php
index.php
login copy.php
login.php
main.php
password_renewals.php
setup.php
sign_up.php
verification.php
verify_mail.php
sign_up.php
102 lines UTF-8 Windows (CRLF)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
session_start(["gc_maxlifetime" => 86400]);
?>
<!DOCTYPE html>
<html lang="sv">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Skapa konto</title>
<style>
fieldset {
margin: 5px;
padding: 5px;
border: 2px solid black;
}
#show_password {
width: 10em;
border: 1px solid gray;
background-color: lightgray;
}
* {
box-sizing: border-box;
}
</style>
</head>
<body>
<?php
try{
/** @var PDO $dbconn */
include("../databaser/dbconnection.php");
if (isset($_POST["name"])){
// Om det skickats ett formulär hanteras informationen.
// Om användaren lyckats skita till inputsen kommer det bara inte fungera på något steg så ser inte till att allt är angivet
$name = $_POST["name"];
$username = $_POST["username"];
$mail = $_POST["mail"];
$admin = isset($_POST["admin"]) ? 1 : 0;
$password = $_POST["password"];
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
$sql = "INSERT INTO bs_users (username, name, password, mail, admin) values(?,?,?,?,?)";
$stmt = $dbconn->prepare($sql);
$data = [$username, $name, $hashed_password, $mail, $admin];
$stmt->execute($data);
include("create_code.php"); // Skapas nu en variabel $code;
$id = $dbconn->lastInsertId();
$sql = "INSERT INTO bs_verifications (user_id, code) value (?,?)";
$stmt = $dbconn->prepare($sql);
$data = [$id, $code];
$stmt->execute($data); // Nu startar timern eftersom denna tid loggas.
$link = "https://labb.vgy.se/~harmol23/webbsrvprg/exercises/slutprojekt/verify_mail.php?id=" . $id . "&code=" . $code;
mail($mail, "Verifikation", "Hej $name! Följ denna länk för att verifiera din mejl på battleshipspelet: " . $link);
echo("Ett mejl har skickats för att verifiera din mejladress $mail. Du har 15 minuter på dig att verifiera. Om du inte får mejlet så måste du vänta tills tiden gått ut om du vill försöka igen med samma användarnamn. Efter verifikationen kan du logga in i inloggningssidan.");
} else{
// Om ett formulär inte skickats in så presenteras ett.
echo('
<form method="POST">
<fieldset>
<legend>Skapa konto</legend>
<input type="text" required maxlength="100" name="name" id="name"><label for="name">Namn</label><br>
<input type="text" required maxlength="100" name="username" id="username"><label for="username">Användarnamn</label><br>
<input type="mail" required maxlength="100" name="mail" id="mail"><label for="mail">Din mejladress</label><br>
<input type="password" required maxlength="200" minlength="8" name="password" id="password"><label for="password">Lösenord</label><br>
<div id="show_password">Visa lösenord</div><br>
<input type="checkbox" name="admin" id="admin"><label for="admin">Admin?</label><br>
<button type="submit">Skapa konto</button>
</fieldset>
</form>
<script>
const show_pass_btn = document.getElementById("show_password");
const password_input = document.getElementById("password");
show_pass_btn.addEventListener("mouseover", function() {
password_input.type = "text";
})
show_pass_btn.addEventListener("mouseleave", function() {
password_input.type = "password";
})
</script>'
);
}
} catch (PDOException $e) {
echo ($e->getMessage());
}
?>
</body>
</html>