header('Location: ../register.php?error=username_2_short');
header('Location: register.inc.php?error=empty_fields');
<!DOCTYPE html>
<html lang="en">
<head>
<title>Register an account</title>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="registerstyle.css">
</head>
<body>
<div class="container">
<h2>Register an account</h2>
<form action="includes/register.inc.php" method="post">
<input type="text" placeholder="Enter desired username..." name="username"><br>
<input type="password" placeholder="Enter desired password..." name="password"><br>
<input type="password" placeholder="Repeat desired password..." name="rePassword">
<div class="container2"><button type="submit" name="registerButton">Register</button></div>
</form>
</div>
<?php
switch(isset($_GET['error'])) {
case 'empty_fields':
echo '<div class="error"><p>Please fill in all input fields.</p></div>';
break;
case 'username_2_short':
echo '<div class="error"><p>Your username is too short (minimum username length - 6 characters).</p></div>';
break;
case 'username_2_long':
echo '<div class="error"><p>Your username is too long (maximum username length - 15 characters).</p></div>';
break;
case 'password_2_short':
echo '<div class="error"><p>Your password is too short (minimum password length - 9 characters).</p></div>';
break;
case 'passwords_not_matching':
echo '<div class="error"><p>Your passwords does not match.</p></div>';
break;
case 'username_taken':
echo '<div class="error"><p>The username ' . $username . ' is already taken.</p></div>';
break;
}
?>
</body>
</html>
<?php
if(isset($_POST['registerButton'])) {
require 'dbh.inc.php';
$username = $_POST['username'];
$password = $_POST['password'];
$rePassword = $_POST['rePassword'];
if(empty($username) || empty($password) || empty($rePassword)) {
header('Location: ../register.php?error=empty_fields');
exit();
}
else if(strlen($username) < 6) {
header('Location: ../register.php?error=username_2_short');
exit();
}
else if(strlen($username) > 15) {
header('Location: ../register.php?error=username_2_long');
exit();
}
else if(strlen($password) < 9) {
header('Location: ../register.php?error=password_2_short');
exit();
}
else if($password !== $rePassword) {
header('Location: ../register.php?error=passwords_not_matching');
exit();
}
else {
$sql = "SELECT username FROM users WHERE username=?";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql)) {
header('Location: ../register.php?error=sql_error');
exit();
}
else {
mysqli_stmt_bind_param($stmt, 's', $username);
mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);
$resultCheck = mysqli_stmt_num_rows($stmt);
if($resultCheck > 0) {
header('Location: ../register.php?error=username_taken');
exit();
}
else {
$sql = "INSERT INTO users (username, password) VALUES (?, ?)";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql)) {
header('Location: ../register.php?error=sql_error');
exit();
}
else {
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
mysqli_stmt_bind_param($stmt, 'ss', $username, $hashedPassword);
mysqli_stmt_execute($stmt);
header('Location: ../register.php?register=success');
exit();
}
}
}
}
mysqli_stmt_close($stmt);
mysqli_close($conn);
}
else {
header('Location: ../index.php');
exit();
}
<!DOCTYPE html>
<html lang="en">
<head>
<title>Register an account</title>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="registerstyle.css">
</head>
<body>
<div class="container">
<h2>Register an account</h2>
<form action="includes/register.inc.php" method="post">
<input type="text" placeholder="Enter desired username..." name="username"><br>
<input type="password" placeholder="Enter desired password..." name="password"><br>
<input type="password" placeholder="Repeat desired password..." name="rePassword">
<div class="container2"><button type="submit" name="registerButton">Register</button></div>
</form>
</div>
<?php
switch(isset($_GET['error'])) {
case 'empty_fields':
echo '<div class="error"><p>Please fill in all input fields.</p></div>';
break;
case 'username_2_short':
echo '<div class="error"><p>Your username is too short (minimum username length - 6 characters).</p></div>';
break;
case 'username_2_long':
echo '<div class="error"><p>Your username is too long (maximum username length - 15 characters).</p></div>';
break;
case 'password_2_short':
echo '<div class="error"><p>Your password is too short (minimum password length - 9 characters).</p></div>';
break;
case 'passwords_not_matching':
echo '<div class="error"><p>Your passwords does not match.</p></div>';
break;
case 'username_taken':
echo '<div class="error"><p>The username ' . $username . ' is already taken.</p></div>';
break;
}
?>
</body>
</html>
<?php
if(isset($_POST['registerButton'])) {
require 'dbh.inc.php';
$username = $_POST['username'];
$password = $_POST['password'];
$rePassword = $_POST['rePassword'];
if(empty($username) || empty($password) || empty($rePassword)) {
header('Location: ../register.php?error=empty_fields');
exit();
}
else if(strlen($username) < 6) {
header('Location: ../register.php?error=username_2_short');
exit();
}
else if(strlen($username) > 15) {
header('Location: ../register.php?error=username_2_long');
exit();
}
else if(strlen($password) < 9) {
header('Location: ../register.php?error=password_2_short');
exit();
}
else if($password !== $rePassword) {
header('Location: ../register.php?error=passwords_not_matching');
exit();
}
else {
$sql = "SELECT username FROM users WHERE username=?";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql)) {
header('Location: ../register.php?error=sql_error');
exit();
}
else {
mysqli_stmt_bind_param($stmt, 's', $username);
mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);
$resultCheck = mysqli_stmt_num_rows($stmt);
if($resultCheck > 0) {
header('Location: ../register.php?error=username_taken');
exit();
}
else {
$sql = "INSERT INTO users (username, password) VALUES (?, ?)";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql)) {
header('Location: ../register.php?error=sql_error');
exit();
}
else {
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
mysqli_stmt_bind_param($stmt, 'ss', $username, $hashedPassword);
mysqli_stmt_execute($stmt);
header('Location: ../register.php?register=success');
exit();
}
}
}
}
mysqli_stmt_close($stmt);
mysqli_close($conn);
}
else {
header('Location: ../index.php');
exit();
}
switch(isset(...))
switch(true) {
php > var_dump((bool) '');
bool(false)
php > var_dump((bool) 'empty_fields');
bool(true)
Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!
Swish: 123 536 99 96 Bankgiro: 211-4106
Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!
Swish: 123 536 99 96 Bankgiro: 211-4106