I've looked through this about a hundred times and can't find a reason the page won't redirect. I can't find any spaces or any output I might be missing. Can anyone spot the problem?
Here is my code:
<?php
include_once('includes/sessions.php');
include_once('connections/localhost.php');
include_once('includes/functions.php');
include_once('includes/validations.php');
?>
<?php
$username = "";
if (isset($_POST['submit'])) {
$required_fields = array("username", "password");
validate_there($required_fields);
if (empty($errors)) {
$username = $_POST["username"];
$password = $_POST["password"];
$found_user = attempt_login($username, $password);
if ($found_user) {
$_SESSION["user_id"] = $found_user["user_id"];
$_SESSION["username"] = $found_user["username"];
redirect_to("index.php");
} else {
$_SESSION["message"] = "Username/password not found.";
}
}
} else {
}
?>
Here is the function for redirecting:
function redirect_to($new_location) {
header("Location: " . $new_location);
exit;
}
Here are the validation functions:
$errors = array();
function fieldname_is_text($fieldname) {
$fieldname = str_replace("_", " ", $fieldname);
$fieldname = ucfirst($fieldname);
return $fieldname;
}
function has_presence($value) {
return isset($value) && $value !== "";
}
function validate_there($required_fields) {
global $errors;
foreach($required_fields as $field) {
$value = trim($_POST[$field]);
if (!has_presence($value)) {
$errors[$field] = fieldname_is_text($field) . " can't be blank";
}
}
}