Folks,


Why does my login.php show a complete blank page ?
Error reporting is set in the config.php but no errors are shown! Strange!


site_details.php

Code:
<?php

$site_name = "myworld";
$social_network_name = "myworld";
$site_domain = "EDITED";
$site_admin_email = "myworld_admin@EDITED";
$social_network_admin_email = "myworld_admin@EDITED";

?>

login.php

Code:
<?php

include 'config.php';

// check if user is already logged in
if (is_logged() === true) 
{
	//Redirect user to homepage page after 5 seconds.
	header("refresh:5;url=home.php");
}

if ($_SERVER['REQUEST_METHOD'] == "POST")
{
	if (isset($_POST["login_username_or_email"]) && isset($_POST["login_password"]))
	{
		$username_or_email = trim(mysqli_real_escape_string($conn, $_POST["login_username_or_email"]));
		$password = $_POST["login_password"];		
        //Hashed Password.
		$hashed_password = password_hash($password, PASSWORD_DEFAULT);
		
		// Check if inputted Username is between 8 to 30 characters long or not. Or, if inputed Email is valid or not.
		if ((strlen($username_or_email) < 8 || strlen($username_or_email) > 30) || (!filter_var($username_or_email, FILTER_VALIDATE_EMAIL)))
		{
			$_SESSION['error'] = "Your Username or Email is incorrect! If you input your Username, then it must be between 8 to 30 characters long.
			If you input your Email, then it must be a valid one!";
			exit;
			}
		// Check if Password is between 8 to 30 characters long or not.
		elseif (strlen($password) < 8 || strlen($password) > 30) 
		{
			$_SESSION['error'] = "Password must be between 6 to 30 characters long!";
			exit;
		}
        
		//Select Username and Email to check against Mysql DB if they are already registered or not.
		$stmt = mysqli_stmt_init($conn);
		if($stmt = mysqli_prepare($conn, "SELECT accounts_activations, usernames, emails, passwords FROM users WHERE passwords = ?"))
		{
			mysqli_stmt_bind_param($stmt, 's', $hashed_password);
			mysqli_stmt_execute($stmt);
			//$result = mysqli_stmt_get_result($stmt); //Use either this line, or ...
			$result = mysqli_stmt_bind_result($stmt, $db_account_activation_state, $db_username, $db_email, $db_password); // ... this line. But not both.
				
			$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
			mysqli_stmt_close($stmt);
			
			// Check if inputted Username or Email is registered or not.
			//Either type following paragraph or the next one but not both. Ask in forum which one is best.
			/* PARAGRAPH 1
			if (($username_or_email == $row['usernames'] || $username_or_email == $row['emails']) && $hashed_password == $row['passwords']) // either this paragraph or ...
			{
				echo "IF Triggered";
			}
			else
			{
				if($row['accounts_activations'] == '0')
				{
					$error = "You have not activated your account yet! Check your email for instructions on how to activate it. Check your spam folder if you don;t find an email from us.";
					exit;
				}
			}			
			*/
			
			//PARAGRAPH 2
			if (($username_or_email == $db_username || $username_or_email == $db_email) && password_verify($hashed_password, $db_password)) // ..... this paragraph. But not both.
			{
				echo "IF Triggered";
			}
			else
			{
				if($row['accounts_activations'] == '0')
				{
					$error = "You have not activated your account yet! Check your email for instructions on how to activate it. Check your spam folder if you don;t find an email from us.";
					exit;
				}
			}
			
			
			$_SESSION["user"] = $username;					
			//If 'Remember Me' check box is checked then set the cookie.				
			//if(!empty($_POST["login_remember"])) // Either use this line ....
			if (isset($_POST['login_remember']) && $_post['login_remember'] == "on") // ...or this line. But not both!
				{
					setcookie("login_username_or_email", $username_or_email, time()+ (10*365*24*60*60));
					setcookie("login_password", $login_password, time()+ (10*365*24*60*60));
				}
			else
			{
				//If Cookie is available then use it to auto log user into his/her account!
				if (isset($_COOKIE['login_username_or_email']))
				{
					setcookie("login_username_or_email","","");
				}
				if (isset($_COOKIE['login_password']))
				{
					setcookie("login_password", "", "");
				}
			}
		header("location:home.php");
		}
		else
		{
			$_SESSION['error'] = "That Username or Email is not registered!";
			exit;
		}
	}
}
			
?>

<!DOCTYPE html>
<html>
<head>
<title><?php $site_name?> Member Login Page</title>
  <meta charset="utf-8">
</head>
<body>
<div class = "container">
<form method="post" action="">
<center><h3><?php $site_name ?> Member Login Form</h3></center>
<div class="text-danger">
<?php
if(isset($message))
{
    echo $message;
}
?>
<div class="form-group">
<center><label>Username/Email:</label>
<input type="text" placeholder="Enter Username or Email" name="login_username_or_email" value="<?php if(isset($_COOKIE["login_username_or_email"])) echo $_COOKIE["login_username_or_email"]; ?>"</center>
</div>
<div class="form-group">
<center><label>Password:</label>
<input type="password" placeholder="Enter password" name="login_password" value="<?php if(isset($_COOKIE["login_password"])) echo $_COOKIE["login_password"]; ?>"></center>
</div>
<div class="form-group">
<center><label>Remember Login Details:</label>
<input type="checkbox" name="login_remember" /></center>
</div>
<div class="form-group">
<center><input type="submit" name="login_submit" value="Login" class="button button-success" /></center>
</div>
<div class="form-group">
<center><font color="red" size="3"><b>Forgot your password ?</b><br><a href="login_password_reset.php">Reset it here!</a></font></center>
<center><font color="red" size="3"><b>Not registered ?</b><br><a href="register.php">Register here!</a></font></center>
</form>
</div>
</body>
</html>

config.php

Code:
<?php

/*
ERROR HANDLING
*/
declare(strict_types=1);
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

// session start
if(!session_start()) {
	session_start();
}

// include files
include 'conn.php';
include 'site_details.php';

// include functions
include 'functions.php';

?>

functions.php

Code:
<?php
// functions file

/*
* check if user is logged by checking if session named "user" isset
* return true if session "user" exists or false if not exists
*/
function is_logged() {
	if (isset($_SESSION["user"]) && !empty($_SESSION["user"])) {
		return true;
	} else {
		return false;
	}
}
?>