Mysqli et Php avec l'ouverture d'une session formulaire de garder l'échec

Quand j'appuie sur mon bouton submit pour la connexion, rien ne se passe. Je suis juste en train de la même page, et même pas un message d'erreur. La connexion à la db doit être fine. J'ai été en regardant le code pour 10 heures maintenant, et je ne peux pas comprendre pourquoi. Quelqu'un a une idée?

dbconfic.inc.php:

<?php
    $db_host = "localhost";
    $db_user = "root";
    $db_pass = "root";
    $db_name  = "testdb";
    //connection:
    $mysqli = new mysqli($db_host, $db_user, $db_pass , $db_name);
    //tjek conenction:
    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
    }

    //vi kører utf-8 på connection:
    $mysqli->set_charset("utf-8");  
?>

index.php:

 <?php
include('login.php'); //Include Login Script

if(isset($_SESSION['username']))
{
header('Location: home.php');
}
exit();
?>

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>PHP Login Form with Session</title>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>

<body>
<h1>PHP Login Form with Session</h1>
<div class="loginBox">
<h3>Login Form</h3>
<br><br>
<form method="post" action="">
<label>Username:</label><br>
<input type="text" name="username" placeholder="username" /><br><br>
<label>Password:</label><br>
<input type="password" name="password" placeholder="password" />  <br><br>
<input type="submit" value="Login" /> 
</form>
<div class="error"><?php echo $error;?></div>
</div>
</body>
</html>

login.php:

<?php
session_start();
include("dbconfic.inc.php"); //Establishing connection with our database

$error = ""; //Variable for storing our errors.
if(isset($_POST["submit"]))
{
if(empty($_POST["username"]) || empty($_POST["password"]))
{
$error = "Both fields are required.";
}else
{
//Define $username and $password
$username=$_POST['username'];
$password=$_POST['password'];

//To protect from MySQL injection
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysqli_real_escape_string($db, $username);
$password = mysqli_real_escape_string($db, $password);
$password = md5($password);

//Check username and password from database
$sql="SELECT uid FROM users WHERE username='$username' and password='$password'";
$result=mysqli_query($db,$sql);
$row=mysqli_fetch_array($result,MYSQLI_ASSOC);

//If username and password exist in our database then create a session.
//Otherwise echo error.

if(mysqli_num_rows($result) == 1)
{
$_SESSION['username'] = $login_user; //Initializing Session
header("location: home.php"); //Redirecting To Other Page
}else
{
$error = "Incorrect username or password.";
}

}
}

?>

home.php:

   <?php
    include("check.php");   
?>
 <!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Home</title>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>

<body>
    <h1 class="hello">Hello, <em><?php echo $login_user;?>!</em></h1>
        <br><br><br>
    <a href="logout.php" style="font-size:18px">Logout?</a>
</body>
</html>

check.php:

<?php
include('dbconfic.inc.php');
session_start();
$user_check=$_SESSION['username'];

$sql = mysqli_query($db,"SELECT username FROM users WHERE username='$user_check' ");

$row=mysqli_fetch_array($sql,MYSQLI_ASSOC);

$login_user=$row['username'];

if(!isset($user_check))
{
header("Location: index.php");
}
?>

logout.php

<?php
session_start();
if(session_destroy())
{
header("Location: index.php");
}

?>
votre formulaire n'a pas d'action, vous devez définir l'action. Essayez $_SERVER['PHP_SELF'];
éviter PHP_SELF, car il est vulnérable - au lieu d'utiliser $_SERVER['SCRIPT_NAME'] ~ bien que dans ce cas avoir aucune action signifie que le formulaire est posté à la même page, ce qui est correct.
Tout d'abord, if ((isset($_SESSION['username']) != '')){ ... est incorrecte, il doit être if(isset($_SESSION['username'])){ .... Ensuite, ajoutez exit(); après header(); déclaration, l'en-tête n'est pas suffisant pour rediriger l'utilisateur vers une autre page. Et enfin, lorsque vous ne echo $error;, qu'il ne montre aucune erreur?
Merci beaucoup pour vos commentaires. Donc, cela voudrait dire que la forme ressemble à ceci: <form method="post" action="$_SERVER['SCRIPT_NAME']">
Si vous postez à la même page, vous pouvez omettre l'action au total

OriginalL'auteur Julie24 | 2016-01-31