PHP login Script генерирует сессию, но не заголовок() переместить на главную страницу


PHP login Script генерирует сессию, но не заголовок() перемещается на домашнюю страницу.

<?php
session_start();
$message="";
if(isset($_REQUEST['submit'])) {
    if(count($_POST)>0) {
        $username=$_POST["user_name"];
        $password=$_POST["password"];
        if(!empty($username) && !empty($password)){
            //include  connection file
            require_once "connection.php";
            $sql="SELECT * FROM `admin_users` WHERE `admin_user` LIKE  'username' AND `admin_pass`LIKE'$password'";
            $result = mysqli_query($con,$sql);
            $row=mysqli_fetch_row($result);
            if(is_array($row)) {
                $_SESSION["user_id"] = $row[0];
                $_SESSION["admin_name"] = $row[1];
                $_SESSION["type"]="admin_map";

                mysql_close($dbhandle);
            } else {
                $message = "Invalid Username or Password!";
            }
        }
        if(isset($_SESSION["user_id"]) &&  isset($_SESSION["admin_name"]) &&  isset($_SESSION["admin_name"])=="admin@map") {
            header("Location:user_dashboard.php");
        }
    }
    else{
        $message = "Fill All Fields!";
    }
}
?>
2 3

2 ответа:

Прежде всего добавьте пробелы в запрос. И вы пропускаете знак $ перед именем пользователя $username.

$sql="SELECT * FROM `admin_users` WHERE `admin_user` LIKE '$username' AND `admin_pass` LIKE '$password'";

Я не знаю, почему вы используете LIKE в форме входа. Это должно быть проверено с помощью оператора = . (Просто Предложение )

Основная проблема в вашем коде заключается в том, что вы используете расширение mysqli_* и используете mysql_close() для закрытия соединения с базой данных.

mysql_close($dbhandle);

Это должно быть

mysqli_close($dbhandle);

Но используйте соединение close в конце вашего PHP-скрипта, а не между ними.

Изменение

header("Location:user_dashboard.php");

К

echo "<script>window.locaion='user_dashboard.php'</script>"

Или добавить ob_start()в первую строку кода