Эй, ребята Я новичок в PHP и пытается выяснить, как реализовать $ _SESSION в самой базовой системе авторизации:PHP сессии не работает
<?php
session_start();
include 'dbconn.php';
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE username = '$username'";
$result = $conn->query($sql);
$row = $result->fetch_object();
if($username == "$row->username" && $password == "$row->password") {
$_SESSION['loggedin'] = "$username";
header('Location: admin.php');
} else {
header('Location: index.php?msg=wrong-username-or-password');
}
Проблема в том, что, когда, если я использую локальные переменные, такие как :
$admin_userName = 'admin';
$admin_password = '1234';
, а затем сделать сравнение
if($username == "$adminusername" && $password == "$adminpassword") {
$_SESSION['loggedin'] = "$username";
header('Location: admin.php');
$ _SESSION работает идеально. Но когда я использую это:
if($username == "$row->username" && $password == "$row->password") {
$_SESSION['loggedin'] = "$username";
header('Location: admin.php');
Сессия не работает. Без сеанса вышеуказанное утверждение работает отлично!
login.php
<?php
session_start();
include 'dbconn.php';
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE username = '$username'";
$result = $conn->query($sql);
$row = $result->fetch_object();
if($username == $row->username && $password == $row->password) {
$_SESSION['loggedin'] = $username;
header('Location: apptify.php');
} else {
header('Location: index.php?msg=wrong-username-or-password');
}
logout.php
<?php
session_start();
unset($_SESSION['loggedin']);
header('Location: index.php');
?>
Я действительно потерял, любая помощь приветствуется.
Имейте в виду, что вы сравниваете две разные вещи. Вы уверены, что даже входите в состояние? Существуют ли '$ row-> username' и' $ row-> password', как вы ожидаете? –
Они должны быть настроены правильно, и условие должно быть правильным, так как оно работает без $ _session –
Добавьте эхо в состояние, чтобы убедиться, что вы входите в условие. –