So I'm trying to create a login system. I can't figure out how to check a login against the info in my MySQL database. I can login even if the database table is empty. What exactly am I doing wrong? I can connect alright, it's just the verifying part that's all messed up.
The form:
<form name='login' method="POST" action="home.php";;>
Username: <input type="text" name="username" required /><br>
Password: <input type="password" name="password" required /><br>
<input type="submit" name="login" value="Login" />
</form>
Here's home.php:
<?php //Start the Session
session_start();
require('connect.php');
//3. If the form is submitted or not.
//3.1 If the form is submitted
if (isset($_POST['username']) and isset($_POST['password'])){
//3.1.1 Assigning posted values to variables.
$username = $_POST['username'];
$password = $_POST['password'];
//3.1.2 Checking the values are existing in the database or not
$query = "SELECT * FROM `user` WHERE username='$username' and password='$password'";
$result = mysqli_query($connection, $query) or die(mysqli_error($connection));
$count = mysqli_num_rows($result);
//3.1.2 If the posted values are equal to the database values, then session will be created for the user.
if ($count == 1){
$_SESSION['username'] = $username;
}else{
//3.1.3 If the login credentials doesn't match, he will be shown with an error message.
$fmsg = "Invalid Login Credentials.";
}
}
//3.1.4 if the user is logged in Greets the user with message
if (isset($_SESSION['username'])){
$username = $_SESSION['username'];
echo '<head>
<title>Sheeplets World: Home Page</title>
<link type="text/css" rel="stylesheet" href="index.css" media="screen" />
</head>
<body>
<div id=allcontent>
<h1 id=header>Sheeplets World</h1>
<div id=rcorners>
<h2 id=topic1>Welcome ' . $username . '!</h2>
<p class="content1">abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
</div>
</div>
</body>';
echo "<a href='logout.php'>Logout</a>";
?>
Here's connect.php:
<?php
$connection = mysqli_connect('localhost', 'root', '', 'testing');
if (!$connection){
die("Database Connection Failed" . mysqli_error($connection));
}
$select_db = mysqli_select_db($connection, 'testing');
if (!$select_db){
die("Database Selection Failed" . mysqli_error($connection));
}?>
Thanks in advance!