Переменная, которую вы проверяете, равна $ sql, и она будет иметь значение true, если вы сохраните в ней какое-либо значение.В вашем случае у вас есть SQL-запрос.Так что это всегда вернет истину.Вы должны проверить количество строк, возвращаемых из запроса SELECT в вашем операторе if.
$msg = "";
session_start();
if (isset($_POST['submit'])) {
$con = new mysqli('localhost', 'root', '', 'test');
$email = $con->real_escape_string($_POST['email']);
$semail = $email;
$password = $con->real_escape_string($_POST['password']);
$sql = $con->query("SELECT * FROM users WHERE email='$email' AND password='$password';");
if ($email == "" || $password == "")
$msg = "Please check your inputs!";
else if ($sql->num_rows) {
$_SESSION['user'] = $semail;
header('Location:../home.php');
} else {
$msg = "Please check your inputs!";
}
}